בקטע הזה מתוארים פרוצדורות מאוחסנות למכונות 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()
תיאור
מדלג על שגיאת שכפול שנתקל בה במהלך שכפול שרת חיצוני ואז ממשיך בשכפול.
אפשר להריץ את הפרוצדורה המאוחסנת הזו רק אם נתקלתם בשגיאת שכפול וההליכים של קלט/פלט ו-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 מתועדים כל המקרים של הפעלת הפרוצדורה המאוחסנת הזו.