שחזור שרת Exchange
Post date: Apr 15, 2012 1:54:00 PM
אין ספק שביצוע גיבויים הינה משימה הכרחית הדורשת את תשומת ליבו
המלאה של אותו אדם שקיבל את האחריות על משימה זו.
למרות שכיום קיימים כלים מצוינים המספקים פתרונות ניהול ומעקב
אחר הגיבויים המתבצעים בשותף, אין לדעת האם הם אכן תקינים וניתנים לשחזור.
על מנת לוודא זאת, על האדם האחראי לכתוב אסטרטגיית שחזור מפורטת ולבצע
אותה בפועל אחת לכמה זמן, אחרת הוא מסתמך על הגורל שבדרך כלל לא נוהג
לפרגן במקרים אלו. במאמר זה נעבור על תהליכי השחזור השונים הניתנים לביצוע
בשרת האקסצ'נג' ופקודות הדרושות לביצוע התאוששות מאסון במקרי כשל שונים.
תהליך שחזור שרת האקסצ'נג' תלוי במספר פרמטרים:
1. בגרסת מערכת ההפעלה שעליה מותקן השרת.
2. בגרסת ובחבילת העדכונים המתוקנת על שרת האקסצ'נג'.
3. בתוכנה שבאמצעותה בוצע הגיבוי.
4. בסוג התוכן שברצוננו לבצע: תיבות ספציפיות, בסיס הנתונים כולו.
5. כמה זמן ברצוננו לחזור אחורה: רבע שעה, שעה, יום, שבוע וכד'…
Delete Retention Time – שחזור פריטים ספציפיים שנמחקו מתיבת המשתמש
במידה ואנו נדרשים לבצע שחזור של תיבת דואר שנמחקה מהשרת או
פריטים ספציפיים שנמחקו מתיבת המשתמש, ניתן להיעזר בפונקציית
ה delete retention time המובנת בשרת האקסצ'נג'.
באקסצ'נג' 2007-2010, ערך ברירת המחדל של ה DRT הינו 30 יום
לשחזור תיבות דואר ו 14 יום לשחזור פריטים ספציפיים.
ניתן לשנות זאת כמובן ממשק הניהול של שרת האקסצ'נג', אם נכנס
ל Exchange Management console> server Configuration>Mailbox, ונבצע
קליק ימיני, מאפיינים על ה Mailbox Database ונכנס לטאב ה Limits.
פונקציית ה DRT מאפשרת למשתמשים לשחזר פריטים שנמחקו מתיבת הדואר
(מכל הספריות) ללא תלות במנהל הרשת, המשתמש יכול לבצע את השחזור באופן עצמאי
מאאוטלוק 2010 ע"י כניסה לספרייה שממנה נמחק הפריט, סימון טאב
ה Folder ובחירה באופציית ה Delete Recover items. ובגרסאות ישנות יותר,
ניתן לבצע זאת מתפריט ה Recover deleted items>Tools.
שינוים בכלי הגיבוי המובנה של ווינדוס
עד לגרסת מערכת הפעלה Server 2003 ניתן היה לבצע גיבוי לשרת האקסצ'נג'
עם הכלי NTBackup המובנה במערכת. החל מגרסת Server 2008 ומעלה
שונה הכלי ל Windows Server Backup וכן גם מנגנון הגיבוי
מ Streaming ל- VSS המבוסס על ה Volume shadow copy.
על מנת שיהיה ניתן לבצע גיבוי של אפליקציה כגון אקסצ'נג', צריכה המערכת
לכלול הרחבה של VSS, אחרת תוכנת הגיבוי לא תכיר בה. החל מחבילת
העדכונים Exchange 2007 SP2, שחררה מיקרוסופט הרחבה VSS plug-in המוסיפה
תמיכה לגיבוי שרתי אקסצ'נג' המותקנים על Server 2008 ומעלה- פרטים נוספים.
כדי לוודא שמנגנון ה-VSS אכן מכיר באקסצ'נג', נפתח את
חלון Exchange Management Shell ונריץ את הפקודה הבאה:
VSSadmin list writers. נוודא שמוצגת השורה של ה- Microsoft Exchange Writer.
Windows Server backup
ה- WSB מאפשר שני סוגי שחזור: שחזור המידע ישירות לבסיס הנתונים
הקיים (דריסה) או שחזור לספרייה משנית.
שחזור הגיבוי תוך כדי דריסת בסיס בסיס הנתונים הקיים
נשתמש באופציה זו במקרים בהם בסיס הנתונים של האקסצ'נג' לא עולה
וברצוננו לשחזר אותו מגיבוי. פעולה זו פשוטה למדי:
- נפעיל את WSB, נקליק על כפתור ה Recovery,
- נבחר את התאריך שממנו ברצוננו לבצע את השחזור,
- בחלון ה Recovery Type נבחר באופציית ה Applications ונסמן
- את Exchange כסוג האפליקציה.
- בחלון ה Specify Recovery options ונסמן את אופציית
- ה Recover to original location.
- יש לשים לב!
- לפני שאנו מקליקים על כפתור ה recover ומתחילים את
- פעולת השחזור ישירות לבסיס הנתונים הקיים, נוודא שבסיס הנתונים
- מאפשר פעולת דריסה משחזור. ניתן לבצע זאת ע"י כניסה לממשק הניהול
- של האקסצ'נג', כניסה לחלון ה Server Configuration> Mailbox, קליק ימני,
- מאפיינים על בסיס הנתונים (Mailbox Database) וסימון אופציית ה Overwrite.
בונוס ווידאו –גיבוי באמצעות WSB
ווידאו- שחזור באמצעות WSB
בונוס ווידאו – גיבוי שרת אקסצ'נג' 2010 באמצעות DPM2010 -תוכנה צד שלישי.
שחזור בסיס הנתונים לספרייה משנית
נשתמש באופציה זו, במידה וברצוננו לשחזר את האקסצ'נג' מגיבוי
ולטעון את בסיס הנתונים המשוחזר (RSG או RDB) מבלי לדרוס או להזיק
לבסיס הנתונים הקיים. לאחר ביצוע פעולה זו, ניתן יהיה להחליף
את בסיס הנתונים המשוחזר עם הקיים או לשחזר מתוכו תיבות דואר ספציפיות.
שחזור מגיבוי ע"י Windows Server Backup
- נפעיל את Windows Server Backup
- נקליק על כפתור ה Recovery
- נבחר את התאריך שממנו ברצוננו לשחזר
- בחלון ה Recovery Type נבחר באופציית ה Applications ונסמן
- את Exchange כסוג האפליקציה לשחזור.
- בחלון ה Specify Recovery options, נבחר את הספרייה שלתוכה
- ברצוננו לשחזר את הנתונים.
- ונקליק על כפתור ה Recover.
שחזור Exchange 2010 באמצעות ה RDB
רצף הפעולות הנדרשות לאחר ביצוע השחזור:
1. בדיקת תקינות הלוגים ושיוכם לקובץ (edb) המשוחזר.
2. יצירת בסיס נתונים לשחזור (RDB) ושיוכו לבסיס הנתונים הקיים.
3. העלאת בסיס הנתונים (RDB).
להלן מדריך ווידאו המסביר את התהליך כולו
בונוס ווידאו – שחזור שרת אקסצ'נג' באמצעות DPM2010- תוכנה צד שלישי.
בדיקת הסטטוס של בסיס הנתונים
לאחר ביצוע השחזור לספריה משנית, נבצע בדיקה מול בסיס הנתונים
ונוודא שהוא מצוי במצב "סגירה תקינה" (Clean Shutdown). לשם כך,
נפתח חלון דוס, נכנס לספריה אליה שחזרנו את הנתונים ונריץ את
הפקודה eseutil /mh MailboxDB.edb.
במידה וה-State מצוי ב Clean Shutdown נוכל להמשיך למשימה הבאה
וליצור בסיס נתונים לשחזור (RDB). במידה וה-State מצוי ב Dirty shutdown,
נצטרך לבצע Replay ללוגים, כלומר לשייך מחדש את הלוגים לבסיס
הנתונים (Recovery Soft). לשם כך, נחזור לחלון דוס, ונריץ את
הפקודה eseutil/r E00 /I /d מול קובץ הלוג האחרון שנוצר.
לאחר מכן נריץ את הפקודה eseutil /mh MailboxDB.edb שוב.
בשלב זה ה-State אמור להיות במצב של Clean Shutdown ונוכל
להמשיך למשימה הבאה.
יצירת Recovery Database
יצירת RDB תאפשר לנו ליצור בסיס נתונים מקבצי הגיבוי ששחזרנו
ולהעלות אותו במקביל לבסיס הנתונים הקיים. לאחר מכן נוכל לבחור
תיבות דואר ספציפיות, ולשחזר אותן לבסיס הנתונים הפרודקשיין,
או לבצע החלפה של בסיס נתונים זה מול הקיים.
כדי ליצר RDB מקבצי הגיבוי, נכנס ל Exchange Management Shell,
ונריץ את הפקודה New-MailboxDatabase –Recovery עם כל הפרמטרים הרלוונטיים.
לאחר שיצרנו את ה RDB, נכנס לממשק הניהול של האקסצ'נג'
ונבצע Mount לאותו Recovery Database.
שחזור תיבות דואר ספציפיות מתוך ה RDB
כדי לקבל רשימה של תיבות הדואר שביכולתנו לשחזר,
נכנס ל Exchange Management Shell, ונריץ את
הפקודה Get-MailboxStatistics עם כל הפרמטרים הרלוונטיים.
כדי לשחזר תיבה מסוימת מה RDB לתוך בסיס הנתונים הקיים,
נשתמש בפקודה: Restore-Mailbox עם כל הפרמטרים הרלוונטיים.
שחזור Exchange 2003-2007 באמצעות ה RSG
רצף הפעולות הנדרשות לביצוע:
- לייצר RSG ולשייך אותו לבסיס הנתונים הקיים.
- לבצע שחזור של בסיסי הנתונים והלוגים לאותו RSG.
- מכיוון ש WSB לא מאפשרת שחזור ישיר ל RSG, יהיה עלינו
- לבצע שחזור לספרייה משנית ולאחר מכן להעתיק את קבצי השחזור
- לספריית ה RSG באופן עצמאי.
- לבצע Mount לבסיס הנתונים המשוחזר\RSG.4.
- לסמן את תיבות הדואר הרלוונטיות ולשחזר אותן לבסיס הנתונים הפרודקשיין.
- לחלופין, ניתן להחליף את בסיס הנתונים המשוחזר (RSG) עם הקיים.
להלן מדריך ווידאו המסביר את התהליך כולו
Recovery Storage Group או בקיצור RSG
פונקציית ה Recovery Storage Group מאפשרת לנו ליצור בסיס נתונים ריק
במקביל לבסיס הנתונים הקיים ולהשתמש בו לצורכי שחזור שונים.
פעולה זו מאפשרת שחזור גמיש ואפקטיבי של תיבות דואר ספציפיות
ותיקון של בסיס הנתונים הקיים. פונקציית ה RSG קיימת החל
מגרסת אקסצ'נג' 2003, אך שופרה משמעותית באקסצ'נג' 2007.
באקסצ'נג' 2010 הוסרה פונקציה זו והוחלפה ב recovery database או
בקיצור RDB. יש לציין כי לא ניתן להשתמש ב RSG כבסיס נתונים
לכל דבר, כגון: חיבור משתמשים (אאוטלוק) לקריאה ושליחת דואר,
אלא לצורך שחזור בלבד.
יצירת Recovery Storage Group
כדי לייצר RSG, נפעיל את ממשק הניהול של האקסצ'נג',
נכנס לטאב ה Toollbox ונקליק על אופציית ה Database recovery management.
בחלון הבא נקליק על אופציית ה Create a recovery storage group,
נבחר את ה SG שעליו ברצוננו לבסס את השחזור ונקליק Next.
ניתן לדעת על איזו Storage Group עלינו לבסס את השחזור באופן הבא:
אם ברצוננו לשחזר תיבת דואר של משתמש מסוים, נקליק על תיבת המשתמש,
נכנס למאפיינים של האובייקט ושם נוכל לראות איפה התיבה שלו ממוקמת.
בחלון ה Create a Recovery storage Group מוצגת אינפורמציה לגבי:
הספריות שבהן ממוקם בסיס הנתונים, הלוגים המשויכים לו וקובץ ה E00.chk הקיים.
מתחת לכל רשומה כזו מוצגת הספרייה שבה ישמרו קבצי ה RSG.
במידה ואין לנו מספיק מקום על המחיצה הרלוונטית, ניתן לשנות את הנתיבים
למחיצה אחרת. לבסוף, נקליק על כפתור ה Create.
שחזור מגיבוי ע"י Windows Server Backup
ראה מדריך+ווידאו בסעיף "שחזור מגיבוי ע"י Windows Server Backup".
העתקת קבצי השחזור ל RSG
לאחר שפעולת השחזור הסתיימה, נצטרך להעתיק את קבצי השחזור לספריית
ה RSG. ניכנס לספריית השחזור ונעתיק את הקבצים (לוגים ובסיס הנתונים)
לספריית ה RSG שייצרנו קודם לכן.
ביצוע Mount ל RSG
לאחר שהעתקנו את קבצי הלוגים (.log), בסיס הנתונים (.edb) וקובץ
ה E00.chk לספריות ה RSG הרלוונטיות, נוכל לנסות ולטעון את בסיס הנתונים
של ה RSG. כדי לבצע זאת נחזור לחלון ה Toolbox ונקליק על אופציית
ה Mount or dismount database in RSG.
בדיקות תקינות לבסיס הנתונים
במקרים רבים בהם פעולת השחזור בוצעה לספרייה משנית ולא ישירות
ל RSG, ביצוע ה- Mount ל RSG עשוי להיכשל ולא להעלות. כדי לאבחן
את התקלה, יהיה עלינו לבצע מספר פעולות מול בסיס הנתונים והלוגים המשויכים לו.
לפני שנתחיל את תהליך, רצוי שנכיר קצת את המתרחש מאחורי הקלעים.
קצת על איך Exchange עובד
שמירת הנתונים על שרת האקסצ'נג', מתבצעת בצורה הבאה:
כאשר מייל מגיע לשרת האקסצ'נג', ראשית הוא נכתב לזיכרון.
מהזיכרון הנתונים נכתבים לקבצי ה Transaction logs או לייתר דיוק
לקובץ ה- E00.log, אשר תמיד יהיה קובץ הלוג האחרון שנוצר (אליו נכתבים הנתונים).
קובץ ה E00tmp.log הינו קובץ לוג חדש שנוצר. כאשר קובץ הלוג E00.log מגיע
לנפח של 1MB, שם הקובץ משתנה ל E000000001.log (מספר רץ) וכן הלאה.
בסופו של דבר קבצי הלוג מועברים לבסיס הנתונים.
קובץ ה-E00.chk -אחראי לתיעוד ומעקב אחר קבצי הלוגים והקשר שלהם לבסיס הנתונים.
קבצי הלוג שכבר אין להם שימוש (שכבר נכתבו לבסיס הנתונים) נמחקים
אך ורק לאחר ביצוע גיבוי מלא. במידה ולא מתבצע גיבוי קבוע לשרת האקסצ'נג',
הלוגים יתרבו ויתרבו עד שלבסוף ייגמר המקום על הדיסק.
ביצוע Verify- בדיקת הסטטוס של בסיס הנתונים
ראשית נבצע בדיקה (Verify) מול בסיס הנתונים ונוודא שהוא מצוי במצב
"סגירה תקינה" (Clean Shutdown). לשם כך, נפתח חלון דוס,
נכנס לספריית ה RSG שבה מצוי קובץ ה edb (בסיס הנתונים)
ונריץ מולו את הפקודה eseutil /mh MailboxDB.edb.
לחלופין, ניתן לבצע פעולה זו באמצעות ממשק הניהול של האקסצ'נג'.
נחזור לחלון ה Toolbox ונקליק על אופציית ה Verify Database and logs.
נבחר את ה RSG, נסמן את ה Mailbox Database ונקליק על Analyze.
במידה ומתקבלת הודעת שגיאה שבסיס הנתונים מצוי
במצב של Dirty shutdown, נצטרך לבצע לקשר מחדש
בין הלוגים לבסיס הנתונים (Recovery Soft).
Dirty shutdown- הודעה זו מבשרת על אי תאימות
בין בסיס הנתונים ללוגים. במקרה הטוב, נסיר מהספרייה מספר
קבצי לוג המפריעים להעלאה תקינה של בסיס הנתונים.
במקרה הרע, בסיס הנתונים מצוי במצב לא קונסיסטנטי
או שחזרים לו קבצי לוג מסוימים שלא נמצאו בספריית הלוגים.
Clean Shutdown- כאשר בסיס הנתונים מצוי במצב זה,
ניתן לבצע Mount לבסיס הנתונים. במידה והפעולה נכשלת,
ניתן להסיר את כל קבצי הלוג מספריית הלוגים פרט לקובץ הלוג
האחרון שנוצר (E00.log), ולנסות להעלות אותו בשנית.
שיוך הלוגים לבסיס הנתונים
ישנן מספר פעולות שניתן לבצע על מנת לפתור את בעיית
ה"סגירה הלא תקינה" של בסיס הנתונים כגון: בדיקת תקינותם
של קבצי הלוג, הסרת קבצי הלוג המיותרים ושיוכם לבסיס הנתונים הרלוונטי.
1. בדיקת תקינותם של קבצי הלוג
נכנס לחלון דוס ונריץ את פקודת eseutill /ml e00 מול קובץ הלוג האחרון שנוצר.
התוצאה אמורה להיות "OK" לצד של כל קובץ לוג הקיים בספריה,
אחרת הלוגים לא תקינים.
בקובץ ה-E00.chk נרשם תיעוד של קבצי הלוגים שכבר נכתבו ואלו שטרם
נכתבו לבסיס הנתונים. אם נכנס לחלון דוס ונריץ את הפקודה: eseutil /mk מול קובץ
ה E00.chk, נוכל לזהות אלו קבצי לוג נכתבו לבסיס הנתונים ואלו מיותרים וניתנים למחיקה
ע"י בדיקת רשומת ה "Checkpoint". קבצי הלוג בעלי ערך מספרי הגבוהה מהערך הקיים,
הם לוגים דרושים, כלומר עדיין שוכנים בזיכרון ולא נכתבו לבסיס הנתונים.
לעומת זאת, ניתן להסיר את כל קבצי הלוג בעלי ערך מספרי ה"נמוך" מהערך הקיים.
לדוגמה: ניתן להסיר (ניצור ספרייה חדשה ונעתיק לתוכה את כל קבצי הלוג המיותרים,
לא למחוק!) את כל קבצי הלוג שנוצרו לפני 0xE4
3. ביצוע Replay ללוגים
לאחר שהסרנו את הלוגים המיותרים (או שמרנו אותם בספרייה נפרדת), נוכל
לבצע Soft Recovery ע"י הרצת פקודת ה- eseutil /r. פקודה זו אשר אמורה
לשייך את קבצי הלוגים הדרושים לבסיס הנתונים, כך שניתן יהיה להעלות אותו.
יש להריץ את הפקודה מול קובץ הלוג האחרון שנוצר, לדוגמה eseutil /r e00.
במידה ופעולת ה Recovery עוברת בהצלחה, ננסה שוב להעלות (Mount) את
בסיס הנתונים.
ESEUTIL /P- תיקון לבסיס הנתונים
יש לציין כי קיימים מספר רב של תרחישים ומקרי כשל שעשויים לגרום
ל-corruption בבסיס הנתונים, כאשר כל אחד מהם דורש פתרון והתייחסות ספציפית.
במידה והרצת הפקודה eseutil /r נכשלת, נוכל לנסות להריץ מספר
פקודות eseutil נוספות, אך יש לקחת בחשבון כי במידה וחסרים קבצי לוג מסוימים
ובסיס הנתונים מצוי במצב של חוסר קונסיסטנטיות, לפעמים האופציה היחידה
הנותרת היא לבצע Hard Recovery.
ה ESEUTIL /P הינה פקודה המאפשרת לבצע Hard Recovery על בסיס הנתונים.
לאחר הרצתה, מתבצעת סריקה לכל הטבלאות ובדיקה שהן מקושרות ומופנות
למיקום הנכון. במידה ולא, מתבצעת מחיקה ואיפוס לאינדקס.
מכיוון שאופי פעולה זו הינה אגרסיבית במיוחד, היא עשויה להסתיים באיבוד מידע,
לכן יש להריץ פקודה זו כאמצעי אחרון בלבד! יש לדאוג להעתיק את קבצי הלוג,
בסיס הנתונים וקובץ ה E00.chk לספריה משנית בטרם הרצתה.
החל מ Exchange 2007 מיקרוסופט הפסיקה לתמוך בכלי ExMerge.
על מנת לייצא תיבות דואר לקבצי PST ניתן להשתמש בפקודת ה Export-Mailbox.
מעבר לכך, לא ניתן להשתמש בפקודת ה Export-Mailbox על פלטפורמת 64 ביט, אלא על 32 ביט בלבד. כיוון שקרוב לוודאי ששרת ה Exchange מותקן על 64 ביט, נצטרך להריץ את הפקודה משרת או תחנת עבודה (המחוברים לדומיין) המותקנים על 32 ביט שעליהם מותקנים: Exchange 2007 Management tools ואאוטלוק 2003 או 2007.
לאחר שהתקנת את הרכיבים הנדרשים, פתח את ה Exchange Management Shell והרץ את הפקודה הרלוונטית.
אם ברצונך לייצא את כל תיבות הדואר מבסיס נתונים ספיציפי:
כדי להציג את שם בסיס הנתונים ושם השרת, הזן את הפקודה:
Get-MailboxDatabase
כדי לייצא את כל תיבות הדואר מבסיס נתונים הנבחר, הזן את הפקודה:
Get-Mailbox –Database | Export-Mailbox –PSTFolderPath c:\PSTs
או
Get-Mailbox –Database “MyExchServerName\First Storage Group\Mailbox Database” | Export-Mailbox –PSTFolderPath c:\PSTs
אם ברצונך לייצא את כל תיבות הדואר הממוקמים תחת OU ספיציפי:
Get-Mailbox -OrganizationalUnit | Export-Mailbox -PSTFolderPath c:\PSTs
אם ברצונך לייצא תיבת דואר ספיציפית:
כדי להציג את רשימת התיבות הקיימות, הזן את הפקודה:
Get-MailboxStatistics –Server "MyExchServerName"
כדי לייצא תיבה ספציפית, הזן את הפקודה:
Export-Mailbox –Identity “Moshe Harel” –PSTFolderPath c:\PSTs
*במידה ואין לך הרשאות לייצא את התיבות, הרץ את הפקודה הבאה
Add-mailboxpermission -identity "someuser" -accessrights fullaccess -user administrator
כש "someuser" זה המשתמש שאת התיבה שלו אתה מייצא,
ו "administrator" זה שם המשתמש שאיתו את מריץ את הפקודה.
בונוס: ראה איך לבצע זאת ב Exchange 2010.
How to Import PST Files into Mailboxes with Exchange 2010 SP1
How to Export Mailboxes with Exchange Server 2010 SP1
פרטים נוספים: Exporting Mailbox data to PST files.
ראה גם: How to Backup Exchange 2007 Mailboxes to PST Files
ראה ווידאו: http://www.msexchange.org/player.asp?AeCBRJKKHQ