שחזור שרת Exchange

Exchange Disaster Recovery
אין ספק שביצוע גיבויים הינה משימה הכרחית הדורשת את תשומת ליבו
המלאה של אותו אדם שקיבל את האחריות על משימה זו.
למרות שכיום קיימים כלים מצוינים המספקים פתרונות ניהול ומעקב
אחר הגיבויים המתבצעים בשותף, אין לדעת האם הם אכן תקינים וניתנים לשחזור.
על מנת לוודא זאת, על האדם האחראי לכתוב אסטרטגיית שחזור מפורטת ולבצע
אותה בפועל אחת לכמה זמן, אחרת הוא מסתמך על הגורל שבדרך כלל לא נוהג
לפרגן במקרים אלו. במאמר זה נעבור על תהליכי השחזור השונים הניתנים לביצוע
בשרת האקסצ'נג' ופקודות הדרושות לביצוע התאוששות מאסון במקרי כשל שונים.

תהליך שחזור שרת האקסצ'נג' תלוי במספר פרמטרים:
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.
Delete Retention Time

שינוים בכלי הגיבוי המובנה של ווינדוס
עד לגרסת מערכת הפעלה 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.
vssadmin list writers

Windows Server backup
ה- WSB מאפשר שני סוגי שחזור: שחזור המידע ישירות לבסיס הנתונים
הקיים (דריסה) או שחזור לספרייה משנית.

שחזור הגיבוי תוך כדי דריסת בסיס בסיס הנתונים הקיים
נשתמש באופציה זו במקרים בהם בסיס הנתונים של האקסצ'נג' לא עולה
וברצוננו לשחזר אותו מגיבוי. פעולה זו פשוטה למדי:

  1. נפעיל את WSB, נקליק על כפתור ה Recovery,
  2. נבחר את התאריך שממנו ברצוננו לבצע את השחזור,
  3. בחלון ה Recovery Type נבחר באופציית ה Applications ונסמן
    את Exchange כסוג האפליקציה.
  4. בחלון ה Specify Recovery options ונסמן את אופציית
    ה Recover to original location.

    יש לשים לב!
    לפני שאנו מקליקים על כפתור ה recover ומתחילים את
    פעולת השחזור ישירות לבסיס הנתונים הקיים, נוודא שבסיס הנתונים
    מאפשר פעולת דריסה משחזור. ניתן לבצע זאת ע"י כניסה לממשק הניהול
    של האקסצ'נג', כניסה לחלון ה Server Configuration> Mailbox, קליק ימני,
    מאפיינים על בסיס הנתונים (Mailbox Database) וסימון אופציית ה Overwrite.

בונוס ווידאו –גיבוי באמצעות WSB
YouTube Preview Image

ווידאו- שחזור באמצעות WSB
YouTube Preview Image

בונוס ווידאו – גיבוי שרת אקסצ'נג' 2010 באמצעות DPM2010 -תוכנה צד שלישי.
YouTube Preview Image

שחזור בסיס הנתונים לספרייה משנית
נשתמש באופציה זו, במידה וברצוננו לשחזר את האקסצ'נג' מגיבוי
ולטעון את בסיס הנתונים המשוחזר (RSG או RDB) מבלי לדרוס או להזיק
לבסיס הנתונים הקיים. לאחר ביצוע פעולה זו, ניתן יהיה להחליף
את בסיס הנתונים המשוחזר עם הקיים או לשחזר מתוכו תיבות דואר ספציפיות.

שחזור מגיבוי ע"י Windows Server Backup

  1. נפעיל את Windows Server Backup
  2. נקליק על כפתור ה Recovery
  3. נבחר את התאריך שממנו ברצוננו לשחזר
  4. בחלון ה Recovery Type נבחר באופציית ה Applications ונסמן
    את Exchange כסוג האפליקציה לשחזור.
  5. בחלון ה Specify Recovery options, נבחר את הספרייה שלתוכה
    ברצוננו לשחזר את הנתונים.
  6. ונקליק על כפתור ה Recover.

שחזור Exchange 2010 באמצעות ה RDB
רצף הפעולות הנדרשות לאחר ביצוע השחזור:

1. בדיקת תקינות הלוגים ושיוכם לקובץ (edb) המשוחזר.
2. יצירת בסיס נתונים לשחזור (RDB) ושיוכו לבסיס הנתונים הקיים.
3. העלאת בסיס הנתונים (RDB).

להלן מדריך ווידאו המסביר את התהליך כולו
YouTube Preview Image

בונוס ווידאו – שחזור שרת אקסצ'נג' באמצעות DPM2010- תוכנה צד שלישי.
YouTube Preview Image

בדיקת הסטטוס של בסיס הנתונים
לאחר ביצוע השחזור לספריה משנית, נבצע בדיקה מול בסיס הנתונים
ונוודא שהוא מצוי במצב "סגירה תקינה" (Clean Shutdown). לשם כך,
נפתח חלון דוס, נכנס לספריה אליה שחזרנו את הנתונים ונריץ את
הפקודה eseutil /mh MailboxDB.edb.
eseutil MH

במידה וה-State מצוי ב Clean Shutdown נוכל להמשיך למשימה הבאה
וליצור בסיס נתונים לשחזור (RDB). במידה וה-State מצוי ב Dirty shutdown,
נצטרך לבצע Replay ללוגים, כלומר לשייך מחדש את הלוגים לבסיס
הנתונים (Recovery Soft).  לשם כך, נחזור לחלון דוס, ונריץ את
הפקודה eseutil/r E00 /I /d מול קובץ הלוג האחרון שנוצר.
eseutil R

לאחר מכן נריץ את הפקודה eseutil /mh MailboxDB.edb שוב.
בשלב זה ה-State אמור להיות במצב של Clean Shutdown ונוכל
להמשיך למשימה הבאה
.
Clean Shutdown

יצירת Recovery Database
יצירת RDB תאפשר לנו ליצור בסיס נתונים מקבצי הגיבוי ששחזרנו
ולהעלות אותו במקביל לבסיס הנתונים הקיים. לאחר מכן נוכל לבחור
תיבות דואר ספציפיות, ולשחזר אותן לבסיס הנתונים הפרודקשיין,
או לבצע החלפה של בסיס נתונים זה מול הקיים.
כדי ליצר RDB מקבצי הגיבוי, נכנס ל Exchange Management Shell,
ונריץ את הפקודה New-MailboxDatabase –Recovery עם כל הפרמטרים הרלוונטיים.
לאחר שיצרנו את ה RDB, נכנס לממשק הניהול של האקסצ'נג'
ונבצע Mount לאותו Recovery Database.

שחזור תיבות דואר ספציפיות מתוך ה RDB
כדי לקבל רשימה של תיבות הדואר שביכולתנו לשחזר,
נכנס ל Exchange Management Shell, ונריץ את
הפקודה Get-MailboxStatistics עם כל הפרמטרים הרלוונטיים
.
Get-MailboxStatistics

כדי לשחזר תיבה מסוימת מה RDB לתוך בסיס הנתונים הקיים,
נשתמש בפקודה: Restore-Mailbox עם כל הפרמטרים הרלוונטיים
.
Restore-Mailbox

שחזור Exchange 2003-2007 באמצעות ה RSG
רצף הפעולות הנדרשות לביצוע:

  1. לייצר RSG ולשייך אותו לבסיס הנתונים הקיים.
  2. לבצע שחזור של בסיסי הנתונים והלוגים לאותו RSG.
    מכיוון ש WSB לא מאפשרת שחזור ישיר ל RSG, יהיה עלינו
    לבצע שחזור לספרייה משנית ולאחר מכן להעתיק את קבצי השחזור
    לספריית ה RSG באופן עצמאי.
  3. לבצע Mount לבסיס הנתונים המשוחזר\RSG.4.
  4. לסמן את תיבות הדואר הרלוונטיות ולשחזר אותן לבסיס הנתונים הפרודקשיין.
    לחלופין, ניתן להחליף את בסיס הנתונים המשוחזר (RSG) עם הקיים
    .

להלן מדריך ווידאו המסביר את התהליך כולו
YouTube Preview Image

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.

Creating a Recovery Storage Group

שחזור מגיבוי ע"י Windows Server Backup
ראה מדריך+ווידאו בסעיף "שחזור מגיבוי ע"י Windows Server Backup".

העתקת קבצי השחזור ל RSG
לאחר שפעולת השחזור הסתיימה, נצטרך להעתיק את קבצי השחזור לספריית
ה RSG. ניכנס לספריית השחזור ונעתיק את הקבצים (לוגים ובסיס הנתונים)
לספריית ה RSG שייצרנו קודם לכן.

Copy restored files to RSG Dir

ביצוע 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 -אחראי לתיעוד ומעקב אחר קבצי הלוגים והקשר שלהם לבסיס הנתונים.
קבצי הלוג שכבר אין להם שימוש (שכבר נכתבו לבסיס הנתונים) נמחקים
אך ורק לאחר ביצוע גיבוי מלא. במידה ולא מתבצע גיבוי קבוע לשרת האקסצ'נג',
הלוגים יתרבו ויתרבו עד שלבסוף ייגמר המקום על הדיסק.

How Exchange works

ביצוע Verify- בדיקת הסטטוס של בסיס הנתונים

ראשית נבצע בדיקה (Verify) מול בסיס הנתונים ונוודא שהוא מצוי במצב
"סגירה תקינה" (Clean Shutdown). לשם כך, נפתח חלון דוס,
נכנס לספריית ה RSG  שבה מצוי קובץ ה edb (בסיס הנתונים)
ונריץ מולו את הפקודה eseutil /mh MailboxDB.edb.

לחלופין, ניתן לבצע פעולה זו באמצעות ממשק הניהול של האקסצ'נג'.
נחזור לחלון ה Toolbox ונקליק על אופציית ה Verify Database and logs.
נבחר את ה RSG, נסמן את ה Mailbox Database ונקליק על Analyze.

Exchange Analyze

במידה ומתקבלת הודעת שגיאה שבסיס הנתונים מצוי
במצב של Dirty shutdown, נצטרך לבצע לקשר מחדש
בין הלוגים לבסיס הנתונים (Recovery Soft).
Dirty shutdown

Dirty shutdown- הודעה זו מבשרת על אי תאימות
בין בסיס הנתונים ללוגים. במקרה הטוב, נסיר מהספרייה מספר
קבצי לוג המפריעים להעלאה תקינה של בסיס הנתונים.
במקרה הרע, בסיס הנתונים מצוי במצב לא קונסיסטנטי
או שחזרים לו קבצי לוג מסוימים שלא נמצאו בספריית הלוגים
.

Clean Shutdown- כאשר בסיס הנתונים מצוי במצב זה,
ניתן לבצע Mount לבסיס הנתונים. במידה והפעולה נכשלת,
ניתן להסיר את כל קבצי הלוג מספריית הלוגים פרט לקובץ הלוג
האחרון שנוצר (E00.log), ולנסות להעלות אותו בשנית.
Shutdown State

שיוך הלוגים לבסיס הנתונים
ישנן מספר פעולות שניתן לבצע על מנת לפתור את בעיית
ה"סגירה הלא תקינה" של בסיס הנתונים כגון: בדיקת תקינותם
של קבצי הלוג, הסרת קבצי הלוג המיותרים ושיוכם לבסיס הנתונים הרלוונטי.


1. בדיקת תקינותם של קבצי הלוג
נכנס לחלון דוס ונריץ את פקודת eseutill /ml e00  מול קובץ הלוג האחרון שנוצר.
התוצאה אמורה להיות "OK" לצד של כל קובץ לוג הקיים בספריה,
אחרת הלוגים לא תקינים.

eseutil ML

בקובץ ה-E00.chk נרשם תיעוד של קבצי הלוגים שכבר נכתבו ואלו שטרם
נכתבו לבסיס הנתונים. אם נכנס לחלון דוס ונריץ את הפקודה: eseutil /mk מול קובץ
ה E00.chk, נוכל לזהות אלו קבצי לוג נכתבו לבסיס הנתונים ואלו מיותרים וניתנים למחיקה
ע"י בדיקת רשומת ה "Checkpoint". קבצי הלוג בעלי ערך מספרי הגבוהה מהערך הקיים,
הם לוגים דרושים, כלומר עדיין שוכנים בזיכרון ולא נכתבו לבסיס הנתונים.
לעומת זאת, ניתן להסיר את כל קבצי הלוג בעלי ערך מספרי ה"נמוך" מהערך הקיים.
לדוגמה: ניתן להסיר (ניצור ספרייה חדשה ונעתיק לתוכה את כל קבצי הלוג המיותרים,
לא למחוק!) את כל קבצי הלוג שנוצרו לפני 0xE4
eseutil MK

3. ביצוע Replay ללוגים
לאחר שהסרנו את הלוגים המיותרים (או שמרנו אותם בספרייה נפרדת), נוכל
לבצע Soft Recovery ע"י הרצת פקודת ה- eseutil /r. פקודה זו אשר אמורה
לשייך את קבצי הלוגים הדרושים לבסיס הנתונים, כך שניתן יהיה להעלות אותו.
יש להריץ את הפקודה מול קובץ הלוג האחרון שנוצר, לדוגמה eseutil /r e00.
במידה ופעולת ה Recovery עוברת בהצלחה, ננסה שוב להעלות (Mount) את
בסיס הנתונים.

eseutil R E00

ESEUTIL /P-
תיקון לבסיס הנתונים
יש לציין כי קיימים מספר רב של תרחישים ומקרי כשל שעשויים לגרום
ל-corruption בבסיס הנתונים, כאשר כל אחד מהם דורש פתרון והתייחסות ספציפית.
במידה והרצת הפקודה eseutil /r נכשלת, נוכל לנסות להריץ מספר
פקודות eseutil נוספות, אך יש לקחת בחשבון כי במידה וחסרים קבצי לוג מסוימים
ובסיס הנתונים מצוי במצב של חוסר קונסיסטנטיות, לפעמים האופציה היחידה
הנותרת היא לבצע Hard Recovery.

ה ESEUTIL /P הינה פקודה המאפשרת לבצע Hard Recovery על בסיס הנתונים.
לאחר הרצתה, מתבצעת סריקה לכל הטבלאות ובדיקה שהן מקושרות ומופנות
למיקום הנכון. במידה ולא, מתבצעת מחיקה ואיפוס לאינדקס.
מכיוון שאופי פעולה זו הינה אגרסיבית במיוחד, היא עשויה להסתיים באיבוד מידע,
לכן יש להריץ פקודה זו כאמצעי אחרון בלבד! יש לדאוג להעתיק את קבצי הלוג,
בסיס הנתונים וקובץ ה E00.chk לספריה משנית בטרם הרצתה.
Repair DB

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Related posts


נהנית מהפוסט? ניתן להביע זאת בעזרת השארת תגובה ויצירת המשך דיון, או הרשמה לפיד ה-RSS וקבלת כל הפוסטים ישידות לקורא ה-RSS שלך.

טרקבקים & פינגים

[...] משה פרסם השבוע מדריך מקיף המסביר על האפשרויות השונות לשחזור פריטי דוא… ותהליכי גיבוי ושחזור של השרת [...]


תגובות

ראשית ברצוני לציין שהכתבות שלך "מצילות חיים".
תודה רבה על המאמר הזה, אני בהחלט יעבור עליו וילמד ממנו הרבה.

שאלה: יש לנו בחברה שרת Exchange 2007 המותקן על כונן C
זה כבר כמה פעמים שהשרת נופל כיוון שנגמר לו המקום הפנוי על מחיצת C.
העברתי את הזיכרון הוירטואלי לכונן D והסרתי קבצים ותוכנות שלא בשימוש.
האם יש משהו נוסף שאני יכול לעשות, אולי להעביר את ה Exchange למחיצה אחרת?
אגב, אנו לא מבצעים גיבויים על השרת.

תודה מראש,
אריאל

אריאל,
תודה כיף לשמוע.

שרת Exchange ללא גיבוי
אבוי לארגון שלא מבצע גיבויים סדירים לשרת ה Exchange. יבוא יום והשרת יקרוס או שבסיס הנתונים ייפגם ואז מה?
מעבר לכך ובהקשר לבעיית המקום, כאשר אנו לא מבצעים גיבוי לשרת ה Exchange, כמות הלוגים גודלת וגודלת
עד למצב שבו נגמר המקום הפנוי על הדיסק (אלא אם כן אנו משתמשים באופציית ה circular logging) וכל זאת למה?

ובכן, שמירת הנתונים בשרת ה Exchange מתבצעת בצורה הבאה:
ראשית הנתונים נשמרים בזיכרון, מהזיכרון הנתונים נכתבים לקבצי ה Transaction logs, ובסופו של דבר קבצי הלוג
מועברים לבסיס הנתונים. קבצי הלוג שכבר אין להם שימוש (שכבר נכתבו לבסיס הנתונים) נמחקים אך ורק לאחר ביצוע גיבוי מלא.

לאקסצ'נג' קיים מנגנון הגנה מובנה הקרוי Back pressure, אשר מופעל לפני שנגמר המקום על הדיסק.
ה Back pressure יבצע כיבוי ל Transport Service באופן אוטומטי כדי למנוע אפשרות כתיבה (קבלה\שליחה של מיילים)
של נתונים לדיסק. ללא מנגנון זה, עשוי להיגרם נזק לבסיס הנתונים הקיים!

אז מה עושים במידה והגענו למצב שבו אזל המקום הפנוי על הדיסק של השרת?
1. נבצע גיבוי מלא- פעולה זו תמחק את הלוגים ותפנה מקום רב על הדיסק.
(גם אם אתה לא מבצע גיבוי לשרת, כדאי שתבצע זאת לפחות פעם בכמה זמן כדי להסיר את הלוגים המיותרים).

2. העברת בסיס הנתונים והלוגים לכונן אחר
EMC-Organization Configuration- Mailbox-
Right click on the Mailbox Database- Move DB path

3. ניתן להעביר גם את ה- queue לכונן אחר.
-איך לבצע זאת ב Exchange 2007-קישור 1,2,3
- איך לבצע זאת ב Exchange 2010- קישור.

4. circular logging
הפעלת ה CL תבצע מחיקה אוטומטית של הלוגים לאחר כתיבתם לבסיס הנתונים וכך תחסוך מקום רב על הדיסק.
נשתמש ב CL אך ורק במקרים חריגים!
במידה ופינוי הנפח על הדיסק חשוב יותר מכל!
יש לקחת בחשבון כי פעולה זו תוריד בביצועי השרת, הגיבויים עשויים להיכשל ועוד…

בהצלחה,
הראל

שלום,
אני המום מאיכותה של הכתבה, אין דברים כאלה. אלפי תודות!
שאלה, אני מגבה את ה Exchange עם NTBackup, וכמו שציינת במאמר
לא ניסיתי לבצע שחזור אף פעם. האם תוכל בבקשה להסביר איך ניתן לשחזר את ה Exchange עם NTBackup?

תודה
אור

אור,
כיוון שאתה מדבר על NTbackup לגיבוי השרת, אני מניח שהאקסצ'נג' מותקן על מערכת הפעלה Windows 2003 ומטה.

השחזור ע"י NTBackup כמעט זהה לשחזור ע"י Windows Server Backup
פרט לכך שניתן לבצע שחזור ישירות ל Storage Group.

שחזור ע"י NTBackup
1. פתח את תוכנת ה-NTBackup

2. עבור לטאב ה Restore and Manage Media, ובחר את הגיבוי מהתאריך הרצוי.

3. סמן את ה Storage Group שברצונך לשחזר.
אופציות לשחזור: במידה וברצונך לבצע שחזור ישירות לבסיס הנתונים הפרודקשיין בחר באופציית ה- Restore file to Original location והקלק על כפתור ה Start Restore.
לחלופין, במידה והמטרה היא לשחזר תיבות דואר ספציפיות, ראשית יהיה עליך להגדיר RSG (ראה סעיף "יצירת Recovery Storage Group" בכתבה זו) ורק לאחר מכן
תוכל לשחזר את הנתונים לאותו RSG. כלומר, לאחר שיצרת RSG מתוך ממשק הניהול של האקסצ'נג' וקישרת אותו לאותו SG (הפרודקשיין) שאליו ברצונך לבצע את השחזור,
כאשר תפתח את תוכנת NTBackup ותסמן את בסיס הנתונים הרלוונטי לשחזור,
אופציית ה Restore file to Original location לא תיהיה זמינה.
זאת מכיוון שהמערכת תזהה שאתה משחזר בסיס נתונים המקושר ל RSG
ולכן השחזור יתבצע ישירות אליו.

4. לאחר מכן, הקלק על כפתור ה Start Restore, בחר את המיקום\הספרייה שאליה ברצוננו לשחזר את הלוגים והקלק OK.

5. כאשר פעולת השחזור תסתיים, חזור לטאב ה Task Center
תחת ה Toollbox> Database recovery management שבממשק הניהול
של ה Exchange ובצע Verify לקבצי הלוג המצויים ב RSG (פרטים נוספים במאמר)
במידה ומתקבלת הודעת שגיאה, עקוב אחר ההוראות המתקבלות
ב- Exchange Troubleshooting Assistant לפתרון הבעיה עד שביצוע ה Verify יעבור בהצלחה.

6. בסופו של דבר בצע Mount ל RSG.

7. שחזור תיבות דואר ספציפיות: חזור לטאב ה Task Center, בחר באופציית
ה- Merge or copy mailbox content, והקלק על Gather merge information כדי לשאוב את האינפורמציה של תיבות הדואר המצויות ב Mailbox Database,
סמן את תיבות הדואר שברצונך לשחזר ובצע את השחזור.
במידה והשחזור בוצע בהצלחה, תוכל להסיר (Dismount) את ה RSG מה Exchange.

הראל

מאמר מעולה ואיכותי תודה.

מה בנוגע ל Brick Level?
האם לא יותר קל לשחזר תיבות דואר עם תוכנת גיבוי שמאפשרת גיבוי Brick Level?

Brick Level
שיטת גיבוי זו מתחברת לשרת באמצעות פרוטוקול ה MAPI בדומה
לאאוטלוק ומגבה את התיבות לקבצי PST. מנהלי רשת נוהגים להשתמש בפונקציה זו כדי שיוכלו לבצע שחזור של תיבות דואר ספציפיות באופן פשוט ומידי. בעבר, היה מקובל לבצע גיבוי מסוג ה- Brick Level בנוסף לגיבוי בסיס נתונים. כיום, ישנן תוכנת צד שלישי רבות שעדיין כוללות את האופציה הזו כחלק מפתרון הגיבוי שלהן.

למה לא כדאי להשתמש ב Brick Level?
במידה ואנו מבצעים גיבוי מתוזמן של בסיס הנתונים, בלאו אחי ניתן לבצע שחזור של תיבות דואר באופן כוללני או ספציפי, כך שה Brick Level רק מכפיל את נפח וזמן הגיבוי, מעמיס על השרת ולא מגבה את נתוני ה Free/busy.

לכן, אין צורך להשתמש ב Brick Level. * במידה וקיים צורך לגבות תיבות דואר ספציפיות בנוסף לגיבוי הקיים, ניתן לבצע זאת בעזרת Exmarge ללא הורדת בסיס הנתונים.

הראל

פשוט פוסט מעולה אין כמוך!

יישר כך על כתיבת הפוסט המעולה, מענין וחשוב.

לא ידעתי שיש אפשרות לגיבוי ושחזור דרך ה wsb.
רציתי לדעת מה הכונה שהמידע נכתב לזיכרון ואח"כ ללוג, מה קורה בדיוק במידה והשרת נפעל פתאום שהמידע עוד לא הועבר ללוג או לבסיס הנתונים?
אני הבנתי שיש קובץ ( stroe.exe) מזהה שיש מידע שעוד לא נכתב לבסיס הנתונים אז אם תוכל להרחיב…

מה עם עוד פוקאסטים ?
הפודקאסטים מעולים ממש מענינים למה שלא תעשה חדשים?

שי,
שאלה מעולה!
מכיוון שכתיבת וקריאת נתונים מהדיסק איטית יותר מהשימוש בזיכרון, לאקסצ'נג'
קיים ניהול זיכרון מתוחכם לביצועים גבוהים. כהשרת מקבל דואר, מנוע ה ESE אחראי לקבלתו וניהולו. כשהאקסצ'נג' מתחיל לבצע טרנזקציות, הוא משתמש בזיכרון (memory cache) לאחסון ושליפת הנתונים. הנתונים שעולים לזיכרון נשמרים במקביל על הדיסק כקבצים זמניים וקבצי לוג. שהפרוסס של Store.exe נסגר, כל טרנזקציות שבזיכרון נכתבות לדיסק. אם יש הפסקת חשמל והנתונים שבזיכרון טרם הספיקו להיכתב לדיסק, הוא ישתמש בקבצים הזמניים ובלוגים לשחזור המידע.

אם להיכנס לפרטי פרטים
למרות שעושה רושם כי הנתונים עוברים מהזיכרון לקבצי הלוג ולבסוף לבסיס הנתונים, בפועל מה שמתבצע הוא שהנתונים עוברים מהזיכרון ישירות לבסיס הנתונים שעל הדיסק. קבצי הלוג מותאמים לעבודת כתיבת נתונים מהירה, כך שבמהלך עבודה תקינה,
בסיס הנתונים אף פעם לא מושך את הנתונים ישירות מקבצי הלוג (לא עובד מול הלוגים), זאת אלא אם כן הפרוסס של ה Store נסגר באופן פתאומי ובסיס הנתונים צריך לשחזר את המידע ולבצע replay ללוגים.

ולפי כך, האיור שצירפתי למאמר אכן לא מדוייק, אך מהווה כעזר להבנת הפעולות הדורושות
כדי לבצע DR.

להלן התרשים כפי שהוא אמור להיות:
1. המשתמש שולח הודעת דואר.
2. בקשת MAPI נשלחת ל information store ומדווחת לו על הודעת הדואר.
3. הinformation store מתחיל לבצע טרנזקציה במנוע בסיס הנתונים ומבצע את השינויים הרלוונטים.
4. מנוע בסיס הנתונים מעלה את השינויים לזיכרון.
5. במקביל, מנוע בסיס הנתונים מאבטח את הנתונים (כותב אותם) לקבצי הלוג.
כאשר הוא מגיע לסוף קובץ הלוג, הוא מייצר קובץ לוג חדש וכן הלאה…
6. מנוע בסיס הנתונים מעיבר את הנתונים מהזיכרון לבסיס הנתונים שעל הדיסק.
7. ובסופו של דבר מעדכן את קובץ ה E00.chk.
http://support.microsoft.com/kb/271987

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

:)
הראל

הרבה תודה על המאמר העשיר בידע!

כשאני מנסה לבצע שחזור ע"י wsb, ובוחר באופציית ה Applications, לא מויפיע לי ה Exchange כאופציה לשחזור. האם ידוע לך מה עשוי לגרום לבעיה זו?

תודה מראש,
רוני

רוני,
ראשית, בצע בדיקה ותוודא שהמערכת מזהה את ה Exchange כאפליקציה הניתנת לגיבוי\שחזור (פרטים בסעיף "שינוים בכלי הגיבוי המובנה של ווינדוס" שבמאמר).
null

שנית, כשאתה מבצע את הגיבוי (wsb) ומגיע לחלון ה Select Backup Configuration באיזו אופציה אתה בוחר והאם אתה מסמן את
כל המחיצות שעליהן מצויים קבצי ה Exchange?
הסבר: בחר באופציית ה Full Server אם ברצונך לגבות את כל מחיצות השרת.במידה ובחרת באופציית ה-Custom, דאג לסמן את כל המחיצות שעליהן מאוחסנים קבצי ה Exchange (בסיס הנתונים+ לוגים) ולא לסמן את הספריות\הקבצים באופן ספציפי!

להלן הסבר מפורט לגיבוי Exchange באמצעות Windows Server Backup
1. ראשית עלינו לבצע התקנה של Windows Server Backup.
ניתן לבצע זאת אם נכנס לServer Manager>Features>Add Features> Windows Server Backup Features>, נסמן ונקליק על כפתור ה Next.

2. לאחר שביצענו את התקנת WSB , נפעיל את ה Windows Server Backup,
מתפריט התחל> Administrative Tools. בסרגל הצדדי של ה Actions, נבחר באופציית
ה- Backup Schedule במידה וברצוננו להגדיר גיבוי עם תזמונים אוטומטיים.
נבחר באופציית ה- Backup Once, אם ברצוננו לבצע גיבוי חד פעמי.

בחלון ה Select Backup Configuration,
נבחר באופציית ה Full Server אם ברצוננו לגבות את כל מחיצות השרת.
במידה ובחרנו באופציית ה-Custom , נדאג לסמן את כל המחיצות שעליהן
מאוחסנים קבצי ה Exchange (בסיס הנתונים+ לוגים) ולא לסמן את הספריות\הקבצים
באופן ספציפי!

בחלון ה- Select Items for Backup, נקליק על כפתור ה- Advanced Settings
ונבחר את שיטת הגיבוי הרצויה. VSS Copy- אופציה זו מאפשרת לבצע גיבוי מלא,
ללא מחיקה של הלוגים בסוף התהליך. נבחר בה במידה ואנו משתמשים בתוכנת
גיבוי נוספת ואין אנו רוצים שגיבוי ה VSS יפריע לתהליך.
VSS full backup- אופציה זו מאפשרת גיבוי מלא, כאשר בסוף התהליך
ה Exchange אמור לבצע מחיקה של קבצי הלוגים (Log truncation) שלא בשימוש.
נשתמש באופציה זו במידה ו Windows Server Backup היא התוכנה היחידה
שבה אנו משתמשים לגיבוי השרת.

בחלון ה Specify Backup Time, נבחר את רציפות תזמוני הגיבוי
(פעם או מספר פעמים ביום) הרצויים. אופציה זו מופיעה, אך ורק אם בחרנו
באופציית ה- Backup Schedule.

בחלון ה- Specify Destination Type,
נבחר את מדיית האחסון שעליה ישמרו קבצי הגיבוי:
Backup to a hard Disk that is dedicated- גיבוי למחיצה ייעודית
(דיסק חיצוני או פנימי) אשר תשמש לאחסון נתוני הגיבוי בלבד.
Backup to a volume- גיבוי לדיסק מקומי או חיצוני
(לא מומלץ, ירידה משמעותית בביצועים).
Backup to a shared network folder- גיבוי לכונן רשת.

ראה ווידאו המלווה את התהליך בסעיף "בונוס ווידאו –גיבוי באמצעות WSB
" שבמאמר.

הראל

מאמר מושקע, הולך ישר למועדפים.
אגב, שמעתי שניתן להפעיל את ntbackup על שרת 2008, האם יש אמת בדברים אלו? אשמח אם תוכל לפרט. תודה

עידו,
ניתן להשתמש בפתרון (לא רשמי) המאפשר להפעיל את NtBackup על שרת 2008
וכך ולבצע גיבוי לבסיס הנתונים (Information Store) של ה Exchange.
מכיוון שפתרון זה הוא לא רשמי, לא נתמך ולא תמיד עובד, לא מצאתי לנכון להרבות
בפרטים בנושא. ולמה בכלל ששמישהו יהיה מעוניין להשתמש ב NTbackup כאשר אפשר להשתמש ב WSB?

בכל אופן, ניתן לבצע זאת ע"י התקנת הפיצ'ר RemoteStorageManage על שרת Windows Server 2008 64bit עליו מותקן ה Exchange.
Server Manager>Features>Add Features> Select Removable Storage Manager> Install

בנוסף לכך נדרש לבצע העתקה של שלושה קבצים: ntbackup.exe, ntmsapi.dll ו vssapi.dll המצויים בספריית C:\windows\system32.
משרת Windows 2003 Server 64bit המריץ Exchange לשרת ה Windows server 2008 64bit המריץ Exchange לספריית c:\backup.
(ניתן להוריד את הקבצים מהקישור הבא NT Backup Files64Bit).

חשוב לפתוח את קובץ ה ntbackup.exe בהרשאות מנהל "Run as Administrator".
# מכיוון שפתרון זה הוא לא רשמי ולא תמיד עובד, מומלץ לוודא שאכן ניתן לבצע שחזור לפני שמסתמכים עליו -פרטים נוספים בגוגל.
* אפרופו, על מנת שניתן יהיה לבצע שחזור של קבצי הגיבוי, נצטרך להתקין את ה Windows NT Backup – Restore Utility על השרת.

גיבוי מרוחק: Remote streaming Backup
שיטה נוספת שבה ניתן לגבות את שרת Exchange 2007 היא ע"י הרצת NTBackup משרת Server 2003.
כדי לבצע זאת:
נוודא שה Exchange2003 Management Tools מותקן על שרת ה 2003.

נוסיף ערך לרג'סטרי בשרת ה Exchange2007.

נבצע Restart ל Information store.
* כדי לבצע את הגיבוי, נפעיל את ה NTBackup על שרת ה 2003, נכנס לתפריט ה Tools> Remote Store
ונזין את שם השרת המרוחק (שרת ה Exchange המותקן על Server 2008) שאותו אנו רוצים לגבות.

במידה ולא מופיעה אופציה לגיבוי ה Exchange,
נצטרך להתקין אאוטלוק על שרת ה 2003 כדי להוסיף תמיכה ב Mapi.

*על מנת שניתן יהיה לבצע שחזור, נצטרך להתקין את ה
Windows NT Backup – Restore Utility על שרת ה 2008.

לא מומלץ!
הראל

תודה רבה על הכתבות מצוינות , כול הכבוד ההשקעה בנושאי סיסטם!

"שינוים בכלי הגיבוי המובנה של ווינדוס
עד לגרסת מערכת הפעלה Server 2003 ניתן היה לבצע גיבוי לשרת האקסצ'נג'
עם הכלי NTBackup המובנה במערכת. החל מגרסת Server 2008 ומעלה
שונה הכלי ל Windows Server Backup וכן גם מנגנון הגיבוי
מ Streaming ל- VSS המבוסס על ה Volume shadow copy. "

אם אני לא טועה גם ב- Server 2003 קיימת האופציה של גיבוי השרת בעזרת Volume shadow copy.

http://www.msexchange.org/tutorials/Exchange-2003-Backup-Restore-NTBACKUP.html

או שאני טועה?

מקס,
החל מגרסת Exchange 2003 ו Server 2003 נוספה התמיכה ל Volume Shadows Copy,
כך שאכן ניתן לבצע גיבוי של VSS, אך רק באמצעות תוכנות גיבוי צד שלישי ולא ע"י הNTBackup.
החל מ Server 2008 כלי הגיבוי המובנה בויינדוס שונה ל Windows Server Backup עם תמיכה מלאה במנגנון ה VSS.
כפי שציינתי, ה NTBackup משתמש בנגנון ה Streaming ולא VSS.
אם תשים לב, זה כתוב במאמר שצירפת לתגובה תחת "Volume Shadow Copy".

הראל

תודה על המאמר.

רציתי להבין את הראיה שלך לגבי גיבוי מלא לשרת – במידה ושרת האקסצ'יינג נופל לגמרי (נניח תקלת חומרה) ואנו נאלצים להרים שרת חדש.

האם היית הולך על הרמת השרת מאפס ומשחזר כפי שתארת במאמר או דואג לגיבוי אחר לצורך התאוששות מהירה?

Lee,
גיבוי ושחזור של Bare Metal Recovery נועד בדיוק למקרים כאלו: כשל בחומרה או מצב שבו נדרש לשחזר את השרת מאפס לחומרה הקיימת או לחומרה שונה. פתרון זה מספק יכולת שחזור מהירה יותר, כלומר הוא חוסך את הזמן הנדרש להתקנה מחודשת של מערכת ההפעלה ואפליקציית ה Exchange. אם ישנה האפשרות (זמן הגיבוי סביר ומספיק נפח אחסון לקבצי הגיבוי) אז למה לא.

יש לציין כי כשל ברכיבי החומרה בדרך כלל אינו אמור להוות בעיה,
כיוון שהשרת מספק יתירות מספקת, כלומר במידה והדיסקים מוגדרים במערך Raid, שני ספקי כוח וכדו…

כמובן שבמידה והמטרה היא לספק זמינות גבוהה, ניתן להגדיר
מנגנון Clustering לשרת ה Exchange.
בשרת Exchange 2010 ניתן להגדיר DAG
ובשרת Exchange 2007 קיימות מספר אופציות:

local continuous Replication
מאפשר שמירת עותק של בסיס הנתונים למחיצה נפרדת, דיסק פנימי\חיצוני.
במידה ובסיס הנתונים נפגם (אך השרת עדיין חי), ניתן להשתמש בעותק זה ולהשמיש מחדש את בסיס הנתונים. בשיטה זו ניתן לבצע גיבוי (גיבוי VSS ולא Streaming) ישירות מה Replica וכך לא להעמיס על שרת הפרודקשיין.

Single Copy Clusters
צירוף שרת Exchange נוסף והצבתו במצב אופליין. שרת זה (SCC) יקושר לאותו בסיס נתונים\ Storage Group של שרת הפרודקשיין אותו ניתן להרים במידה וקרס.

Standby Continuous Replication
מצב שבו ישנם שני שרתי Exchange אונליין עליהם מאוחסנים תיבות דואר פעילות.
כאשר השרת התפקד כ SCR מחזיק עותק פסיבי של השרת האחר. במידה ושרת ה Exchange האחר קורס, שרת ה SCR יבצע העלאה של בסיס הנתונים שקרס.

הראל

טל,
החל מ 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
ראה ווידאו שאני הכנתי: http://www.youtube.com/watch?v=0rm1a392ie8

בקשר לשאלתך השנייה
תוכל לטעון קבצי EDB ולייצא את התיבות הנבחרות ל PST (ללא שרת Exchange פעיל וללא AD) ע"י תוכנה כגון Quest recovery for exchange. היא פשוטה לתפעול, אך לא חינמית.

הראל

שלום הראל,
ברשת שלנו מותקן שרת Exchange 2007, נתבקשתי לייצא את כל תיבות הדואר לקבצי PST. האם תוכל להסביר לי בקצרה איך ניתן לבצע זאת (EXmarge או משהו כזה)?

מעבר לכך, האם קיימת אפשרות לקחת את קובץ בסיס הנתונים (EDB) של ה Exchange, להרים אותו על תחנת עבודה ולייצא את תיבות הדואר לקבצי PST ללא שרת Exchange מותקן וללא Active Directory?

תודה מראש,
טל

כמו הכל אצלך
האתר הזה עם התוכן שלו עשוי בטוב טעם ודעת
המשך כך !!

השארת תגובה

(חובה)

(חובה)