בקטע הזה מתוארים פרוצדורות מאוחסנות למכונות Cloud SQL.
פרוצדורה מאוחסנת מכילה קוד SQL שאפשר לעשות בו שימוש חוזר.
כדי להריץ נהלים מאוחסנים, משתמשים בפקודה CALL ומחליפים את המשתנה הבא:
- procedure_name הוא השם של התהליך המאוחסן.
CALL procedure_name(parameters);
כדי ליצור פרוצדורה מאוחסנת, ראו הצהרות CREATE PROCEDURE ו-CREATE FUNCTION.
Cloud SQL לא תומך בהצהרה CREATE FUNCTION. מידע נוסף זמין במאמר תכונות של MySQL שלא נתמכות ב-Cloud SQL.
mysql.addSecondaryIdxOnReplica
mysql.addSecondaryIdxOnReplica
תחביר
mysql.addSecondaryIdxOnReplica(IDXTYPE, IDXNAME, TABLENAME, IDXDEFINITION, IDXOPTION)
תיאור
הוספת אינדקס משני למסד הנתונים. התהליך המאוחסן הזה הוא עטיפה של הצהרת ה-DDL CREATE INDEX.
- IDXTYPE – סוג האינדקס שרוצים ליצור. לדוגמה, pass UNIQUE to create a unique index.
- IDXNAME – שם האינדקס.
- TABLENAME – שם הטבלה בפורמט של schema.name.
- IDXDEFINITION – הגדרה של האינדקס. אין לכלול סוגריים חיצוניים.
- IDXOPTION – כל האפשרויות הנוספות להעברה ליצירת אינדקס. לדוגמה, ב-MySQL 8.0, אפשר להעביר אפשרות INVISIBLE לאינדקס בלתי נראה.
mysql.dropSecondaryIdxOnReplica
תחביר
mysql.dropSecondaryIdxOnReplica(IDXNAME, TABLENAME, IDXOPTION)
תיאור
הפונקציה מסירה אינדקס משני ממסד הנתונים. התהליך המאוחסן הזה הוא עטיפה של הצהרת ה-DDL DROP INDEX.
- IDXNAME – שם האינדקס.
- TABLENAME – שם הטבלה בפורמט של schema.name.
- IDXOPTION – אפשרויות נוספות להעברה כשמפילים אינדקס. לדוגמה, אפשרות אלגוריתם כמו INPLACE.
mysql.skipReplicationError
תחביר
mysql.skipReplicationError()
תיאור
מדלג על שגיאת שכפול שנתקל בה במהלך שכפול שרת חיצוני ואז ממשיך בשכפול.
אפשר להריץ את הפרוצדורה המאוחסנת הזו רק אם נתקלתם בשגיאת שכפול ושרשורי ה-I/O וה-SQL הופסקו.
התהליך המאוחסן הזה מבצע את הפעולות הבאות:
ההגדרה הזו קובעת אם נעשה שימוש בשכפול שמבוסס על GTID או על מיקום ביומן בינארי.
אם נעשה שימוש בשכפול מקביל, הפרוצדורה המאוחסנת קוראת קודם ל-
START_SLAVE_UNTIL_SQL_AFTER_MTS_GAPSאו ל-START_REPLICA UNTIL_SQL_AFTER_MTS_GAPSכדי לוודא שאין פערים בעסקאות שהוחלו עד לעסקה שנכשלה. לאחר מכן, התהליך מגדיר באופן זמני את הגדרת הרפליקציה ל-single-threaded.בשיטת השכפול שמבוססת על מיקום ביומן בינארי, הפרוצדורה מגדירה את
SQL_SLAVE_SKIP_COUNTERאו אתSQL_REPLICA_SKIP_COUNTER = 1כדי לדלג על העסקה הנוכחית.בשיכפול מבוסס GTID, הפרוצדורה המאוחסנת קובעת את ה-GTID של העסקה הנוכחית שנכשלה על סמך מידע במשתנה הסטטוס
gtid_executed. לאחר מכן, ההליך מוסיף עסקה ריקה כדי למלא את ה-GTID הזה.אם שכפול מקביל הושבת בעבר, הוא יופעל מחדש.
התהליך המאוחסן ימשיך את השכפול.
בטבלה mysql.skip_replication_error_history מתועדות כל ההפעלות של הפרוצדורה המאוחסנת הזו.