Ako na snapshoty Active Directory databázy
Ako jeden z mechanizmov zálohovania Active Directory sa mi osvedčili každodenné snapshoty databázy. Nedajú sa síce použiť priamo k obnoveniu DC, ale v kombinácii s nástrojom dsamain umožňujú veľmi rýchlo nahliadnuť do historického stavu domény.
Snapshot Active Directory databázy
Štandardný postup získania snapshotu pomocou nástroja ntdsutil je nasledovný:
- Pripojiť sa k AD (príkaz activate instance ntds)
- Vytvoriť snapshot (príkaz create)
- Zobraziť zoznam snapshotov a poznačiť si číslo toho najnovšieho (príkaz list all)
- Pripojiť vytvorený snapshot ako podadresár C:\ (príkaz mount)
- Vykopírovať zo snapshotu súbor ntds.dit pomocou prieskumníka
- Odmountovať snapshot (príkaz unmount)
- Zmazať snapshot (príkaz delete)
Celý postup je vidno na nasledovnom screenshote:
IFM záloha
Predošlý postup je trochu ťažkopádny, hlavne ak ho chceme zautomatizovať. Preto radšej využívam Install From Media (IFM) zálohy, ktoré na jeden príkaz urobia kroky 2-7 z predošlého postupu:
Navyše prebehne aj defragmentácia databázy a odzálohovanie registrov. Výsledkom je táto adresárová štruktúra:
- Adresár Active Directory
- Súbor ntds.dit – Defragmentovaná databáza
- Adresár Registry
- Súbor SECURITY – Registry hive obsahujúci vetvu HKLM\Security
- Súbor SYSTEM – Registry hive obsahujúci vetvu HKLM\System.
Registre sú súčasťou IFM zálohy preto, lebo hashe používateľských hesiel sú v databáze zasifrované pomocou tzv. SYSKEY/BOOTKEY, ktorý sa nachádza práve v registroch.
Použitie IFM zálohy
Primárnym účelom tejto zálohy je jej použitie pri inštalácii nového doménového kontroléru na pobočke s pomalou konektivitou. Nikto nám však nebráni si ntds.dit súbor z IFM zálohy primountovať pomocou nástroja dsamain, rovnako ako bežný snapshot. Nasledovná sekvencia príkazov sprístupní odzálohovanú databázu databázu cez protokol LDAP na porte 10389 a nasmeruje na ňu konzolu Active Directory Users and Computers:
Automatizácia
Ostáva nám ešte zautomatizovať tvorbu IFM záloh. Môžeme k tomu použiť nasledujúci PowerShell skript, ktorý každú zálohu uloží do samostatného adresára, ktorý vo svojom názve obsahuje aktuálny čas a dátum:
$date = Get-Date -Format 'yyyy-MM-dd HH-mm'
$folder = Join-Path 'C:\IFM' $date
ntdsutil 'activate instance ntds' ifm "create sysvol full `"$folder`"" quit quit
Tento skript potom stačí pravidelne spúšťať v rámci periodickej plánovanej úlohy. Nesmieme samozrejme zabudnúť na premazávanie starých záloh, aby nám nezaplnili disk.
Záver
IFM zálohy nám v žiadnom prípade nenahradia System State zálohy, vytvárané pomocou Windows Server Backup alebo nástrojov tretích strán. Môžu ale poslúžiť ako ich doplnok, pretože k dátam v nich obsiahnutých sa typicky vieme dostať oveľa rýchlejšie, než k System State zálohám.