VSS Backup: Резервное копирование открытых (заблокированных) файлов 1C, Outlook (*.pst) и других.
Проблема резервного копирования открытых файлов
Если вы сталкивались с проблемой копирования занятых файлов, которые в данный момент используются другим приложением (т.е. заблокированными), то эта статья для вас. В файловой системе существуют так называемые монопольные блокировки файлов, которые недоступны даже для чтения другими приложениями.
Примеры открытых файлов:
- файлы MS Outlook (*.pst, *.ost)
- файлы MS Exchange Server
- диски виртуальных машин - Virtual Hard Disk (файлы VHD, VHDX)
- файлы MS SQL Server (*.mdf, *.ldf)
- файлы MS Access (*.mdb, *.ldb)
- файлы MS Word, MS Excel (*.docx, *.xlsx)
- файлы NTUSER.dat в папке с профилями пользователей C:\Users
- и другие
Например, в MS Outlook все ваши данные (почта, контакты, задачи, календарь) хранятся в файле вида:
"C:\Users\<Ваш профиль>\Documents\Файлы Outlook\yourname@domain.com.pst"
или
"C:\Users\<Ваш профиль>\AppData\Local\Microsoft\Outlook\yourname@domain.com.pst",
в зависимости от настроек, расположенных в меню "Файл -> Настройка учетных записей", вкладка "Файлы данных".
Если Microsoft Outlook открыт, то к файлу PST нет доступа даже на чтение и при попытке резервного копирования PST-файла в другую папку вы получите сообщение об ошибке:
Процесс не может получить доступ к файлу, так как этот файл используется другим процессом.
(The process cannot access the file because it is being used by another process).
или текст ошибки может выглядеть немного иначе:
0x80070021: Процесс не может получить доступ к файлу, так как часть этого файла заблокирована другим процессом (Отказано в доступе).
0x80070021: The process cannot access the file because another process has locked a portion of the file (Access denied).
Решение проблемы резервного копирования занятых (открытых) файлов
Существует 2 способа:
- Перед созданием дубликата файлов закрыть программу, которая использует эти файлы. Например, вы можете жестко закрыть MS Outlook ("убить" процесс), используя команду: taskkill /im outlook.exe /f
- Использовать Volume Shadow Copy для "горячего" копирования открытых файлов (заблокированных файлов).
Первый способ - слишком жесткий и не всегда возможен, т.к. иногда для снятия задачи (kill process) в Диспетчере задач требуются повышенные привилегии. К тому же, целостность данных не гарантирована, поскольку во время жесткой выгрузки процесса из памяти этот процесс может производить запись на диск и тогда файл останется поврежденным (недописанным).
Второй способ - более гуманный, так как использует технологию теневого копирования тома Volume Shadow Copy от Microsoft и гарантирует целостность данных на диске.
Ниже будет рассмотрен способ создания копии файлов "на горячую", которые используются другим приложением, то есть 2 способ с помощью утилиты Exiland Backup Professional.
Что такое горячее или теневое копирование (shadow copying)?
Теневое копирование - это технология Microsoft, которая позволяет копировать файлы, занятые другим приложением. Это возможно благодаря созданию мгновенного снимка файловой системы (Shapshot), в то время как файловая система продолжает работать в штатном режиме без каких-либо блокировок. Таким образом, процесс создания дубликата возможен без прерывания работы текущих приложений. Служба теневого копирования VSS - Volume Shadow Service работает фоном и осуществляет доступ к данным на диске, даже если файл в этот момент используется другим приложением. Целостность данных при этом не нарушается.
ОБРАТИТЕ ВНИМАНИЕ!. Технология Volume Shadow Copy относится ко всему диску целиком, а не к отдельным файлам на диске, таким образом, вы не сможете создать теневую копию какого-либо отдельного файла. Тем не менее, вы можете сначала создать копию всего тома, затем подключить ее в системе как отдельный логический диск, например, Z:\ и после этого выборочно скопировать нужные вам файлы с этого диска (из shadow копии).
Где хранятся теневые копии и сколько занимают места?
Теневые копии тома, как правило, хранятся в скрытой системной папке "System Volume Information", расположенной в корне каждого диска. Размер одной теневой копии диска составляет около 100-300 МБ, что значительно меньше суммарного объема данных, хранящихся на диске. Место под хранение таких копий на диске отведено системой заранее и вам не нужно об этом беспокоиться.
Как Exiland Backup Professional копирует залоченные файлы
В программе Exiland Backup, начиная с версии 4.9, резервное копирование открытых файлов, таких как MS Outlook (pst, ost), MS Access (*.mdb), MS SQL Server (*.mdf) и других полностью автоматизировано. Если у вас нет глубоких знаний операционной системы или вы просто хотите сэкономить время, используйте Exiland Backup. Утилита взаимодействует со службой теневого копирования, встроенной в операционную систему Windows.
Алгоритм горячего бэкапа в Exiland Backup достаточно простой:
- сначала программа создает временную теневую копию тома (слепок файловой системы - snapshot), из которого необходимо скопировать файлы.
- затем созданная копия подключается как логический диск
- производится копирование выбранных файлов с подключенного диска (из теневой копии) в папку назначения
- удаление этой временной копии.
Как настроить копирование файлов Outlook (PST, OST), не закрывая Outlook у пользователей
При создании задания вы указываете исходные файлы и папки. Если вы знаете, что исходные файлы во время создания бэкапа могут использоваться другим приложением, то установите опцию "[x] Использовать теневое копирование VSS (Volume Shadow Copy) для диска", как показано на скриншоте ниже. Если исходные данные расположены на нескольких дисках, то программа предложит создание теневых копий для нескольких томов поочередно.
Процесс копирование открытых файлов
Во время выполнения задания в журнале будет видно, что программа сначала создает временную теневую копию диска C, затем копирует из нее данные, а после выполнения задания удаляет ранее созданную shadow копию, чтобы она не занимала место на диске. Пример журнала выполнения задания показан ниже.
Таким образом, нам удалось создать резервную копию нужных нам залоченных файлов "нагорячую" благодаря поддержки VSS в Exiland Backup Professional. Главное удобство в том, что не нужно никого "выгонять" из программ - копирование происходит незаметно для пользователя.