‫Backup and DR ל-PostgreSQL במכשיר לגיבוי או לשחזור

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

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

‫API לגיבוי של PostgreSQL שמשמש את Backup and DR

  • גיבויים ברמת הנפח (מעקב אחר שינויים בבלוקים ב-Linux ותמונת מצב של LVM): Backup and DR משתמש בפקודות pg_start_backup(label) ו-pg_stop_backup() של PostgreSQL כשמבצעים גיבויים עם מעקב אחר שינויים בבלוקים ב-Linux ותמונת מצב של LVM.

  • גיבויים מלאים ומצטברים (מסורתיים, מבוססי-קבצים): Backup and DR משתמש בפקודות הגיבוי מבוססות-הקבצים pg_dump של PostgreSQL. לפקודה pg_dump אין אפשרות לתעד שינויים מצטברים במסד נתונים, ולכן כל גיבוי הוא גיבוי מלא של מסד הנתונים.

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

  • גיבוי יומן של PostgreSQL: במהלך גיבוי יומן, Backup and DR מעתיק פיזית את כל ה-WAL של PostgreSQL (WriteAheadLog). כדי למחוק יומנים, Backup and DR משתמש בפקודה ברמת מערכת ההפעלה.

איך זה עובד: גיבוי מבוסס-נפח של Backup and DR עם Linux CBT

רק בלוקים שהשתנו מתועדים במפת הסיביות: אין פעולות של העתקה בזמן כתיבה (copy-on-write) ואין פעולות שדורשות הרבה קלט/פלט.

השלבים הבאים מתארים את תהליך הגיבוי והשחזור של הנתונים:

  1. לסוכן Backup and DR יש CBT למעקב אחרי בלוקים שהשתנו באזור הנתונים של מסד הנתונים.

  2. הסוכן שולח קריאה ל-API של מסד הנתונים כדי להקפיא או להשהות את מסד הנתונים לצורך גיבוי נתונים.

  3. הסוכן יוצר תמונת מצב של LVM של אזור הנתונים של מסד הנתונים ומסנתז מפת סיביות (bitmap).

  4. הסוכן שולח קריאה ל-API של מסד הנתונים כדי לבטל את ההקפאה של מסד הנתונים.

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

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

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

הפקודה להשהיה או לביטול ההשהיה מופעלת במכונה הראשית בשביל משימת קובץ snapshot ברמת הנפח:

select pg_start_backup(<label>);
select pg_stop_backup();

הפקודות להשהיה ולביטול ההשהיה מופעלות בצומת המתנה למשימת תמונת מצב ברמת הנפח:

אם גרסת PostgreSQL היא 10.x ואילך:

select pg_wal_replay_pause();
select pg_wal_replay_resume();

אם גרסת PostgreSQL היא 9.x:

select pg_xlog_replay_pause();
select pg_xlog_replay_resume();

איך זה עובד: גיבוי מבוסס-קבצים

בשלבים הבאים מתואר התהליך של גיבוי ושחזור נתונים באמצעות גיבויים מבוססי-קבצים:

  1. סוכן Backup and DR פרוס בשרת של מסד הנתונים.

  2. טוענים את דיסק ה-staging בשרת של מסד הנתונים.

  3. מפעילים גיבוי מלא באמצעות הפקודה dump backup, וכותבים את הגיבוי בדיסק שהותקן.

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

  5. כדי לשחזר נתונים, השירות Backup and DR טוען באופן מיידי את דיסק ה-staging לשרת של מסד הנתונים ומתחיל את פעולת השחזור של מסד הנתונים. אפשר להפעיל את היומנים בכל שלב אחרי שחזור מסד הנתונים.

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

הכנת מסד הנתונים ל-Backup and DR

מסמכים אחרים בנושא Backup and DR ל-PostgreSQL