יצירת קשר עם התמיכה

אנחנו משיבים בדוא״ל, בדרך כלל בתוך יומיים.

למניעת שימוש לרעה, Google reCAPTCHA בודק את הפנייה הזאת; נתונים נשלחים אל Google. הסקריפט נטען רק עם פתיחת הטופס הזה.

→ כל הרשומות

הגיבוי שוחזר מתחילתו ועד סופו

על התוכן ועל בדיקתו

במאמר הזה

השרת הזה מגבה את עצמו בכל לילה מאז 11 באוגוסט. יש ביומן 163 שורות. המילה “restore” אינה מופיעה באף אחת מהן, כי כל שורה עוסקת בכתיבה.

היום נבדק גם החצי של הקריאה.

מה הגיבוי הלילי בודק קוד יציאה · לפחות 1 MB · בתים בצד הרחוק · שורה ביומן האם אפשר לקרוא אותו בחזרה? — 163 שורות יומן, אף לא פעם אחת שוחזרו היום: 104 MB של נתוני מונים מתוך קובץ ייצוא של 437 MB 38 מתוך 38 טבלאות, מספרי שורות שתואמים לעותק שיוצא ב־03:00 דקה וארבעים וארבע שניות, למסד נתונים זמני שנמחק אחר כך

הגיבוי טוב מרוב הגיבויים

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

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

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

שום דבר מזה אינו שחזור

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

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

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

שני דברים שרק התרגול יכול היה למצוא

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

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

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

מה עדיין לא אומת

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

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

הגרסה הכללית

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

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

פרסומת