
הטקסט המלא של הדקות הראשונות בהרצאה «NTDSUTIL - AD Compaction» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם בהרצאה הזו אנחנו נדבר על דאטאבייס מיינטיינס, תחזוקה של קובץ הדאטאבייס, מערכת הדאטאבייס שלנו, משרדת 2008, אני ישדדי ובואו נתחיל.
אז מה זה בעצם תחזוקה למסד הנתונים ולמה צריך לעשות את זה? מסד נתונים, כל קבצי מסד הנתונים ולא משנה איזה סוג עובדים בצורה קבועה.
כאשר אנחנו מבצעים יצירה של רשומה חדשה, נתונים חדשים במסד הנתונים, מצד הנתונים בא ומקצה לאותה רשומה נפח אחסון בתוכו. זה אומר, הקובץ NTDSD במקרה שלנו, קובץ הליבה של Active Directory, כשאנו באים ורושמים לתוכו רשומה חדשה, הוא מקצה בתוכו נפח אחסון.
מסדי הנתונים בכללה מסתמכים על הנחת יסוד מאוד ספציפית. אנחנו הולכים וגדלים. זה אומר, מבחינתי, אני רק הולך וגדל, אני לא קטן.
כל פעם יתווספו אליי נתונים, והנתונים שימחקו ממני הם מינורים ביחס לנתונים שהתווספו אליי. עכשיו מתוך כך נובעת לנו בעיה.
כשאנחנו מבצעים מחיקה של רשומה שנכתבה לתוך הדאטאבייס, המקום שהקצה הדאטאבייס לרשומה הזאת, הנפח הזה, עדיין מוגדר כתפוס, גם כשהרשומה לא קיימת.
תראו לכם דוגמה, אנחנו עכשיו באים ועובדים בחברה ומנהלים לנו איזה מחלקה חביבה. יש לנו איזה עובד שהחלטנו לפטר אותו ולהעביר אותו למחלקה אחרת, לא משנה כרגע. נהיה נחמדים, העברנו אותו למחלקה אחרת.
לעובד הזה היה משרד קובייה כזה, חביב. ותארו לכם מה היה קורה אם על כל עובד שהיינו מפטרים ומעבירים מחלקה, המשרד הישן של אותו עובד עדיין היה מוגדר כדפוס.
זאת אומרת, מגיע עובד חדש, צריך לבנות לו עכשיו משרד חדש משלו ולא להשתמש במקום הפנוי. נראה קצת מגוחך, נכון? בהחלט כן אבל ככה זה עובד זה מה שגם אם אני מוחק עכשיו את הרשומה אני אומר עכשיו מבחינתי המשרד הזה כבר לא שייך לדוד דוד עכשיו פוטר לכאורה המשרד אותו משרד אמור להיות פנוי אבל לא ככה דבר אנחנו באים ואומרים עכשיו
שהמשרד הזה עדיין שייך לדוד למרות שדוד כבר אינו בחברה עכשיו אותו דבר קורה גם במסד הנתונים אני מוחק רשומה המקום שהוקצה לאותה רשומה עדיין מוגדר כדפוס מתוך כך אתם ממש מבינים כבר שהנפח של מסד הנתונים רק ילך ויתנפח לממדים מאוד מאוד מאוד גדולים במיוחד כשמדובר על מסד נתונים שיש אליו ועליו המון פעילות.
עכשיו כמובן אנחנו לא נרצה שהנפח הזה יגיע לאמות מידה כאלו ולכן אנחנו נבצע פעולת תחזוקה בתהליך ידני שנקרא קומפקשן. עכשיו מי מכם שבא ואומר לי רגע אני יודע שכן יש איזושהי משימת תחזוקה שהמערכת מבצעת בעצמה בצורה אוטומטית?
נכון אבל זה סוג של קומפקשן אחר זה אומר במקום עכשיו לבוא ולפנות את הרשומות את אותו נפח שהוקצה לרשומות שנמחקו המערכת רק מסדרת את הנתונים מה זה אומר ממש דומה כמו איחוי דיסק זה אומר אם עכשיו יש רשומה שהמידע שלה מפוזר ברחבי הדאטאבייס המערכת באה ומסדרת אותו בצורה רציפה כך שהדאטאבייס יעבוד בצורה יותר זריזה ותהיה קריאה יותר
מהירה בואו נראה באמת דוגמה לתהליך האוטומטי שהמערכת מבצעת ונראה את ההבדל בין קומפקשן ידני לבין התהליך שדומה לאיחוי שהמערכת מבצעת על מסד הנתונים שימו לב אנחנו כרגע רואים בחלק העליון של המסך את הפעולה שמבוצע בצורה אוטומטית על ידי המערכת זאת אומרת סוג של איחוי בחלק התחתון אנחנו נראה את התוצאות של הפעולה הידנית שאנחנו נבצע עוד מעט שימו לב מה קורה בצורה
אוטומטית המערכת באה ומאתרת שהרשומות הנתונים סליחה לא מסודרים בצורה רציפה ובעצם בא ומסדרת אותן עכשיו חשוב מאוד להבין משהו שגם אם רשומה B נמחקה לגמרי המערכת רק סידרה את הנתונים ולא באה ופינתה את המקום היא רק סידרה את זה בצורה רציפה שימו לב אני אראה את זה שוב נתונים של רשומה B ונתונים של רשומה A נכתבו
במקומות שונים במסד הנתונים המערכת באה ומסדרת אותן ואז כשהמערכת ביצעה את הסידור של הנתונים הללו אנחנו יכולים לבוא בצורה יותר זריזה אבל אם הרשומה נמחקה שימו לב b עדיין תקף ועדיין קיים מה שאנחנו עושים בקומפקשן ידני הוא הדבר הבא שימו לב לחלק התחתון של המסך עכשיו יש לנו כאן את רשומה a ורשומה b הנתונים של רשומה
a מפוזרים על הhard disk עצמו הלאה סליחה על הקובץ הדאטאבייס בקובץ הדאטאבייס עצמו נתונים של רשומה b מפוזרים גם הם בקובץ הדאטאבייס נניח ואנחנו מחליטים למחוק את רשומה b מחקנו את רשומה B. שימו לב מה קורה.
בגלל שאנחנו מבצעים קומפקשן בצורה מסודרת, גם המקום שהוקצה לרשומה B פונה. זה אומר עכשיו מבחינתי המקום הזה פנוי ואני יכול לכתוב אליו נתונים. כלומר, אני עכשיו בא ומסתכל על זה בצורה שמערכת ה-NTFS מסתכלת על זה.
לאחר מכן המערכת מבצעת את הפעולת החזוקה השוטפת שלה, כמו שראינו בחלק העליון, ומסדרת את הנתונים בצורה רציפה.
מבחינתנו מאוד חביב, מאוד מאוד פשוט. עכשיו כדי לבצע את התהליך הזה בעבר היינו צריכים באמת לבוא ולכבות את כל השרת אם דיברנו על שרתי 2003 וזה מה שמוביל אותי לחלק הבא פה של אותה תחזוקה החלק הזה שמדבר על תחזוקה אונליין אופליין אומנם זה לא בדיוק אונליין אבל תכף תבינו על מה מדובר
אז באמת אחד החידושים הכי מרשימים בשרתי 2008 הוא בעצם העובדה שהפכו את האקטיב דירקטורי לשירות לסרוויס זה אומר שפעם בשרתי 2003 לפני שזה היה ככה אם הייתי רוצה לעשות פעולת תחזוקה הייתי צריך לכבות את כל השרת להיכנס ל-Restore Mode, מישהו מכם לא יודע מה זה DSRM שיבדוק בבקשה
ויצפה בסרטים בנושא גיבוי ושחזור של שרתי 2008 ורק דרך שם הייתי יכול לעשות את פעולת התחזוקה. עכשיו כמובן שכדי שנוכל לעבוד עם היכולת הזאת של הסרוויס, זאת אומרת נוכל לעצור פשוט את הסרוויס במקום להפיל את כל השרת, אנחנו נצליח לפחות שני בקרי דומן.
זאת אומרת שברגע שאני אעצור עכשיו דומן קונטרולר אחד, הוא יודיע לדומן קונטרולר השני, אני עוצר, קח פיקוד, תן שירות ללקוחות לעמדות הקצה.
עכשיו אם יש לנו רק דומן קונטרולר אחד אנחנו נצטרך לעבוד בשיטה הישנה, זה אומר להתחיל את השרת, ללחוץ F8, להיכנס למצב של DSRM ולבצע את תחזוקת המערכת.
עכשיו עוד דבר חשוב, לפני שאנחנו באים ומבצעים את התחזוקה הזאתי צריך להבין משהו. קומפקשן הוא תהליך מאוד מאוד רגיש ואם עושים אותו בצורה לא נכונה יכול להיגרם לכם קורפשן זאת אומרת אתם יכולים לדפוק את כל האקטיב דירקטורי שלכם את כל החברה שלכם וחבל לכן צריך מאוד להיזהר מאוד להקפיד על השלבים אחד לאחד.
יש מנהלי רשת שבכלל לא עושים את התהליך הזה אף פעם גם אם החברה עובדת שנים וכדי להימנע מהמצב הזה ומהסיכון הזה. עכשיו למרות שאני בא ואני תמיד מדגיש עושים בצורה ידנית עושים בצורה ידנית אפשר להכין סקריפט שמבצע את הפעולה את כל מה שאני אעשה ואדגים פה בצורה אוטומטית אני לא ממליץ בכלל מכיוון שאם יהיה corruption אתם לא תוכלו לדעת על זה ואתם תגיעו לחברה
בבוקר ואופס המסע הנתונים שלכם לא עובד החברה לא מתפקדת נכון אפשר לפתוח event viewer ולקנפג שליחת הודעת מייל במקרה של תקלה אבל המלצה ממני כשאתם עושים את התהליך הזה בחברה פעם בשבועיים פעם בחודש לדאוג ולעשות את זה שאתם מול המערכת ולא לסמוך על שום סקריפט ולא
על שום דבר אחר אז מה הנקודות החשובות לפני ואחרי שאנחנו מבצעים קומפקשן לקובץ ה-NTDSD שלנו קודם כל אנחנו נבצע עצירה של שירות הכתיב דירקטורי זה במידה ויש שני דומיין קונטרולרים לאחר מכן אנחנו ניקח את קובץ ה-NTDSD איכשהו ונעתיק אותו ונשים אותו באיזה תיקייה מסוימת זה נקרא גיבוי יבש רק למקרה ויהיה קורפשן אם משהו לא ילך כראוי
אני לא אתנהל כראוי יהיה לנו סוג של גיבוי יבש לאחר שסיימנו את תהליך הקומפקשן אנחנו נבוא ונבצע מחיקה של הלוגים שלנו מתיקיית ה-NTDS כך שהמערכת לא תעבוד עם לוגים ישנים שיכולים לגרום לקורפשן לאחר שביצענו את מחיקת הלוגים נעתיק את קובץ ה-NTDS החדש זה אומר עשינו עכשיו
קומפקשן ל-NTDS שלנו ל-NTDSD קיבלנו עותק של ה-NTDSD בצורה איך אומרים נקרא לזה מקומפקת זה אומר בלי כל הרשומות והנפח המיותר שנמחק ולא היה בשימוש וסתם בוזבז.
לאחר שביצענו את ה-Compaction נחזיר את ה-NTDS הזה המקומפקט שלנו למיקום המקורי. זאת אומרת בתוך תיקיית ה-NTDS ולאחר שנסיים נריץ בדיקות לראות שכל המידע כל המידע עבר כמו שצריך הנתונים תקינים אין שום corruption אין בעיות.
אחרי שהראינו שהכל עובד בצורת תקינה נריץ חזרה את הסרוויס זה אומר נפעיל מחדש את הסרוויש של אקטיב דירקטורי אם יש גוראפצ'ן לא נורא לוקחים את הקובץ גיבוי היבש שלנו מהתקייה שבו שמנו אותה ומחזירים אותו למיקום המקורי בשביל זה עשינו את הגיבוי
היבש אז באמת תהליך מאוד פשוט מאוד מאוד קל בואו באמת נראה איך עושים את זה אני לטובת ההדגמה הכנתי כאן סביבת מעבדה עם שני דומן קונטרולרים DC אחד וDC שניים באותו דומן דומן פרקטיקי להב אני כרגע ניגש פה לשערת DC מספר 2 שלנו ואני בא ומצהיר פה על הכוונות שלי מול השרת הזה
זה מה שאני רוצה עכשיו לבוא ולעשות תחזוקה. עכשיו אני בכוונה אראה פה דוגמה לא נכונה. מה זה אומר דוגמה לא נכונה? אני לא אעצור את הסרוויס ותראו מה יקרה. אני ניגש פה ל-CMG בעזרת כלי ה-NTDS Util אני מבצע את ה-Compaction הזה, את המשימת תחזוקה.
ניגש ל-NTDS Util שלנו ומתחבר לקובץ מסד הנתונים. אני כותב לו Activate Instance אני כאן גם מחובר לקובץ מסד הנתונים מה זה אומר זה אומר שאני ניגשתי עכשיו לקומפיוטר c windows ntds ושימו לב לקובץ ה ntdsd שלנו אתם רואים את ה ntdsd שימו לב זה קובץ המסד הנתונים שאמרתי לו להתחבר אליו כרגע עכשיו שימו לב אני לא עצרתי את הסרוויס בכוונה אני ניגש פה עכשיו לרובד של פיילס ותראו מה
הוא אומר לי הוא אומר ה ntds service ntds is running סטופ זה סרוויס בפור בינדינג טו אקטיב דירקטורי דאטאבייס זה מה שקורה חברים כשאני לא עוצר את הדאטאבייס הוא לא נותן לי בכלל לגשת פנימה אז אני בא ועוצר עכשיו את הסרוויס אם זה קורה
לכם דעו לכם ששכחתם לעצור את הסרוויס רציתי להראות את זה במכוון כדי שתבינו כמה זה חשוב אז הולכים פה לסרוויסים בסטארט אמיניסטרטיב טולס וסרוויס הסרוויס הראשון ברשימה זה הסרוויס שאנחנו מחפשים שימו לב זה החידוש של שרדת 2008 Active Directory Domain Service הוא סרוויסיז הוא סרוויס אני בא ועושה לו סטופ שימו לב אני כרגע בא ומקבל פה איזושהי
עזרה מהמערכת אלו הסרוויסים שייעצרו אני אומר לו בסדר והוא בא ועוצר את התהליכים הסיבה שזה קורה הסיבה שהוא בכלל מצליח זה בגלל שיש דומיין קונטרולר אחר דומיין קונטרולר מספר אחת שזמין ויכול לתת שירות ללקוחות אם זה לא היה בצורה הזאת אם היה לנו רק דומיין קונטרולר אחד בלבד
היינו צריכים לעשות הפעלה מחדש להיכנס עם ה-8 ל-Restore mode או על ידי הרוויחה של ה-BCD Edit כמו שראיתם בסרטים של גיבוי ושחזור. אוקיי עכשיו בואו ננסה שוב עצרנו את הסרוויס ניגש פה לפיילס שימו לב עכשיו הוא נותן לי להיכנס תראו את ההבדל בתוך שניות.
אני בא ואומר דבר מאוד פשוט תעשה קומפקט תעשה קומפקט לקובץ ה-DataBase שלנו שכרגע אנחנו מחוברים אליו ושים את זה ב-c.2/בוא ניצור לנו תיקייה.
אני אצור לי כאן תיקייה ונקרא לזה עכשיו Compact NTDS. עכשיו עוד לפני שאני בא ולוחץ פה אישור או מה אמרנו צריך לעשות גיבוי יבש לפני שבכלל עושים תמיד תמיד תמיד תמיד לעשות גיבוי אני בא ועושה ניו ואני קורא לזה עכשיו אוריג'י כמו אוריג'ינל NTDS אני ניגש לווינדוס שימו לב לא הרצתי את הפקודה ווינדוס תיקיית ה-NTDS הנה היא ומושך את קובץ ה-NTDS הנה ה-NTDS
זה לא קופי אל התיקייה החדשה שלנו התיקייה אוריג'י ntds והוא עושה פייסט זה הגיבוי היבש שלנו למקרה ומשהו ילך בצורה לא תקינה הנה העתקתי אותו מצוין יש לי גיבוי יבש עכשיו כשיש גיבוי יבש אפשר לעשות את זה בצורה תקינה עכשיו אני אשנה פה את שם התיקייה רק כדי שלא יהיו רווחים לחסוך לי יותר קצת את הכאב בראש שלי ואני אגש לפה נכתוב compact ntds אני רואה שהם
בקיצורים כמובן הייתי יכול לכתוב compacted ntds אבל מבחינת קיצור לא קריטי לי השם פה ממש לא קריטי ואני עושה enter שימו לב המערכת כרגע באה לוקחת את קובץ ה-NTDS שלנו ומבצעת לו באמת את כל התהליך של הקומפקשן שימו לב תהליך ראשון הסתיים ומכיוון שהקובץ הזה הוא סביבת מעבדה זה מאוד מאוד מאוד קצר מבחינתנו אז
זה לא לוקח הרבה זמן בחברות גדולות כמובן