הגדרת גיבוי מצטבר למסדי נתונים
אנו מגדירים גיבויים מצטברים עבור PostgreSQL ו-MySQL — מותאמים לסטack שלך ולעומס. גיבויים מלאים בכל לילה הם יקרים מבחינת שטח דיסק וזמן. כאשר מסד נתונים גדל לעשרות ג'יגה-בייט, גיבוי מלא יכול לקחת שעות ולהעמיס על קלט/פלט הדיסק. לדוגמה, גיבוי מלא של מסד נתונים בגודל 500 GB על HDD עשוי לקחת 8 שעות, בעוד שגיבוי מצטבר לוקח 15 דקות. גיבויים מצטברים שומרים רק את השינויים מאז הגיבוי האחרון, ומפחיתים את הזמן והנפח פי 10–50. חיסכון בשטח האחסון מגיע ל-80%, וזמן השחזור משתפר פי 2–5. אנו משתמשים בכלים מוכחים: pgBackRest עבור PostgreSQL, Percona XtraBackup עבור MySQL, ו-Restic עם דדופליקציה לאחסון בענן. כל הפתרונות כוללים ניטור והתראות. יתרון נוסף: הפחתת עומס על הדיסק וה-CPU. אנו מבטיחים שאחרי ההתקנה, תישן בשקט — הנתונים בטוחים והשחזור לוקח דקות.
איזה סוג גיבוי מצטבר לבחור?
- דיפרנציאלי: שומר את כל השינויים מאז הגיבוי המלא האחרון. שחזור: מלא + דיפרנציאלי אחד.
- מצטבר: שומר רק את השינויים מאז הגיבוי האחרון מכל סוג. שחזור: מלא + שרשרת מצטברים.
- מבוסס WAL (PostgreSQL): ארכוב רציף של יומן העסקאות, בסיס ל-PITR.
המצטבר חסכוני יותר בשטח אך מורכב יותר לשחזור בשל תלות בשרשרת. אנו ממליצים על שילוב: מלא שבועי, דיפרנציאלי יומי — איזון בין גודל למהירות שחזור.
| סוג | נפח נתונים | מהירות שחזור | מורכבות |
|---|---|---|---|
| דיפרנציאלי | בינוני | גבוהה (מלא + קובץ אחד) | נמוכה |
| מצטבר | מינימלי | נמוכה (מלא + שרשרת) | בינונית |
| מבוסס WAL (PITR) | מינימלי | בינונית (נקודת זמן) | גבוהה |
| כלי | RDBMS | סוגי גיבוי | דדופליקציה | הצפנה |
|---|---|---|---|---|
| pgBackRest | PostgreSQL | מלא, דיפרנציאלי, מצטבר | לא | כן (TLS) |
| Percona XtraBackup | MySQL | מלא, מצטבר | לא | לא (אפשרי חיצוני) |
| Restic | כל קבצים | בלוקים מצטברים | כן | כן (AES-256) |
| Borg Backup | כל קבצים | בלוקים מצטברים | כן | כן (AES-256) |
איך להגדיר ארכוב WAL ב-PostgreSQL?
התקן את pgBackRest והגדר:
# /etc/pgbackrest/pgbackrest.conf
[global]
repo1-path=/var/lib/pgbackrest
repo1-retention-full=2
repo1-retention-diff=7
log-level-console=info
[myapp]
pg1-path=/var/lib/postgresql/14/mainאתחל והרץ גיבוי מלא ראשון:
# Инициализация stanza и первый полный бэкап
pgbackrest --stanza=myapp stanza-create
pgbackrest --stanza=myapp --type=full backup
# Расписание в cron: полный раз в неделю, дифференциальный ежедневно
# Полный (воскресенье 01:00)
0 1 * * 0 pgbackrest --stanza=myapp --type=full backup
# Дифференциальный (пн-сб 01:00)
0 1 * * 1-6 pgbackrest --stanza=myapp --type=diff backupעבור MySQL, השתמש ב-Percona XtraBackup:
# Полный бэкап xtrabackup --backup --target-dir=/var/backups/mysql/full/ # Инкрементальные на основе предыдущего xtrabackup --backup --target-dir=/var/backups/mysql/incr1/ \ --incremental-basedir=/var/backups/mysql/full/ xtrabackup --backup --target-dir=/var/backups/mysql/incr2/ \ --incremental-basedir=/var/backups/mysql/incr1/ # Восстановление: подготовка полного + применение инкрементов xtrabackup --prepare --apply-log-only --target-dir=/var/backups/mysql/full/ xtrabackup --prepare --apply-log-only \ --target-dir=/var/backups/mysql/full/ \ --incremental-dir=/var/backups/mysql/incr1/ xtrabackup --prepare \ --target-dir=/var/backups/mysql/full/ \ --incremental-dir=/var/backups/mysql/incr2/ אחסון בענן ודדופליקציה
לאחסון גיבויים בענן, השתמש ב-Restic — הוא תומך ב-S3, GCS, B2 והצפנה תוך כדי פעולה:
# Инициализация репозитория
restic -r s3:s3.amazonaws.com/my-bucket/db-backups init
# Бэкап директории с дампами
restic -r s3:s3.amazonaws.com/my-bucket/db-backups \
backup /var/backups/postgres/ \
--password-file /etc/restic-passwordRestic מבצע דדופליקציה אוטומטית של בלוקים, ומפחית את האחסון בעוד 30–50% בנוסף לדחיסה.
איך להגדיר ניטור והתראות?
מדדים קריטיים: גודל הגיבוי האחרון (ירידה חדה מאותתת על בעיה), זמן ביצוע, סטטוס הצלחה. השתמש ב-Healthchecks.io לבדיקות:
# Конец скрипта — проверка и healthcheck
if pgbackrest --stanza=myapp check; then
curl -s "https://hc-ping.com/${HC_UUID}"
else
curl -s "https://hc-ping.com/${HC_UUID}/fail"
fi
כמו כן, הגדר איסוף מדדים באמצעות Prometheus ודשבורדים של Grafana כדי לראות מגמות ולהגיב בזמן.
טעויות נפוצות בהתקנה
- ללא רוטציית גיבויים: גיבויים ישנים מצטברים, הדיסק מתמלא. הגדר שמירה ב-pgBackRest או בסקריפטים מותאמים.
- שכחת ניטור: אם גיבוי נכשל, תגלה רק כשהנתונים יאבדו. הגדר התראות.
- דילוג על בדיקות שחזור: גיבוי עלול להיות פגום. שחזר באופן קבוע על שרת בדיקה.
- בחירת סוג שגויה: עבור מסדי נתונים גדולים עם שינויים תכופים, ארכוב WAL עדיף.
איך אנו בודקים שחזור
כל גיבוי מוגדר נבדק על ידי שחזור לסביבת staging. אנו יוצרים עותק של מסד הנתונים, מבצעים שחזור מלא, ובודקים checksums. סקריפטי אימות אוטומטיים רצים לאחר כל גיבוי. זה מבטיח שניתן לשחזר נתונים בכל רגע. אנו מתעדים את רצף השחזור המדויק ב-runbook.
מה כלול בהתקנה
- ביקורת על תוכנית הגיבוי הנוכחית ובדיקת עומס
- בחירת אסטרטגיה אופטימלית (מלא + דיפרנציאלי או WAL)
- הגדרת כלים (pgBackRest, XtraBackup) עבור ה-RDBMS שלך
- סקריפטים לרוטציה וניקוי
- שילוב ניטור והתראות (Healthchecks.io, Prometheus)
- תיעוד שחזור (runbook)
- הדרכת הצוות שלך בניהול בסיסי
הגדרנו גיבויים מצטברים עבור יותר מ-50 פרויקטים — מסטארטאפים ועד ארגונים. במשך 5 שנים, אף גיבוי לא נכשל: כל הנתונים שוחזרו בבקשה הראשונה. אנו מבטיחים שחזור נתונים אם לוח התחזוקה נשמר. אנו מעריכים את הפרויקט שלך תוך יום אחד. קבל ייעוץ על הגדרת גיבוי — נבחר אסטרטגיה עבור התשתית שלך.
לוח זמנים
התקנת pgBackRest או XtraBackup עם אסטרטגיה מצטברת — 1–2 ימי עסקים.







