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

שני שלבים, שתי תשובות נפרדות

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

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

קראו את הערוץ עם ההצהרה הנכונה

ב-MySQL 8.4, SHOW REPLICA STATUS מחזיר שורה אחת לכל ערוץ מוגדר, לכן קראו את השורה של הערוץ שאתם מתכוונים אליו ולא את הראשונה ברשימה. Replica_IO_Running מבדיל בין מקלט מחובר לכזה שמתחבר או שנעצר, ו-Replica_SQL_Running מתאר את המחיל. קראו גם את עמודות השגיאה שלצידם, כי מקלט שמתחבר מחדש ונכשל מיד משאיר הודעה שאף דגל סטטוס לא יציג. גרסאות ישנות יותר משתמשות בשמות עמודות אחרים, לכן אל תתרגמו מתכון ישן רק על ידי שינוי שמות הפקודות.

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

מדוע מספר פיגור אפס יכול לשקר

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

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

השמירה קובעת את חלון ההתאוששות האמיתי

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

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

אמתו את ההדבקה, לא את צבעו של מחוון

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

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

מאמרים קשורים