План состоит в том, чтобы создать теневую копию довольно большого тома ввода-вывода. Это 350 ГБ, содержащий полнотекстовый индекс на основе файловой системы, организованный в сотни папок и сотни тысяч крошечных файлов, которые должны быть в согласованном состоянии для успешного восстановления.
В настоящее время индексатор остановлен, задание резервного копирования выполняется, а затем индексатор перезапускается. Это приводит к тому, что индекс будет недоступен в течение нескольких часов во время резервного копирования. Я хотел бы делать последовательные резервные копии с помощью теневого копирования, в идеале, без необходимости вообще останавливать индексатор.
Итак, я включил Shadow Copy для этого тома и настроил его для создания снимка раз в ночь на другой том.
Теперь я немного растерялся - как я могу получить доступ к теневой копии в целом, чтобы я мог сделать резервную копию? Я предполагаю диск только для чтения, который содержит файлы такими, какими они были во время последнего снимка, но, возможно, все работает совершенно иначе.
ОС Windows Server 2003 SP2, программное обеспечение для резервного копирования CommVault Galaxy 7.0.
РЕДАКТИРОВАТЬ : Обратите внимание, что - тем временем - были созданы два ответа, которые реализуют необходимую функциональность в виде сценария:
- VBScript (самостоятельно)
- PowerShell ( Джон Гомер )
источник
Ответы:
Итак, в духе изобретения колеса, я представляю вам превосходный сценарий Томалака (см. Выше), но полностью переписанный в Powershell !!! Основная причина, по которой я это сделал, состояла в том, чтобы проповедовать удивительные силы Powershell, а также потому, что я презираю VBScript всем своим существом.
В основном это функция идентичных, но я реализовал некоторые вещи немного по-разному по разным причинам. Вывод отладки определенно более многословен.
Важно отметить, что эта версия определяет версию и разрядность ОС и вызывает соответствующую версию vshadow.exe. Ниже приведена таблица, показывающая, какие версии vshadow.exe использовать, где их найти и как их назвать.
Вот информация об использовании:
Вот сценарий:
Вот версии vshadow.exe для использования:
источник
Итак ... Я работал над небольшим VBScript, который может:
Он опирается на
vshadow.exe
( документацию ), часть пакета Volume Shadow Copy Service SDK 7.2, доступного от Microsoft. Я работал с этой версией: « VSHADOW.EXE 2.2 - образец клиента Volume Shadow Copy, Copyright (C) 2005 Microsoft Corporation ».По сути, это небольшая аккуратная оболочка для этих четырех команд vshadow:
Вот его экран справки:
Вот пример вывода:
А вот и сам скрипт. Применяется обычный отказ от ответственности: Программное обеспечение предоставляется как есть, я не даю никаких гарантий, используйте его на свой страх и риск, если что-то нарушает, виноват только вы. Я проверил это довольно тщательно, хотя и он прекрасно работает для меня. Не стесняйтесь сообщать мне о любых ошибках через комментарии ниже.
Надеюсь, это кому-нибудь поможет. Не стесняйтесь использовать его в соответствии с cc-by-sa . Все, что я прошу, это чтобы вы оставили ссылку нетронутой, которая указывает сюда.
источник
vssadmin list shadows
чтобы получить список всех доступных теневых копий. Вы получите вывод, как это ...Запишите
Shadow Copy Volume
имя для теневой копии, которую вы хотите (проще всего в буфер обмена).Смонтировать теневую копию
В Windows 2003 ...
Вам нужно будет загрузить инструменты комплекта ресурсов на 2003 год, если у вас его еще нет.
Введите команду ...
... где
c:\shadow
путь, по которому вы хотите, чтобы появилась теневая копия, и\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy69
имя, которое вы скопировали выше. Обратите внимание, что вы должны добавить обратную косую черту в конце имени теневой копии!На Windows 2008 и выше ...
Введите команду ...
... где
c:\shadow
путь, по которому вы хотите, чтобы появилась теневая копия, и\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy69
имя, которое вы скопировали выше. Обратите внимание, что вы должны добавить обратную косую черту в конце имени теневой копии!XCOPY
) для доступа к файламc:\shadow
.источник
list shadows
?Вы не понимаете, как VSS работает с файловой системой (как она работает с базами данных совершенно иначе). В файловой системе VSS используется для реализации функции «Предыдущие версии», которая используется исключительно для моментальных снимков изменений файлов и папок в заранее определенные моменты времени для восстановления на вкладке «Предыдущие версии» в клиентах. Затем эти изменения объединяются с данными тома для построения набора восстановления. Таким образом, для выполнения восстановления он зависит от исходного тома, который, другими словами, бесполезен для правильного резервного копирования и восстановления.
Я думаю, вам нужно отступить от того, как вы хотите это сделать, и снова подумать о том, что вы хотите сделать.
350 ГБ данных на самом деле не много, и я готов поспорить, что процент того, что активно используется на повседневной основе, довольно низок. Рассматривали ли вы делать ночные разностные резервные копии с полными резервными копиями только по выходным? Или использовать запланированную репликацию DFS в альтернативное хранилище, чтобы получить «снимок» (который затем будет скопирован)?
источник
Надеюсь, это то, что вы хотите:
diskhadow -s vssbackup.cfg
vssbackup.cfg:
источник
Используя VSS API, можно сделать «снимок» тома. Затем вам нужно смонтировать этот снимок, чтобы скопировать с него. Я знаком с уже мертвым продуктом, который использовал эту технику для репликации данных, несмотря на то, что файлы открывались исключительно другими процессами в действующей файловой системе. Могут возникнуть вопросы о том, являются ли файлы в снимке VSS самосогласованными, если они пишутся приложениями, не интегрированными с API-интерфейсами VSS. Там могут быть другие продукты, которые предлагают аналогичные возможности.
источник
Краткий ответ: вы не можете.
Немного более длинный ответ: сервис теневого копирования может использоваться программно через его API, чтобы разрешить резервное копирование открытых файлов, но сервис не создает полные снимки системы, только частичные снимки.
источник