מדריך גיבוי ושחזור מסד נתונים
סקירה כללית
Agentix משתמשת ב-Railway PostgreSQL כמסד הנתונים הראשי שלה. בתוכנית Pro של Railway יש גיבויים אוטומטיים יומיים עם שמירה ל-7 ימים ויכולת שחזור לנקודת זמן. המדריך הזה מסביר איך לוודא שהגיבויים פעילים, איך לייצר גיבוי ידני ואיך לבצע שחזור דרך הממשק של Railway או באמצעות pg_restore.
כל הנתונים הקבועים של המערכת נשמרים ב-PostgreSQL: tenants, users, workflows, workflow versions, contacts, conversations, messages, events, runs, steps, tools, credentials ו-audit logs.
משתני סביבה:
DATABASE_URL — מחרוזת החיבור למסד PostgreSQL הראשי
1. אימות שהגיבויים פעילים
בצעו את הבדיקה הזו פעם בחודש או אחרי כל שינוי בתשתית של Railway:
- פתחו את Railway Dashboard
- עברו אל הפרויקט > שירות PostgreSQL
- פתחו את לשונית Backups
- ודאו שהפריטים הבאים תקינים:
- Automatic Backups מופעל
- Retention period מוגדר ל-7 ימים
- Last backup timestamp הוא מתוך 24 השעות האחרונות
- אם הגיבויים האוטומטיים כבויים:
- הפעילו Enable Backups
- אם אתם על תוכנית חינמית, שדרגו ל-Pro או הפעילו נוהל גיבוי ידני
מצב תקין צפוי:
Automatic Backups: Enabled
Retention: 7 days
Last Backup: [within 24 hours]
2. גיבוי ידני עם pg_dump
השתמשו בנוהל הזה לפני מיגרציות, שינויי סכימה או פריסה של שינויי breaking.
דרישות מוקדמות
pg_dump מותקן מקומית
DATABASE_URL זמין מתוך Railway
תהליך
-
השיגו את מחרוזת החיבור:
# Option A: Use Railway CLI
railway connect postgres
# Option B: Copy DATABASE_URL from Railway dashboard
# Project > PostgreSQL service > Variables tab > DATABASE_URL
-
צרו dump:
pg_dump -Fc -d "$DATABASE_URL" > agentix_backup_$(date +%Y%m%d_%H%M%S).dump
-
ודאו שהקובץ נוצר כראוי:
pg_restore --list agentix_backup_*.dump | head -20
-
שמרו את הגיבוי מחוץ למכונה המקומית:
aws s3 cp agentix_backup_*.dump s3://agentix-backups/$(date +%Y/%m)/
תזמון מומלץ
| מתי | טריגר |
|---|
| לפני כל Prisma migration | ידני |
| לפני deploy משמעותי | ידני |
| אחת לשבוע בתקופות רגישות | Cron |
3. שחזור דרך Railway UI
השתמשו במסלול הזה כאשר הגיבויים האוטומטיים של Railway זמינים:
- עברו אל Railway Dashboard > Project > PostgreSQL > Backups
- בחרו את הגיבוי הרלוונטי לפי timestamp
- לחצו על Restore
- Railway תיצור מסד משוחזר חדש ולא תדרוס את הקיים
- עדכנו את
DATABASE_URL בשירות ה-API אל מחרוזת החיבור החדשה
- הפעילו redeploy לשירות
- ודאו בריאות:
curl https://api.agentix.app/health
Rollback
אם השחזור לא תקין:
- החזירו את
DATABASE_URL הישן
- בצעו redeploy
- חקרו את התקלה לפני ניסיון שחזור נוסף
4. שחזור עם pg_restore
כאשר משתמשים בגיבוי ידני:
- צרו שירות PostgreSQL חדש ב-Railway או בחרו מופע ריק
- השיגו
NEW_DATABASE_URL
- הריצו שחזור:
pg_restore -d "$NEW_DATABASE_URL" --clean --if-exists agentix_backup_YYYYMMDD_HHMMSS.dump
- ודאו שהטבלאות והנתונים קיימים
- החליפו את
DATABASE_URL של ה-API אל המסד המשוחזר
- בצעו redeploy ובדיקת
/health
5. בדיקות אחרי שחזור
6. מצבי חירום
| מצב | פעולה מיידית |
|---|
| מחיקה לוגית של נתונים | עצרו deploys חדשים והחליטו על נקודת השחזור |
| corruption במסד | אל תכתבו ידנית למסד לפני גיבוי |
| migration כושל | שחזרו מהגיבוי שלפני המיגרציה |
| חוסר ודאות לגבי היקף הנזק | בצעו snapshot או dump נוסף לפני כל שינוי |
בכל אירוע אובדן נתונים, אל תבצעו restart או redeploy אוטומטי לפני שיש לכם גיבוי נוסף או תמונת מצב ברורה של מצב המסד.