Database Operations ב-Production

📚 DevOps עם Claude ⏱️ 12 דק׳ 🎓 מתקדם ✓ חינם לגמרי
Database Operations ב-Production

למה Database Operations הן הסיכון הכי יקר בפיתוח

שעה 14:00, יום שלישי. צוות הdev של סטארטאפ ישראלי עם 50 מיליון rows ב-users table צריך להוסיף column. הם כותבים ALTER TABLE users ADD COLUMN email_verified BOOLEAN NOT NULL DEFAULT false. חמש דקות לאחר מכן, ה-production database נעול. כל הבקשות timeout. 10,000 משתמשים פעילים לא יכולים להתחבר. זה לא תרחיש בדיוני, זה קורה בכל שבוע בחברות שלא יודעות את ה-safe patterns.

ומצד שני: במרץ 2026 סוכן Claude שרץ דרך Cursor קיבל גישת כתיבה ל-production database. תוך 9 שניות הוא מחק את כל ה-database וגם את ה-backups. חודשים של הזמנות של לקוח השכרת רכב, נמחקו. האירוע הזה שינה את הקונצנזוס בקהילה: לעולם אל תיתן ל-Claude גישת כתיבה אוטומטית ל-production.

Claude Sonnet 4.6 ו-Claude Opus 4.7 יודעים את ה-safe migration patterns שמאפשרים לשנות schema של טבלאות ענקיות בלי downtime, אבל רק אם נותנים להם את ההקשר הנכון. בלי גודל טבלה, בלי מידע על ה-load, Claude ייצר קוד שנכון תיאורטית אבל הורס את ה-production.

כלל הזהב: תמיד תן הקשר לפני שאתה מבקש SQL

"Claude יכתוב migration שעובד נכון אבל ינעל טבלה לעשר דקות על dataset אמיתי, הוא פשוט לא יודע שיש לך מיליון rows." (Airbyte, 2025). זה הטעות הכי נפוצה: לבקש migration בלי לציין גודל הטבלה, ה-load, וגרסת PostgreSQL.

הנוסחה הנכונה לכל prompt DB:

עזור לי להוסיף column לטבלה בPostgreSQL
אתה PostgreSQL DBA מנוסה. כתוב zero-downtime migration ל-PostgreSQL 15 להוספת email_verified BOOLEAN NOT NULL DEFAULT false לטבלת users עם 50M rows, production 24/7, 10M בקשות ביום. דרישות: lock לא יותר מ-1 שניה, backward compatible, rollback script, הסבר כל שלב עם זמן משוער.

Migration בטוח: Expand-Contract Pattern

הdeploy הכי מסוכן הוא זה שמוסיף NOT NULL column בצעד אחד על טבלה גדולה. ה-expand-contract pattern פותר את זה בשני deploys נפרדים:

  1. Expand: הוסף column כ-nullable, בלי NOT NULL constraint. Production יכול להמשיך לרוץ בלי שינוי.
  2. Backfill: עדכן rows ישנים בbatches (לא UPDATE אחד גדול, זה ינעל).
  3. Contract: אחרי שכל הקוד כותב את הcolumn החדש, הוסף NOT NULL constraint. Deploy נפרד.

כשמבקשים מ-Claude migration, ציינו את הpattern הזה במפורש: "השתמש ב-expand-contract pattern. שלושה שלבים נפרדים, כל אחד עם rollback." Claude יממש את זה נכון, אבל אם לא ביקשתם, הוא עלול לדחוס הכל לALTER TABLE אחד.

Index Optimization, EXPLAIN ANALYZE הוא הדלק

הדרך הכי מהירה לשפר query איטי עם Claude: הדבק את הפלט של EXPLAIN ANALYZE ובקש ניתוח. Claude קורא execution plans ומזהה בדיוק איפה צוואר הבקלה, Seq Scan, Hash Join, Sort, או Missing Index.

ה-query הזה לוקח 2.3 שניות ב-production. יש 8 מיליון rows.

Query:
SELECT u.id, u.email, o.total, o.created_at
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE o.status = 'pending'
  AND o.created_at > NOW() - INTERVAL '7 days'
ORDER BY o.created_at DESC
LIMIT 100;

EXPLAIN ANALYZE output:
[הדבק את הפלט כאן]

Indexes קיימים:
- users: PRIMARY KEY (id), INDEX (email)
- orders: PRIMARY KEY (id), INDEX (user_id), INDEX (status)

נתח: (1) מה בדיוק איטי, (2) אילו indexes יעזרו, (3) CREATE INDEX CONCURRENTLY script, (4) הערכת זמן אחרי התיקון.

שימו לב לפרט אחד קריטי: תמיד בקשו CREATE INDEX CONCURRENTLY. CREATE INDEX רגיל נועל את הטבלה לכל משך הבנייה, יכולה לקחת דקות על טבלאות גדולות. CONCURRENTLY בונה בלי לנעול, ומאפשר writes ל-production להמשיך. Claude יזכיר זאת אם ביקשתם, אבל לא תמיד ביוזמתו.

Backup Strategy, Claude כותב את כל ה-Runbook

prompt יחיד שמייצר backup strategy מלאה לארגון:

כתוב backup strategy ל-PostgreSQL 15 production database:
- 100GB database, RPO: 1 שעה, RTO: 30 דקות
- pg_dump לגיבוי יומי (מתי, לאיפה, retention policy)
- WAL archiving ל-S3 לpoint-in-time recovery
- Script לbedיקת backup חודשית (restore + validate data integrity)
- Monitoring: alert אם backup לא רץ תוך 25 שעות
- Terraform ל-S3 bucket עם lifecycle rules
כתוב scripts מלאים + cron definitions + הוראות לצוות.

שני מושגים שClaude יסביר אם שואלים: RPO (Recovery Point Objective) = כמה data מוכנים לאבד אם ה-server נופל. RTO (Recovery Time Objective) = כמה זמן מקסימלי עד שהשירות חוזר לאוויר. ה-backup strategy כולה נגזרת מהשניים האלה.

כלי Connection Pooling מתי להשתמש מגבלה עיקרית
PgBouncer הרבה connections קצרים, web apps לא תומך prepared statements ב-transaction mode
RDS Proxy Lambda + serverless architectures עלות נוספת, latency קל יותר
App-level pool מיעוט app instances קבועים K8s עם pods רבים = connections רבים
Neon Branch migration בטוח עם Claude Code MCP Neon-specific, לא universal

Claude + MCP: גישה ישירה ל-Database, עם אזהרה ברורה

ב-2025-2026, Claude יכול להתחבר ישירות ל-database שלכם דרך MCP servers (DBHub, pgEdge, Neon). Claude מקבל גישה לschema המלא, primary keys, foreign keys, indexes, column types, ויכול לכתוב SQL מדויק שמבוסס על המבנה האמיתי שלכם.

הכלל של הקהילה אחרי אירוע המחיקה של מרץ 2026: חבר Claude דרך read-only database user בלבד. אם Claude צריך לכתוב migrations, הוא יוציא SQL שאתם מריצים ידנית, לא שClaude מריץ ישירות. Neon מציע דרך בטוחה יותר: Claude יוצר branch, מריץ migration על ה-branch, ואתם מאשרים לפני ה-merge ל-production.

גיבוי שמתרחב ומתכווץ לפי גודל ה-database
קודם הוסף column nullable (expand), אחר כך backfill ישן, לבסוף הוסף NOT NULL (contract), שלושה שלבים, שני deploys נפרדים
חלוקת טבלה לחלקים לפי טווח תאריכים
כפילות הנתונים בין שני servers לזמינות גבוהה
בניית index מהירה יותר
CREATE INDEX רגיל נועל את הטבלה לכתיבה; CONCURRENTLY מאפשר writes ל-production להמשיך
נדרש ב-distributed databases בלבד
פיצ'ר של PostgreSQL Enterprise בלבד
להפסיק להשתמש ב-Claude Code לעבודת database
לא להשתמש ב-MCP לחיבור databases
לעולם לא לתת ל-Claude write access אוטומטי ל-production, read-only בלבד עם human confirmation
תמיד לשמור backup לפני שמריצים Claude

טעויות נפוצות ואיך להימנע מהן

סיכום: Claude כ-DBA, מה כן, מה לא

Claude הוא DBA partner מצוין, כשנותנים לו הקשר מלא. הוא מבין execution plans, יודע zero-downtime patterns, כותב backup runbooks, ומסביר את ה-"למה" כדי שהצוות ילמד. אבל שני דברים הוא לא יכול לעשות: לדעת כמה rows יש בטבלה שלכם, ולהחליט לבד מה בטוח ב-production שלכם.

הנוסחה: context מלא + read-only MCP + human confirmation לפני כל שינוי = Claude שהוא נכס, לא סיכון. לתיעוד נוסף: docs.anthropic.com.

רוצה ללמוד עם מעקב התקדמות, קוויזים ותעודה?

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