דלג לתוכן הראשי

מדריך גיבוי ושחזור מסד נתונים

סקירה כללית

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:
  1. פתחו את Railway Dashboard
  2. עברו אל הפרויקט > שירות PostgreSQL
  3. פתחו את לשונית Backups
  4. ודאו שהפריטים הבאים תקינים:
    • Automatic Backups מופעל
    • Retention period מוגדר ל-7 ימים
    • Last backup timestamp הוא מתוך 24 השעות האחרונות
  5. אם הגיבויים האוטומטיים כבויים:
    • הפעילו Enable Backups
    • אם אתם על תוכנית חינמית, שדרגו ל-Pro או הפעילו נוהל גיבוי ידני
מצב תקין צפוי:
Automatic Backups: Enabled
Retention: 7 days
Last Backup: [within 24 hours]

2. גיבוי ידני עם pg_dump

השתמשו בנוהל הזה לפני מיגרציות, שינויי סכימה או פריסה של שינויי breaking.

דרישות מוקדמות

  • pg_dump מותקן מקומית
  • DATABASE_URL זמין מתוך Railway

תהליך

  1. השיגו את מחרוזת החיבור:
    # Option A: Use Railway CLI
    railway connect postgres
    
    # Option B: Copy DATABASE_URL from Railway dashboard
    # Project > PostgreSQL service > Variables tab > DATABASE_URL
    
  2. צרו dump:
    pg_dump -Fc -d "$DATABASE_URL" > agentix_backup_$(date +%Y%m%d_%H%M%S).dump
    
  3. ודאו שהקובץ נוצר כראוי:
    pg_restore --list agentix_backup_*.dump | head -20
    
  4. שמרו את הגיבוי מחוץ למכונה המקומית:
    aws s3 cp agentix_backup_*.dump s3://agentix-backups/$(date +%Y/%m)/
    

תזמון מומלץ

מתיטריגר
לפני כל Prisma migrationידני
לפני deploy משמעותיידני
אחת לשבוע בתקופות רגישותCron

3. שחזור דרך Railway UI

השתמשו במסלול הזה כאשר הגיבויים האוטומטיים של Railway זמינים:
  1. עברו אל Railway Dashboard > Project > PostgreSQL > Backups
  2. בחרו את הגיבוי הרלוונטי לפי timestamp
  3. לחצו על Restore
  4. Railway תיצור מסד משוחזר חדש ולא תדרוס את הקיים
  5. עדכנו את DATABASE_URL בשירות ה-API אל מחרוזת החיבור החדשה
  6. הפעילו redeploy לשירות
  7. ודאו בריאות:
    curl https://api.agentix.app/health
    

Rollback

אם השחזור לא תקין:
  1. החזירו את DATABASE_URL הישן
  2. בצעו redeploy
  3. חקרו את התקלה לפני ניסיון שחזור נוסף

4. שחזור עם pg_restore

כאשר משתמשים בגיבוי ידני:
  1. צרו שירות PostgreSQL חדש ב-Railway או בחרו מופע ריק
  2. השיגו NEW_DATABASE_URL
  3. הריצו שחזור:
    pg_restore -d "$NEW_DATABASE_URL" --clean --if-exists agentix_backup_YYYYMMDD_HHMMSS.dump
    
  4. ודאו שהטבלאות והנתונים קיימים
  5. החליפו את DATABASE_URL של ה-API אל המסד המשוחזר
  6. בצעו redeploy ובדיקת /health

5. בדיקות אחרי שחזור

  • /health מחזיר db: ok
  • ניתן להתחבר לאפליקציה
  • workflows, contacts ו-conversations נגישים
  • workers מצליחים לעבד jobs חדשים
  • אין שגיאות schema או connection logs חריגות

6. מצבי חירום

מצבפעולה מיידית
מחיקה לוגית של נתוניםעצרו deploys חדשים והחליטו על נקודת השחזור
corruption במסדאל תכתבו ידנית למסד לפני גיבוי
migration כושלשחזרו מהגיבוי שלפני המיגרציה
חוסר ודאות לגבי היקף הנזקבצעו snapshot או dump נוסף לפני כל שינוי
בכל אירוע אובדן נתונים, אל תבצעו restart או redeploy אוטומטי לפני שיש לכם גיבוי נוסף או תמונת מצב ברורה של מצב המסד.