גיבוי ושחזור אתר וורדפרס — איך בונים גיבוי שבאמת עובד
למה רוב הגיבויים נכשלים דווקא ברגע האמת, מהו כלל 3-2-1, ואיך לבדוק שהגיבוי שלכם שווה משהו לפני שתצטרכו אותו.
אביר
אחראי מידע ותוכן
תוכן עניינים14 פרקים
לכל בעל אתר יש גיבוי. למעט מאוד יש גיבוי שעובד.
ההבדל מתגלה תמיד באותו רגע: האתר נפל, מישהו לוחץ "שחזר", ומגלה שהגיבוי בן שלושה חודשים, או שהוא מכיל את הנוזקה, או שהוא נשמר על הדיסק שכרגע התקלקל.
המאמר הזה על ההבדל הזה.
מה בעצם צריך לגבות
אתר וורדפרס הוא שני דברים נפרדים, ורבים מגבים רק אחד.
מסד הנתונים
מכיל את כל התוכן: פוסטים, דפים, תגובות, משתמשים, הגדרות, מוצרים, הזמנות. בחנות WooCommerce הוא מכיל גם את ההיסטוריה הפיננסית.
זהו החלק שאי אפשר לשחזר משום מקום אחר. אתר בלי הקבצים ניתן לבנייה מחדש בעבודה. אתר בלי מסד הנתונים איבד את התוכן שלו לצמיתות.
הקבצים
wp-content/uploads— כל התמונות והמדיהwp-content/themes— התבנית, כולל התאמותwp-content/plugins— התוספיםwp-config.php— הגדרות החיבור והמפתחות
מה לא חובה לגבות: קבצי הליבה (wp-admin, wp-includes). הם זהים בכל אתר וניתנים להורדה. גיבוי שמדלג עליהם קטן בהרבה ומהיר יותר.
כלל 3-2-1
הסטנדרט בתעשייה, ועדיין הכי טוב:
- 3 עותקים של המידע
- 2 מדיות שונות — למשל שרת ואחסון ענן
- 1 עותק מחוץ לאתר — פיזית במקום אחר
למה זה חשוב
גיבוי על אותו שרת אינו גיבוי. אם הדיסק מתקלקל — שניהם נעלמו. אם השרת נפרץ — התוקף מוחק את שניהם. אם החשבון מושהה — אין לכם גישה לאף אחד מהם.
זו הטעות הנפוצה ביותר, והיא נראית כמו גיבוי בכל בדיקה — עד לרגע שהיא נבדקת באמת.
תדירות — לפי מה שאתם מוכנים לאבד
השאלה אינה "כל כמה זמן לגבות" אלא "כמה עבודה אני מוכן לאבד". המונח המקצועי הוא RPO — Recovery Point Objective.
| סוג אתר | תדירות מומלצת | מה מאבדים במקרה הרע |
|---|---|---|
| אתר תדמית סטטי | שבועי | שבוע של שינויים (בדרך כלל אפס) |
| בלוג פעיל | יומי | פוסט או שניים |
| אתר עסקי עם טפסים | יומי | יום של פניות |
| חנות WooCommerce | כל 4–6 שעות | חצי יום של הזמנות |
| חנות בעונת שיא | כל שעה | שעה של הזמנות |
לחנות זה קריטי במיוחד. הזמנה שאבדה היא לא רק שורה במסד נתונים — היא לקוח שחויב ולא קיבל מוצר.
כמה עותקים לשמור
גיבוי אחד אינו מספיק, ולא בגלל כשלים טכניים.
פריצות מתגלות באיחור. הזמן הממוצע לגילוי חדירה נמדד בשבועות. אם אתם שומרים רק את הגיבוי של אתמול, והחדירה קרתה לפני שלושה שבועות — כל הגיבויים שלכם כבר נגועים.
שרשרת סבירה:
- 7 גיבויים יומיים
- 4 גיבויים שבועיים
- 3 גיבויים חודשיים
זה נותן כיסוי של כשלושה חודשים אחורה, בנפח סביר.
הבדיקה שאף אחד לא עושה
גיבוי שלא שוחזר מעולם אינו גיבוי. הוא הנחה.
הכשלים שמתגלים רק בשחזור:
- קובץ ה-SQL נחתך באמצע כי הסקריפט חרג ממגבלת זמן
- הגיבוי מכיל קבצים אבל לא את מסד הנתונים
- הארכיון פגום ולא נפתח
- הגיבוי רץ אבל נכשל בשקט כבר חודשיים
בדקו אחת לרבעון: שחזרו לסביבת Staging, פתחו את האתר, התחברו, בדקו שהתוכן שם. הבדיקה לוקחת עשרים דקות.
שיטות גיבוי
תוספי גיבוי
UpdraftPlus, BackWPup ודומיהם. נוחים, עובדים בכל סביבה, מתחברים לאחסון ענן.
מגבלה: הם רצים בתוך PHP. באתר גדול הגיבוי עלול לחרוג ממגבלת הזמן ולהיקטע — לעיתים בשקט. בנוסף, הם נשענים על WP-Cron, שרץ רק כשמישהו מבקר באתר.
גיבוי ברמת השרת
הספק מגבה את החשבון כולו מחוץ ל-PHP. מהיר יותר, אמין יותר, ולא מושפע ממגבלות זמן.
מגבלה: לרוב פחות גרנולרי — קשה יותר לשחזר קובץ בודד או טבלה אחת.
שילוב
הטוב ביותר: גיבוי ברמת השרת כבסיס, ותוסף לגיבויים ידניים לפני שינויים גדולים.
כלל ברזל: לפני כל עדכון גדול — ליבה, תוסף מרכזי, תבנית — גיבוי ידני. השחזור אחרי עדכון שנשבר לוקח דקות במקום שעות.
שחזור — מה לעשות ברגע האמת
1. אל תמהרו לשחזר
זה נשמע לא אינטואיטיבי, אבל שחזור מיידי יכול להחמיר. אם האתר נפרץ ולא ידוע מתי — שחזור עיוור מחזיר את הפרצה.
2. אבחנו קודם
- מתי הבעיה התחילה?
- מה השתנה לפני כן — עדכון, תוסף חדש, שינוי בשרת?
- האם זו תקלה טכנית או פריצה?
3. שחזרו לסביבת Staging
אם אפשר. אימות שהגיבוי תקין לפני שהוא דורס את האתר החי.
4. שמרו את המצב הנוכחי
לפני השחזור — גיבוי של האתר השבור. אם השחזור לא פותר, תרצו לחזור ולחקור.
5. אחרי השחזור
- שנו את כל הסיסמאות
- החליפו את מפתחות האבטחה ב-
wp-config.php - עדכנו הכול
- בדקו שהפרצה נסגרה
בפריצה, המאמר אבטחת אתרי WordPress מפרט את הצעדים במלואם.
מה שגיבוי לא מכסה
רשומות DNS. אם הדומיין מנוהל במקום אחר — תעדו את הרשומות בנפרד.
תיבות דואר. לא תמיד כלולות בגיבוי האתר. בדקו.
תעודות SSL. בדרך כלל מונפקות מחדש אוטומטית, אבל שווה לוודא.
הגדרות צד שלישי. מפתחות API, הגדרות סליקה, אינטגרציות — תעדו במקום נפרד.
כמה זמן שחזור באמת לוקח
זהו ה-RTO — Recovery Time Objective — וכדאי לדעת אותו לפני שצריך אותו.
| שיטה | זמן טיפוסי | מי מבצע |
|---|---|---|
| שחזור מפאנל, אתר קטן | 5–15 דקות | אתם |
| שחזור מתוסף, אתר בינוני | 20–60 דקות | אתם |
| שחזור מגיבוי חיצוני ידני | 1–3 שעות | אתם או מפתח |
| פנייה לתמיכה של הספק | 2 שעות עד 2 ימים | הספק |
השורה האחרונה היא הסיבה ששחזור עצמאי חשוב יותר משנדמה. ספק שמבצע שחזורים רק דרך פנייה הופך תקלה של רבע שעה לתקלה של יום עבודה — לא בגלל שהוא איטי, אלא בגלל שאתם בתור.
גיבוי לפני עדכון — הרגל שחוסך ימים
רוב מקרי השחזור אינם פריצות או כשלי חומרה. הם עדכון שנשבר.
תוסף שהתעדכן והתנגש עם התבנית; עדכון ליבה שחשף קוד לא תואם; שינוי בגרסת PHP שהפיל תוסף ישן. בכל המקרים האלה הגיבוי שאתם צריכים הוא זה שנעשה חמש דקות לפני, לא זה שנעשה בלילה.
ההרגל: לפני עדכון גדול, גיבוי ידני עם שם ברור — למשל "לפני עדכון WooCommerce 9.4". לוקח דקה, וחוסך את החיפוש אחר מתי בדיוק זה נשבר.
עוד יותר טוב: לבדוק בסביבת Staging קודם. אבל גם עם Staging, הגיבוי לפני העדכון בייצור נשאר.
רשימת בדיקה
- [ ] גיבוי אוטומטי בתדירות שמתאימה לקצב השינויים
- [ ] עותק מחוץ לשרת
- [ ] לפחות 7 נקודות שחזור אחורה
- [ ] הגיבוי כולל מסד נתונים וגם קבצים
- [ ] נבדק בשחזור אמיתי ברבעון האחרון
- [ ] שחזור אפשרי עצמאית, בלי לחכות לתמיכה
- [ ] יש התראה כשגיבוי נכשל
הסעיף האחרון חשוב במיוחד: גיבוי שנכשל בשקט גרוע מאין גיבוי, כי הוא מייצר ביטחון שאין לו כיסוי.
שאלות נפוצות
האם גיבוי של הספק מספיק? כנקודת מוצא, כן. אבל ודאו שלושה דברים: שהוא נשמר מחוץ למכונה, שיש יותר מנקודת שחזור אחת, ושאתם יכולים לשחזר לבד. אם אחד מהם חסר — הוסיפו שכבה משלכם.
כמה מקום גיבוי צריך? בערך פי 3–4 מגודל האתר, לשרשרת סבירה של נקודות שחזור. גיבויים מצטברים חוסכים משמעותית לעומת גיבוי מלא בכל פעם.
האם אפשר לגבות אתר חי בלי להשבית אותו? כן. mysqldump --single-transaction מייצא תמונת מצב עקבית בלי לנעול טבלאות, והקבצים נקראים תוך כדי עבודה. בחנות מאוד עמוסה שווה לתזמן לשעה שקטה.
מה עושים אם הגיבוי היחיד נגוע? עוברים אחורה לנקודה מוקדמת יותר, גם במחיר איבוד תוכן. אתר ישן ונקי עדיף על אתר עדכני שנפרץ שוב תוך שבוע. אם אין נקודה נקייה — ניקוי ידני, ואז החלפת כל הסיסמאות והמפתחות.
שלוש נקודות לזכור
גיבוי על אותו שרת אינו גיבוי. הוא עותק. כשל חומרה, פריצה או השהיית חשבון מוחקים את שניהם באותה שנייה.
נקודה אחת אינה מספיקה. פריצות מתגלות בממוצע אחרי שבועות. שרשרת של שבעה ימים, ארבעה שבועות ושלושה חודשים היא המינימום שנותן לכם לאן לחזור.
גיבוי שלא שוחזר הוא הנחה. עשרים דקות ברבעון — שחזור לסביבת Staging, פתיחת האתר, בדיקה שהתוכן שם. זו הבדיקה היחידה שמבדילה בין גיבוי לתחושת ביטחון.
תוכנית התאוששות בשורה אחת
ארגונים גדולים כותבים מסמכי DRP של עשרות עמודים. לעסק קטן זה מיותר — אבל שלוש השורות האלה כן צריכות להיות כתובות איפשהו, ולא בראש של אדם אחד:
מי מטפל. שם וטלפון. אם רק אדם אחד יודע לשחזר והוא בחופשה, אין לכם תוכנית.
איפה הגיבויים ואיך ניגשים אליהם. כולל פרטי הגישה לאחסון החיצוני. גיבוי שאיש לא יודע איפה הוא שווה כמו גיבוי שאינו קיים.
מה הסדר. אבחון, שחזור ל-Staging, אימות, החלפה. ארבעה צעדים, כתובים מראש — כי ברגע אמת אף אחד לא חושב בבהירות.
הוסיפו גם את פרטי הקשר של הספק ואת מספר החשבון. חיפוש אחריהם בזמן שהאתר למטה הוא בזבוז של דקות יקרות.
נכתב על ידי אביר, אחראי מידע ותוכן ב-CloudX. בחבילות אחסון הוורדפרס שלנו הגיבוי היומי נשמר מחוץ למכונה, והשחזור מתבצע מהאזור האישי בלי לפתוח פנייה.