יצירה וניהול של אינדקסים של עותקים לקריאה בלבד

במאמר הזה מוסבר איך ליצור, לתחזק ולנטר אינדקסים משניים ברפליקות לקריאה בלבד של Cloud SQL.

למידע על אופן הפעולה של אינדקסים של רפליקות מנוהלות, קראו את הסקירה הכללית על אינדקסים של רפליקות לקריאה בלבד.

אינדקסים מנוהלים של רפליקות

בטבלה הבאה מפורט תהליך העבודה ליצירה, להגדרה ולמעקב אחרי אינדקסים של רפליקות מנוהלות:

שלב תהליך מאוחסן או דגל לניהול מסד נתונים איפה מבצעים את השלב
יצירת הגדרת אינדקס CALL mysql.cloudsql_replica_idx_defn_create('INDEX_DEFINITION_NAME', 'CREATE_INDEX_STATEMENT');

הפרוצדורה המאוחסנת הזו מחזירה מזהה ייחודי של מספר שלם להגדרת האינדקס, INDEX_DEFINITION_ID.

מכונה ראשית
מיפוי הגדרה לקבוצה CALL mysql.cloudsql_replica_idx_group_add(INDEX_DEFINITION_ID, 'GROUP_NAME');

‫GROUP_NAME הוא שם בהתאמה אישית שאפשר לבחור. אם הקבוצה הזו לא קיימת, Cloud SQL יוצר קבוצה חדשה.

מכונה ראשית
הקצאת קבוצה לרפליקה דגל לניהול מסד נתונים: cloudsql_index_recreate_replica_group = GROUP_NAME מכונה של עותק לקריאה בלבד
בדיקת הסטטוס CALL mysql.cloudsql_replica_idx_show_status(); מכונה של עותק לקריאה בלבד
שגיאות בבדיקה CALL mysql.cloudsql_replica_idx_show_errors(); מכונה של עותק לקריאה בלבד

כל קריאה לפרוצדורה מאוחסנת מריצה הצהרת COMMIT שמסיימת את השינויים בסשן הנוכחי. כתוצאה מכך, אי אפשר לבטל פקודות של שפת טיפול בנתונים (DML) שבוצעו באמצעות הפרוצדורות המאוחסנות האלה בתוך טרנזקציה.

ב-Cloud SQL אי אפשר לעדכן או לשנות מטא-נתונים של אינדקס קיים. כדי לשנות אינדקס של רפליקה מנוהלת, צריך להסיר את הגדרת האינדקס הקיימת (או להסיר אותה מקבוצת הרפליקות) וליצור הגדרת אינדקס חדשה. מידע נוסף זמין במאמר שינוי אינדקסים של רפליקות מנוהלות.

התפקיד וההרשאות הנדרשים

כדי להריץ פרוצדורות מאוחסנות לאינדקסים של רפליקות מנוהלות, אתם צריכים להשתמש בחשבון משתמש במסד הנתונים שהוקצה לו התפקיד cloudsqlsuperuser.

יצירת אינדקסים של רפליקות מנוהלות

כדי ליצור ולתחזק אינדקסים מנוהלים של רפליקות ברפליקות לקריאה בלבד:

  1. יוצרים הגדרת אינדקס במכונה הראשית:

    מפעילים את התהליך המאוחסן mysql.cloudsql_replica_idx_defn_create במכונה הראשית של מסד הנתונים:

    CALL mysql.cloudsql_replica_idx_defn_create
    ('INDEX_DEFINITION_NAME', 'CREATE_INDEX_STATEMENT');

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫INDEX_DEFINITION_NAME: השם של הגדרת האינדקס.
    • CREATE_INDEX_STATEMENT: הצהרת ה-SQL שיוצרת את האינדקס המשני (לדוגמה, CREATE INDEX idx_age ON university.students (age)). שימו לב שההצהרה הזו חייבת לכלול קידומת של סכימה.

    שימו לב לערך idx_id שמוחזר (מזהה ייחודי של ההגדרה כמספר שלם) מהפלט של הפרוצדורה. ‫Cloud SQL מאחסן את הנתונים האלה ב-mysql.cloudsql_replica_idx_defn, ואפשר לאחזר את ה-idx_id מאוחר יותר על ידי שליחת שאילתה לטבלה הזו.

  2. מוסיפים את הגדרת האינדקס לקבוצת רפליקות:

    ממפים את הגדרת האינדקס לשם של קבוצת רפליקות ייעודית, על ידי קריאה ל-mysql.cloudsql_replica_idx_group_add במכונה הראשית:

    CALL mysql.cloudsql_replica_idx_group_add
    (INDEX_DEFINITION_ID, 'GROUP_NAME');

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫INDEX_DEFINITION_ID: המזהה הייחודי של המספר השלם שמוחזר כשמריצים את הפרוצדורה המאוחסנת mysql.cloudsql_replica_idx_defn_create כדי ליצור את האינדקס המשני.
    • ‫GROUP_NAME: השם של מיפוי קבוצת הרפליקות (לדוגמה, reporting_group). הערך של GROUP_NAME הוא שם בהתאמה אישית שאפשר לבחור. אם הקבוצה הזו לא קיימת, Cloud SQL יוצר קבוצה חדשה.

    ‫Cloud SQL מאחסן את הנתונים האלה ב-mysql.cloudsql_replica_idx_group_map, ואפשר לאחזר את מיפויי הקבוצות מאוחר יותר על ידי שליחת שאילתות לטבלה הזו.

  3. מקצים את הקבוצה למכונה של הרפליקה:

    מפעילים את הקבוצה הייעודית בעותק הזהה לקריאה בלבד, על ידי הגדרת הדגל לניהול מסד הנתונים cloudsql_index_recreate_replica_group לשם הקבוצה (לדוגמה, reporting_group).

  4. איך בודקים את התקדמות השחזור:

    מתחברים למכונה של הרפליקה לקריאה, ובודקים את התקדמות היצירה ואת הסטטוס של האינדקסים.

    • כדי לבדוק את ההתקדמות של יצירת האינדקס:

      CALL mysql.cloudsql_replica_idx_show_status();
      
    • בודקים את הניסיונות שנכשלו ואת הודעות השגיאה:

      CALL mysql.cloudsql_replica_idx_show_errors();
      
    • הצגת הסטטוס, פרטי הניסיון החוזר ומשך הזמן של כל האינדקסים המנוהלים:

      CALL mysql.cloudsql_replica_idx_show_all();
      

בדיקת סטטוס האינדקס של הרפליקה המנוהלת

כדי לבדוק את סטטוס פעולת האינדקס, מתחברים למכונה של הרפליקה לקריאה בלבד ושולחים שאילתה לטבלה mysql.cloudsql_replica_idx_status:

SELECT * FROM mysql.cloudsql_replica_idx_status;

הפלט אמור להיראות כך:

+--------+----------------------------------------------------+--------+-----------+---------------------+---------------------+-------------+---------+--------------------+---------+
| idx_id | create_stmt                                        | action | thread_id | start_time          | end_time            | retry_count | err_msg | comment_tag        | status  |
+--------+----------------------------------------------------+--------+-----------+---------------------+---------------------+-------------+---------+--------------------+---------+
|      2 | CREATE INDEX t1_fname ON sampletest.t1(first_name) | CREATE |      8140 | 2026-08-26 10:52:13 | NULL                |           0 | NULL    | [SIC_4_1787741231] | RUNNING |
|      4 | CREATE INDEX t2_lname ON sampletest.t2(last_name)  | DROP   |      NULL | 2026-08-26 10:52:13 | 2026-08-26 10:53:15 |           0 | NULL    | [SIC_4_1787741533] | DONE    |
|      5 | CREATE INDEX t1_lname ON sampletest.t1(last_name)  | CREATE |      8142 | 2026-08-26 10:53:14 | NULL                |           0 | NULL    | [SIC_5_1787741594] | RUNNING |
+--------+----------------------------------------------------+--------+-----------+---------------------+---------------------+-------------+---------+--------------------+---------+

‫Cloud SQL מבצע תחזוקה של אינדקס הרפליקה המנוהלת באצוות. כש-Cloud SQL מקבל קבוצה של פעולות CREATE או DROP, הוא יוצר רשומת סטטוס PENDING לכל אינדקס, ואז מריץ כל הצהרה של שפת הגדרת נתונים (DDL) באופן סדרתי. אם אינדקס אחד נכשל, זה לא מונע את ההפעלה של האינדקסים הבאים בתור. אחרי כחמש דקות, Cloud SQL יתחיל את הגיבוי של הקבוצה הבאה.

אם יצירת האינדקס נכשלת, Cloud SQL מסמן את הסטטוס כ-FAILED ומנסה שוב באופן אוטומטי אחרי שעה.

הטבלה mysql.cloudsql_replica_idx_status מכילה את כל רשומות הסטטוס של פעולות ההוספה לאינדקס, וכוללת את העמודות הבאות:

  • ‫idx_id: המזהה הייחודי של הגדרת האינדקס, מסוג מספר שלם.
  • ‫create_stmt: הצהרת ה-SQL של CREATE INDEX.
  • ‫action: הפעולה שמבוצעת (CREATE או DROP).
  • ‫thread_id: מזהה ה-thread של MySQL שמבצע את הפעולה.
  • ‫start_time: חותמת הזמן של תחילת הפעולה.
  • ‫end_time: חותמת הזמן של סיום הפעולה.
  • ‫retry_count: מספר ניסיונות החזרה על הפעולה. אם יצירת האינדקס נכשלת, Cloud SQL מנסה שוב אחרי שעה.
  • ‫err_msg: הודעת השגיאה של הפעולה האחרונה שנכשלה.
  • comment_tag: התג [SIC_X_Y] שנוסף בתחילת ההערה של האינדקס. התג הזה משמש רק לניהול פנימי ואין לו פונקציונליות.
  • ‫status: הסטטוס הנוכחי של הפעולה:
    • ‫PENDING: פעולת האינדקס נוספה לתור.
    • ‫RUNNING: התחילה ההרצה של פעולת האינדקס.
    • ‫DONE: פעולת האינדקס הושלמה בהצלחה.
    • ‫FAILED: פעולת ההוספה לאינדקס נכשלה. אם יצירת האינדקס נכשלת, Cloud SQL מנסה שוב אחרי שעה.

הסרת אינדקסים של רפליקות מנוהלות

כדי להסיר אינדקס מקבוצת רפליקות או למחוק הגדרת אינדקס לגמרי, צריך להפעיל את הפרוצדורה המאוחסנת התואמת במכונה הראשית:

  • הסרת הגדרת אינדקס מקבוצת רפליקות:

    מפעילים את mysql.cloudsql_replica_idx_group_drop במכונה הראשית:

    CALL mysql.cloudsql_replica_idx_group_drop
    (INDEX_DEFINITION_ID, 'GROUP_NAME');

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫INDEX_DEFINITION_ID: המזהה הייחודי של המספר השלם שמוחזר כשיוצרים את ההגדרה של האינדקס המשני.
    • ‫GROUP_NAME: השם של מיפוי קבוצת הרפליקות (לדוגמה, reporting_group).
  • מחיקת הגדרת אינדקס:

    מפעילים את mysql.cloudsql_replica_idx_defn_drop במכונה הראשית:

    CALL mysql.cloudsql_replica_idx_defn_drop
    (INDEX_DEFINITION_ID);

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫INDEX_DEFINITION_ID: המזהה הייחודי של הגדרת האינדקס שרוצים למחוק.

מידע נוסף על פרוצדורות מאוחסנות זמין במאמר פרוצדורות מאוחסנות של אינדקסים של רפליקות מנוהלות.

שינוי אינדקסים של רפליקות מנוהלות

ב-Cloud SQL אי אפשר לעדכן או לשנות מטא-נתונים של אינדקס קיים. אי אפשר לשנות ישירות הגדרה של אינדקס קיים או את הצהרת ה-SQL שלו.

כדי לשנות אינדקס מנוהל של רפליקה (לדוגמה, כדי לשנות עמודות שנוספו לאינדקס או אפשרויות אינדקס), צריך להסיר או למחוק את הגדרת האינדקס הקיימת, ואז ליצור הגדרת אינדקס חדשה.

כדי לשנות אינדקס של רפליקה מנוהלת:

  1. מסירים או מוחקים את הגדרת האינדקס הקיימת במכונה הראשית:

    • כדי להסיר את הגדרת האינדקס מקבוצת רפליקות, מפעילים את mysql.cloudsql_replica_idx_group_drop:

      CALL mysql.cloudsql_replica_idx_group_drop
      (INDEX_DEFINITION_ID, 'GROUP_NAME');
    • כדי למחוק את הגדרת האינדקס לחלוטין, צריך להפעיל את mysql.cloudsql_replica_idx_defn_drop:

      CALL mysql.cloudsql_replica_idx_defn_drop
      (INDEX_DEFINITION_ID);

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫INDEX_DEFINITION_ID: המזהה הייחודי של הגדרת האינדקס שרוצים להסיר או למחוק.
    • ‫GROUP_NAME: השם של מיפוי קבוצת הרפליקות (לדוגמה, reporting_group).
  2. יוצרים הגדרת אינדקס חדשה במכונה הראשית:

    קוראים לפונקציה mysql.cloudsql_replica_idx_defn_create עם הצהרת האינדקס המעודכנת:

    CALL mysql.cloudsql_replica_idx_defn_create
    ('INDEX_DEFINITION_NAME', 'CREATE_INDEX_STATEMENT');

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫INDEX_DEFINITION_NAME: השם של הגדרת האינדקס החדשה.
    • ‫CREATE_INDEX_STATEMENT: הצהרת ה-SQL המעודכנת שיוצרת את האינדקס המשני (לדוגמה, CREATE INDEX idx_age ON university.students (age, name)).

    שימו לב לערך החדש של idx_id שמוחזר בפלט של הפרוצדורה המאוחסנת.

  3. ממפים את הגדרת האינדקס החדשה לקבוצת הרפליקות:

    מפעילים את mysql.cloudsql_replica_idx_group_add במכונה הראשית:

    CALL mysql.cloudsql_replica_idx_group_add
    (INDEX_DEFINITION_ID, 'GROUP_NAME');

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫INDEX_DEFINITION_ID: המזהה הייחודי החדש של המספר השלם שהוחזר בשלב 2.
    • ‫GROUP_NAME: השם של מיפוי קבוצת הרפליקות (לדוגמה, reporting_group).

אחרי שממפים את הגדרת האינדקס החדשה לקבוצת הרפליקות, תהליך התחזוקה ברקע מסיר את האינדקס הקיים מהרפליקה לקריאה בלבד, ואז יוצר את האינדקס החדש ברפליקה באמצעות ההגדרה המעודכנת.

דגלי הגדרות של מסד נתונים לאינדקסים של רפליקות מנוהלות

אתם יכולים להתאים אישית את ההתנהגות של אינדקס הרפליקה המנוהלת באופן דינמי באמצעות הדגלים הגלובליים הבאים לניהול מסד הנתונים:

  • ‫cloudsql_index_recreate_enable: הפעלה או השבתה של תהליך היצירה מחדש. כברירת מחדל, הדגל מוגדר כ-on. הגדרת הדגל לערך off מפסיקה באופן מיידי את פעולות התחזוקה של האינדקס.

  • ‫cloudsql_index_recreate_replica_group: שם קבוצת הרפליקות הייעודית של הרפליקה (ברירת המחדל היא NULL). אפשר להקצות רפליקה רק לקבוצת רפליקות אחת בכל פעם. הרפליקות יוצרות את כל האינדקסים שממופים לשם של קבוצת הרפליקות הזו.

אינדקסים של רפליקות בניהול עצמי

ב-Cloud SQL יש שתי פרוצדורות מאוחסנות בסכימה mysql, שבעזרתן אפשר להוסיף ולהסיר אינדקסים משניים ברפליקה לקריאה בלבד ב-MySQL. שימו לב שאפשר להריץ את הפרוצדורות המאוחסנות האלה במכונה של מקור ראשי, אבל הן מיועדות לרפליקות לקריאה בלבד.

האינדקסים האלה לא נשמרים אם הרפליקה נוצרת מחדש.

mysql.addSecondaryIdxOnReplica
הוספת אינדקס משני למסד הנתונים. התהליך המאוחסן הזה הוא wrapper להצהרת ה-DDL‏ CREATE INDEX.

פרמטרים:

  • ‫idxType: סוג האינדקס שרוצים ליצור. לדוגמה, מעבירים את UNIQUE כדי ליצור אינדקס ייחודי.
  • ‫idxName: שם האינדקס.
  • ‫tableName: שם הטבלה בפורמט schema.name.
  • ‫idxDefinition: הגדרת האינדקס. אל תכללו את הסוגריים החיצוניים.
  • ‫idxOption: אפשרויות נוספות להעברה ביצירת אינדקס. לדוגמה, ב-MySQL 8.0, אפשר להעביר את האפשרות INVISIBLE לאינדקס בלתי נראה.

תחביר:

mysql.addSecondaryIdxOnReplica(idxType, idxName, tableName, idxDefinition, idxOption)
     
mysql.dropSecondaryIdxOnReplica
מחיקת אינדקס משני במסד הנתונים. התהליך המאוחסן הזה הוא wrapper להצהרת ה-DDL‏ DROP INDEX.

פרמטרים:

  • ‫idxName: שם האינדקס.
  • ‫tableName: שם הטבלה בפורמט schema.name.
  • ‫idxOption: אפשרויות נוספות להעברה כשמבטלים אינדקס. לדוגמה, אפשרות לאלגוריתם כמו INPLACE.

תחביר:

mysql.dropSecondaryIdxOnReplica(idxName, tableName, idxOption)
      

לגבי הפרמטרים idxType ו-idxOption, עיינו במסמכי התיעוד של הגרסה הראשית של MySQL שפועלת במכונה של Cloud SQL.

דוגמאות

בקטע הזה מופיעות דוגמאות להוספה או להסרה של אינדקסים של רפליקות בניהול עצמי, בצורה נכונה או שגויה.

שימוש נכון

הנה כמה דוגמאות להפעלת הפרוצדורות. נניח שיש לכם טבלה עם ההגדרה הבאה:

CREATE TABLE sampletest.t1(
   id int(10) unsigned NOT NULL AUTO_INCREMENT,
   first_name varchar(64) NOT NULL,
   last_name varchar(64) NOT NULL,
   license_id int NOT NULL,
   PRIMARY KEY (id),
   KEY idx_fname (first_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

כדי ליצור אינדקס רגיל בשם t1_fname_lname בעמודות first_name ו-last_name, מריצים את ההצהרה הבאה:

CALL mysql.addSecondaryIdxOnReplica('', 't1_fname_lname', 'sampletest.t1', 'first_name, last_name', '')

אם רוצים גם ליצור אינדקס ייחודי בשם t1_license_id בעמודה license_id עם ההערה "unique license ID", מריצים את ההצהרה הבאה:

CALL mysql.addSecondaryIdxOnReplica('unique', 't1_license_id', 'sampletest.t1', 'license_id', 'comment "unique license ID"')

כדי להסיר את האינדקס t1_fname_lname, מריצים את ההצהרה הבאה:

CALL mysql.dropSecondaryIdxOnReplica('t1_fname_lname', 'sampletest.t1', '')

שימוש לא נכון

הניסיון הבא ליצור אינדקס בעמודות first_name ו-last_name נכשל בגלל הסוגריים החיצוניים בפרמטר idxDefinition:

CALL mysql.addSecondaryIdxOnReplica('', 't1_extra_parenthesis', 'sampletest.t1', '(first_name, last_name)', '')

אפשר להוסיף אינדקסים רק לטבלאות שנוצרו על ידי הלקוח. הניסיון הבא ליצור אינדקס בעמודה host של הטבלה mysql.servers נכשל:

CALL mysql.addSecondaryIdxOnReplica('', 'idx_invalid', 'mysql.servers', 'host', '')

אפשר להשתמש בפרוצדורה dropSecondaryIdxOnReplica רק כדי להסיר אינדקסים שנוצרו בעבר באמצעות הפרוצדורה addSecondaryIdxOnReplica. לדוגמה, הקריאה הבאה להסרת האינדקס הקיים idx_fname נכשלת:

CALL mysql.dropSecondaryIdxOnReplica('idx_fname', 'sampletest.t1', '')

הזרקת SQL בקריאות האלה לפרוצדורות נכשלת. לדוגמה, הזרקת ה-SQL הבאה עם רצף הערות תיכשל:

CALL mysql.addSecondaryIdxOnReplica("user 'a'@'%' --", 'idx_fname', 'sampletest.t1', 'first_name', '')

באופן דומה, הניסיון הזה להזרקת SQL עם תו מפריד נכשל:

CALL mysql.addSecondaryIdxOnReplica('', 'idx_fname', 'sampletest.t1', 'first_name', ';flush status')

מעבר מאינדקסים של רפליקות בניהול עצמי לאינדקסים מנוהלים

למרות שאינדקסים של רפליקות מנוהלות ואינדקסים של רפליקות בניהול עצמי יכולים להתקיים באותו מכונה, אתם יכולים להעביר לאינדקסים של רפליקות מנוהלות.

כדי לעבור מאינדקסים של רפליקות בניהול עצמי לאינדקסים של רפליקות מנוהלות, פועלים לפי השלבים הבאים:

  1. רושמים את הגדרות האינדקס במכונה הראשית:

    מפעילים את mysql.cloudsql_replica_idx_defn_create במכונה הראשית לכל אינדקס משני:

    CALL mysql.cloudsql_replica_idx_defn_create
    ('INDEX_DEFINITION_NAME',
    'CREATE INDEX INDEX_NAME ON DATABASE.TABLE (COLUMNS)');

    שימו לב לערך idx_id שמוחזר (מזהה ייחודי של ההגדרה כמספר שלם) מהפלט של הפרוצדורה.

  2. מוסיפים את הגדרת האינדקס לקבוצת רפליקות:

    ממפים את הגדרת האינדקס לשם של קבוצת רפליקות ייעודית, על ידי קריאה ל-mysql.cloudsql_replica_idx_group_add במכונה הראשית:

    CALL mysql.cloudsql_replica_idx_group_add
    (INDEX_DEFINITION_ID, 'REPLICA_GROUP');
  3. מגדירים את הדגל של קבוצת הרפליקות ברפליקה לקריאה בלבד:

    מגדירים את הדגל לניהול מסד הנתונים cloudsql_index_recreate_replica_group במכונה של הרפליקה לקריאה בלבד, כדי לטרגט את שם הקבוצה:

    gcloud sql instances patch REPLICA_INSTANCE_NAME \
    --database-flags=EXISTING_FLAGS,cloudsql_index_recreate_replica_group=REPLICA_GROUP

    חשוב לוודא ששם הקבוצה שצוין בדגל לניהול מסד הנתונים cloudsql_index_recreate_replica_group זהה בדיוק לשם הקבוצה שצוין ב-mysql.cloudsql_replica_idx_group_add.

  4. אימות או העברה של האינדקסים הקיימים:

    מכיוון שהאינדקס כבר קיים ברפליקה לקריאה בלבד, יכול להיות שיופיעו שגיאות עם סטטוס FAILED ב-mysql.cloudsql_replica_idx_status כשתהליך הרקע ינסה ליצור את האינדקס. אפשר לבחור באחת מהגישות הבאות:

    • המתנה ליצירה מחדש של הרפליקה: אפשר להתעלם מהסטטוס FAILED בטבלת הסטטוסים. אחרי אירוע של יצירה מחדש של רפליקה, Cloud SQL יוצר מחדש באופן אוטומטי את האינדקס המשני באמצעות שיטת האינדקס של הרפליקה המנוהלת.
    • מעבר מיידי: אם אתם רוצים ש-Cloud SQL ינהל את האינדקס באופן מיידי בלי לחכות ליצירה מחדש של הרפליקה, אתם צריכים להתחבר לרפליקה לקריאה בלבד ולהסיר את האינדקס בניהול עצמי באמצעות הפרוצדורה המאוחסנת mysql.dropSecondaryIdxOnReplica:

      CALL mysql.dropSecondaryIdxOnReplica('INDEX_NAME', 'DATABASE.TABLE', '');

      במהלך מחזור התחזוקה הבא ברקע (בערך כל חמש דקות), Cloud SQL יוצר מחדש באופן אוטומטי את האינדקס של הרפליקה המנוהלת ועוקב אחריו.

פתרון בעיות באינדקסים של רפליקות

כדי לפתור בעיות באינדקסים של רפליקות, צריך לוודא את הדברים הבאים:

  • מוודאים שהאינדקסים של הרפליקה המנוהלת מופעלים במכונה של הרפליקה:

    אם אתם משתמשים באינדקסים של רפליקות מנוהלות, ודאו שהדגל לניהול מסד הנתונים cloudsql_index_recreate_enable מוגדר ל-on ברפליקה לקריאה בלבד.

    מידע נוסף על הגדרת דגלים לניהול מסדי נתונים זמין במאמר הגדרת דגלים לניהול מסדי נתונים.

  • בדיקת סטטוס הפעולה ושגיאות:

    מתחברים לעותק הזהה לקריאה בלבד ומריצים שאילתה על mysql.cloudsql_replica_idx_status או מריצים את CALL mysql.cloudsql_replica_idx_show_errors(); כדי לראות הודעות שגיאה על פעולות שנכשלו. אם אינדקס אחד נכשל, זה לא מונע את ההפעלה של האינדקסים הבאים בתור.

המאמרים הבאים