קידום רפליקות להעברה אזורית או תוכנית התאוששות מאסון (DR)

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

סקירה כללית

יש שני תרחישים נפוצים לקידום רפליקות חוצות אזורים:

  • העברה אזורית: ביצוע העברה מתוכננת של מסד נתונים לאזור אחר.
  • תוכנית התאוששות מאסון (DR): מעבר אוטומטי של מסד נתונים לאזור אחר במקרה שהאזור הראשי לא זמין.

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

העברה אזורית

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

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

תוכנית התאוששות מאסון (DR)

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

מידע נוסף על התאוששות מאסון זמין במאמר מידע על התאוששות מאסון ב-Cloud SQL.

תוכנית התאוששות מאסון (DR) מתקדמת

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

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

מידע נוסף זמין במאמר בנושא התאוששות מתקדמת מאסון (DR).

אימות קריטריוני המעבר לגיבוי

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

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

לאחר מכן, מתחברים למופע המשוכפל באמצעות לקוח PostgreSQL על ידי ביצוע ההוראות בדף replication status (סטטוס השכפול) (ראו בכרטיסייה psql Client). הוראות בנושא המדדים pg_catalog.pg_last_wal_receive_lsn() ו-pg_catalog.pg_last_wal_replay_lsn() מוודאים שהעותק המשוכפל עיבד את כל העסקאות שהוא קיבל מהעותק הראשי. כך תוכלו לוודא שכאשר העותק המשוכפל יקודם, הוא ישקף את כל העסקאות שהתקבלו לפני שהשרת הראשי הפסיק להיות זמין.

קידום של עותק לקריאה

אחרי שתקבעו שהקריטריונים למעבר לגיבוי (failover) מתקיימים, תוכלו להפוך אחת מהרפליקות למופע עצמאי שניתן לכתוב בו. לדוגמה, נבחן את התרחיש הבא:

  • באזור א' (us-central1) יש מכונה ראשית עם זמינות גבוהה (db-a-0)
  • באזור B ‏ (us-west1) יש רפליקה חוצה-אזורים בזמינות גבוהה (db-b-1) של db-a-0
  • באזור ג' (us-east1) יש רפליקה חוצה אזורים (db-c-1) של db-a-0

אפשר לקדם את db-b-1 באזור B כך שיהפוך למופע עצמאי עם הרשאות כתיבה.

הוראות מפורטות זמינות במאמר בנושא קידום רפליקה.

מוודאים שסוג המכונה מתאים

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

הפעלת זמינות גבוהה למופע המקודם

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

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

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

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

  • באזור א' (us-central1) יש מכונה ראשית עם זמינות גבוהה (db-a-0)
  • באזור B ‏ (us-west1) יש עותק משוכפל חוצה-אזורים (db-b-1) של db-a-0
  • באזור ג' (us-east1) יש רפליקה חוצה אזורים (db-c-1) של db-a-0

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

ההגדרה שתתקבל תהיה:

  • באזור א' (us-central1) יש עכשיו רפליקה חוצת-אזורים (db-a-1)
  • אזור ב' (us-west1) כולל עכשיו את המופע הראשי (db-b-1)
  • באזור C ‏ (us-east1) יש עכשיו רפליקה חדשה חוצת-אזורים (db-c-2)