Назад | Перейти на главную страницу

Robocopy не работает для резервных копий моментальных снимков Active Directory

Я пытаюсь автоматизировать резервное копирование базы данных Windows 2008 Active Directory (ntds.dit).

Смонтированные снимки AD создаются в C: \ $ SNAPxxxxxxxxxx \ Windows \ NTDS. Приведенный ниже сценарий работает для создания, монтирования, размонтирования и удаления снимков AD.

Что не работает, так это robocopy. Над строкой robocopy я перехожу в каталог, содержащий смонтированный снимок. Затем я приказываю Windows скопировать этот каталог и его суб-содержимое (/ -а) в C: \ ad_backups. Вместо копирования содержимого каталога C: \ $ SNAPxxxxxxxxxx \ robocopy начинает копирование всего диска C: в C: \ ad_backups. Зачем? Разрешения?

Я также обнаружил, что если вы используете проводник Windows для перехода к C: \ $ SNAPxxxxxxxxxx \, эта папка отображается как значок ярлыка (почти как символическая ссылка в Linux). Двойной щелчок по нему возвращает вас к C: \, хотя в адресной строке проводника Windows отображается C: \ $ SNAPxxxxxxxxxx.

rem unmount all mounted snapshots if any
ntdsutil snapshot "list all" "unmount *" quit quit
rem delete all existing snapshots if any
ntdsutil snapshot "list all" "delete *" quit quit
rem create a new snapshot
ntdsutil snapshot "activate instance ntds" create quit quit
rem mount the snapshot
ntdsutil snapshot "list all" "mount 1" quit quit
rem Change directory to C:\snapshot_location
cd c:\*snap*
rem copy snapshot contents to C:\ad_backups
robocopy . C:\ad_backups\ /s
rem unmount and delete the snapshot
ntdsutil snapshot "list all" "unmount *" quit quit
ntdsutil snapshot "list all" "delete *" quit quit

ОБНОВЛЕНИЕ 14.02.2014

Per @arcesso я изменил

cd c:\*snap*

к

cd c:\*snap*\windows\ntds

Теперь, когда я пытаюсь использовать dsamain для отображения информации из резервной копии снимка AD, я получаю ошибки. Похоже, dsamain любит работать только со снимками, смонтированными через ntdsutil. Кроме того, ntdsutil не имеет возможности изменить каталоги на c: \ ad_backups для монтирования снимка.

C:\Windows\system32>dsamain -dbpath C:\ad_backups -ldapport 10389
EVENTLOG (Error): NTDS General / Internal Processing : 1003
Active Directory Domain Services could not be initialized.

The directory service cannot recover from this error.

User Action

Restore the local directory service from backup media.

Additional Data

Error value:
-1032 JET_errFileAccessDenied, Cannot access file, the file is locked or in use

EVENTLOG (Informational): NTDS General / Service Control : 1004
Active Directory Domain Services was shut down successfully.

Я получил те же ошибки выше при создании копии VSS вручную для C: \ Windows \ NTDS * и попытке использовать dsamain.

Понятно ... Мне нужно было добавить в путь ntds.dit.

C:\Windows\system32>dsamain -dbpath C:\ad_backups\ntds.dit -ldapport 10389
EVENTLOG (Informational): NTDS General / Service Control : 1000
Microsoft Active Directory Domain Services startup complete, version 6.0.6002.18 781

Похоже, вы почти ответили на свой вопрос. Если C:\$SNAPxxxxxxxxxx\ идет в C:\ но тебе нужно C:\$SNAPxxxxxxxxxx\Windows\NTDS, почему бы просто не пойти в C:\windows\NTDS и пропустить проблему?