محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

آموزش Defrag کردن اکتیودایرکتوری به زبان بسیار ساده (Defragment)

همانطور که هارد دیسک شما بعد از حذف و اضافه کردن فایل های زیاد Fragment می شود ، اطلاعات موجود در اکتیودایرکتوری نیز بعد از گذشت مدتی تکه تکه یا Fragment می شوند ، شما روی سیستم خود برای ترمیم این مشکل از ابزار Defragmenter ویندوز استفاده می کنید ، اکتیودایرکتوری هم بصورت متناوب برای اینکه بتواند سلامتی خود را حفظ کند یک فرآیند خودکار Defragmentation را انجام می دهد. اما نکته مهمی که در Defragment خودکار اکتیودایرکتوری وجود دارد این است که این Defragmentation دیتابیس شما را فشرده سازی نمی کند و هیچ تاثیری در اندازه Database شما ندارد.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

اکتیودایرکتوری قابلیتی دارد که شما می توانید در حالتی که Database آن در حالت Offline قرار دارد آنرا Defragment کنید در چنین حالتی فضای دیسک شما خالی می شود و Database واقعا مرتب و خالی از اطلاعات بلا استفاده می شود. البته فرآیند Offline Defragmentation بصورت خودکار انجام نمی شود و شما بایستی این فرایند را بصورت دستی انجام دهید ، بعضا دیده شده که در یک فرآیند درست Offline Defragmentation تا دو سوم فضای گرفته شده دیسک توسط اکتیودایرکتوری خالی می شود.

چگونه Database اکتیودایرکتوری را بصورت آفلاین Defragment کنیم ؟

قبل از اینکه شروع به انجام فرآیند Offline Defragmentation کنید حتما پیشنهاد می کنم که یک Backup کامل از system state و خود سیستم عامل بصورت کامل تهیه کنید. البته جای نگرانی معمولا نیست در این فرآیند هیچگونه تخریبی انجام نمی شود من به شخصه در مراحل مختلفی که این عملیات را در سازمان های مختلف انجام داده ام هیچگاه ( گوش شیطون کر ) به مشکلی در این خصوص بر نخورده ام اما به هر حال کار از محکم کاری عیب نمی کند.

بعد از اینکه از اکتیودایرکتوری خود Backup گرفتید فراموش نکنید که به اندازه فایل دیتابیس اکتیودایرکتوری یا همان NTDS.DIT توجه کنید. بصورت پیشفرض فایل NTDS.DIT در مسیر C:\Windows\NTDS قرار گرفته است اما اگر طراحی درستی از ابتدا برای این امر در هنگام انجام عملیات DCPROMO انجام شده بود ممکن بود در جای دیگری قرار گرفته باشد ، همانطور که اشاره کردیم نام این Database به صورت NTDS.DIT مشاهده می شود. اگر یک اکتیودایرکتوری تازه و سالم ایجاد کرده باشید اندازه این فایل در حدود 12 مگابایت خواهد بود اما به مرور زمان و استفاده مکرر این database می تواند تا چندین گیگابایت بزرگ شود و این کاملا به اندازه و تعداد Object هایی دارد که سازمان شما به آنها نیاز دارد.

زمانیکه شما به سایز دیتابیس توجه کردید بایستی یک پوشه جدا ایجاد کنید که یک کپی موقتی از این Database را در آن قرار دهیم. زمانیکه شما مشغول انجام فرآیند Offline Fragmentation هستید ، ویندوز هیچوقت Database اصلی اکتیودایرکتوری را تغییر نمی دهد و دستکاری نمی کند بلکه ابتدا از دیتابیس اصلی داده ها را می خواهند و یک نسخه Defragment شده آن را در جای دیگری کپی می کند ، پیشنهاد می کنم یک پوشه به نام TEMP در مسیر \Windows\NTDS ایجاد کنید تا ادامه مراحل را با هم دنبال کنیم.

گام بعد در انجام این فرآیند غیرفعال کردن یا Disable کردن سرویس Active Directory Domain Services است. برخلاف نسخه های قبلی ویندوز که برای انجام اینکار بایستی سیستم را Restart می کردید و با استفاده از Directory Services Restore Mode آنرا بوت می کردید در نسخه های ویندوز سرور 2008 به دلیل ماژولار بودن ساختار شما براحتی می توانید این سرویس را مانند سرویس های دیگر ویندوز فعال و غیر فعال کنید. بسته به نوع سرویس هایی که شما در شبکه دارید ویندوز ممکن است در کنار سرویس ADDS سرویس های دیگری را نیز غیرفعال کند ، زمانیکه سرویس ADDS در حالت Stopped و Disabled قرار گرفت وارد محیط Command Prompt شوید و دستور NTDSUTIL را وارد کنید ، بعد از اینکه این دستور را وارد کردید در ادامه دستور زیر را وارد کنید :

Activate Instance NTDS

بعد از وارد کردن دستور بالا ابزار NTDSUTIL به شما اعلام می کند که Activate Instance شما بر روی NTDS ست شده است. حالا دستور Files را وارد کنید ، این دستور باعث می شود که NTDSUTIL به مرحله ای به نام File Maintenance برود ، حالا دستور Info را وارد کنید ، این دستور باعث می شود که NTDSUTIL به شما اندازه و محل قرار گیری فایل های دیتابیس اکتیودایرکتوری را نمایش دهد ، همانطور که در شکل زیر مشاهده می کنید :

Defragment کردن اطلاعات اکتیودایرکتوری

در این قسمت بایستی دقت کنید که اطلاعاتی که به شما نمایش داده شده است با اندازه دیتابیسی که قبلا مشاهده کردید تناسب داشته باشد ، در غیر اینصورت ممکن است مشکلاتی به وجود بیاید ، فرض را بر این می گذاریم که همه چیز آروم است و ما هم خوشحالیم ، با استفاده از دستور زیر می توانید فرآیند Defragmentation را شروع کنید :

Compact to c:\Windows\NTDS\temp

دستور بالا فرض را بر این گذاشته است که شما قبلا پوشه ای با این نام و در این مسیر ایجاد کرده اید ، یعنی ما در اینجا یک پوشه به نام Temp در مسیر C:\Windows\NTDS ایجاد کرده ایم . میزان زمانی که طول می کشد تا فرآیند Defragmentation در اکتیودایرکتوری کامل شود بستگی به سرعت سرور شما و همچنین میزان اطلاعات موجود در دیتابیس اکتیودایرکتوری دارد ، در تصویر زیر همانطور که مشاهده می کنید عملیات ما با موفقیت کامل انجام شده است :

Defragment کردن اطلاعات اکتیودایرکتوری دیفرگ کردن اکتیودایرکتوری

خوب تا اینجای کار عملیات شما با موفقیت انجام شد و طی این عملیات یک فایل جدید که Defragment شدن اطلاعات موجود در اکتیودایرکتوری است در پوشه جدیدی که ایجاد کرده ایم توسط این دستور ایجاد شد ، کاری که در ادامه شما باید انجام دهید این است که این فایل جدید را کپی کنید و جایگزین فایل اصلی اکتیودایرکتوری خود کنید ، ترجیحا ابتدا فایل اصلی را Rename کنید و بعد اینکار را انجام دهید تا در صورت بروز مشکل بتوانید به مرحله قبلی برگردید .

دقت کنید کلیه فایل هایی که در مسیر اولیه NTDS وجود داشته است اعم از Log فایل ها و مخلفات آن بایستی حذف شوند و چیزی از آنها باقی نماند ، بعد از اینکه اینکار را انجام دادید کافیست سرویس Active Directory Domain Services را Restart کنید تا اکتیودایرکتوری جدید Defragment شده خود را داشته باشید. فراموش نکنید قبل از انجام این عملیات حتما از دیتابیس اکتیودایرکتوری خود Backup بگیرید. ITPRO باشید

نویسنده : محمد نصیری

منبع : انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات