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

восстановление файлов с помощью VShadows не работает

Я разрабатывал vss-writer на основе этот образец Microsoft.

Вначале я использовал BETest.exe протестировать мое приложение

> betest.exe /B /S backup.xml /D C:\BackupDestination /X BetestSample.xml
> betest.exe /R /S backup.xml /D C:\BackupDestination /X BetestSample.xml

Работало нормально. Я мог:

Но как только я попытался сделать резервную копию / восстановить файл размером 10 ГБ, BETest вылетел из строя при операции восстановления. Каждый раз. Посмотрел другие инструменты:

С VShadow я набрал:

> vshadow -p -t=c:\bc.xml c:

Я видел, как печатает мой Writer:

enter: DepWriter::Initialize
enter: DepWriter::OnIdentify
enter: DepWriter::OnPrepareBackup
enter: DepWriter::OnPrepareSnapshot
enter: DepWriter::OnFreeze
enter: DepWriter::OnThaw
enter: DepWriter::OnPostSnapshot
enter: DepWriter::OnIdentify
enter: DepWriter::OnBackupComplete
enter: DepWriter::OnBackupShutdown

Мне удалось с помощью MKLink связать теневую копию и просмотреть ее:

> mklink /D c:\snapshots \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy6\

Я мог видеть файлы, которые хотел сделать резервную копию.

Затем я набрал:

> vshadow -r=c:\bc.xml

вывод содержал (среди прочего):

Sending the PreRestore event ...

(Waiting for the asynchronous operation to finish...)
Set restore status for all components components for restore...
  * Writer 'DFS Replication service writer':
    - Select component \SYSVOL\3E53186A-7D53-4667-A3D1-D278B3564CDC-DF424FA9-3080-403E-B7CE-2A81A03A79FA
  * Writer 'MSDNSampleWriter':
    - Select component \TestFiles

Sending the PostRestore event ...
Restore done.

И у меня есть писатель, печатающий:

enter: DepWriter::OnIdentify
enter: DepWriter::OnPreRestore
enter: DepWriter::OnPostRestore

Но моих файлов не было ни в c: \ testPath, ни в c: \ testPath2. Они не были восстановлены.



My VSS Writer - это прямая модификация образца Writer из MSDN, и он отлично работал с небольшим файлом с помощью betest.

Почему VShadow не может восстановить мои файлы и сообщает об этом? Я использую его на Windows Server 2008 R2 64Bits

Я нашел путь...

Нужно использовать переключатель exec = {command}.

в моем случае команда проста:

vshadow -p -t=c:\bc.xml -exec="robocopy pathA pathB"

Я полагаю, что нормальный запросчик сделал бы что-нибудь умнее этого. Скорее всего, он сам найдет альтернативные места, у него будет политика на случай неудачи ... Но я пока не могу придумать лучшего инструмента, чем vshadow.

https://msdn.microsoft.com/en-us/library/windows/desktop/aa384575%28v=vs.85%29.aspx