Формируем список баз 1с из разных источников

  оглавление  Уведомляем пользователей об успешных операциях с базами

Настраиваем теневое копирование для архивации в обновляторе

Что такое теневое копирование

Это технология операционной системы, которая позволяет копировать файлы, которые в данный момент заблокированы другими приложениями или даже самой операционной системой.

Обновлятор поддерживает создание теневых копий для всех версий Windows начиная с XP и Server 2003.

Теневое копирование позволяет нам в любой момент создать моментальный снимок диска и такая копия будет согласованной на уровне файловой системы.

Что значит согласованной? Это значит, что такая копия будет на самом деле моментальной. То есть не получится ситуации, что, пока мы копируем одну часть данных, успевает измениться другая часть данных.

Как это работает

Зачем теневое копирование в обновляторе

Да, обновлятор поддерживает автоматическую блокировку пользователей для типовых баз 1с 8.

Но бывают случаи:

  • когда файловая база не поддерживает автоматическое завершение работы пользователей, потому что она не типовая или вообще версии 7.7;
  • либо база поддерживает блокировку пользователей, но по каким-то причинам нам требуется создавать копии не выгоняя пользователей (например, база должна работать 24х7 или нужно создавать копии каждый час);
  • мы хотим подстраховаться на случай, если не удастся корректно завершить работу пользователей;
  • идёт речь об архивации произвольных файлов (документы или данные других программ) и в этом случае у нас нет возможности обеспечить завершение работы пользователей с этими файлами на время архивации.

И всё-таки насколько безопасно делать теневые копии баз 1с

Если коротко, то ответ будет таким:

  • делать теневые копии файлов серверных баз 1с абсолютно безопасно во всех случаях (если речь идёт о ms sql server)
  • делать теневые копии файловых баз 1с при работающих пользователях равнозначно тому, как если бы мы сначала провели аварийное завершение работы этих пользователей (выдернули сетевой кабель или перезагрузили компьютер) и уже затем сняли полную копию базы

Если говорить подробнее, то вам нужно в начале ознакомиться с разделом выше "Как это работает", особенно в части описания компонента теневого копирования Writers.

Раз нет Writers для платформы 1с (а его и быть не может для файлового варианта работы), то никто нам не может гарантировать корректного создания теневой копии базы данных. Да, такая копия будет абсолютно корректной и согласованной на уровне файловой системы, но она может не быть такой на логическом уровне.

Поэтому если есть возможность блокировать пользователей файловой базы данных перед её архивацией - лучше так и делать. А теневое копирование включить на тот случай, если выгнать пользователей не удалось и файл базы данных остался заблокированным.

Там где нет возможности (технически или из-за условий работы) выгонять пользователей на время архивации - там и рассуждать нечего, теневое копирование в этом случае будет лучшим и единственным выходом. Но тогда лучше постараться делать его как можно чаще.

Как включить теневое копирование в обновляторе

Прежде всего настроим запуск менеджера теневых копий. Для этого перейдём на закладку "Настройки программы" и нажмём кнопку "Теневые копии":

В открывшемся окне нажмём кнопку "Настроить и запустить менеджер теневого копирования"...

... и укажем под какой учётной записью (с правами администратора) будет работать менеджер:

Замечание для Windows XP и server 2003

Готово:

Теперь зайдём в свойства базы, перейдём на закладку "Архивация" и установим галку "Использовать теневое копирование". Доступно 2 варианта:

Внимание! У вас в свойствах базы нет пункта "Использовать теневое копирование"? Это значит, что вы пытаетесь включить теневое копирование для клиент-серверной, а не файловой базы. Для клиент-серверных баз резервное копирование без монопольного доступа реализуется по-другому, средствами СУБД - ссылка на инструкцию.

Если выбрать вариант "не выгоняя пользователей", то при обычной архивации обновлятор даже не будет пытаться завершить работу активных пользователей, а будет сразу создавать теневую копию базы.

Если выбрать вариант "предварительно выгоняя пользователей", то обновлятор будет в любом случае сначала выгонять пользователей, а уже затем снимать теневую копию базы. При этом если пользователей выгнать не удастся - такая копия будет отмечена как "грязная"; при этом на уровне файловой системы она будет абсолютно полной и согласованной, так как будет снята с теневой (моментальной) копии диска.

Есть ли какие-то ограничения  для работы теневых копий в обновляторе

1. Служба операционной системы с именем "Теневое копирование тома" не должна быть отключена. Обычно у неё стоит тип запуска "Вручную".

2. Пользователь, под которым вы запускаете обновлятор для настройки запуска менеджера теневого копирования должен иметь права администратора.

3. Пользователь, под которым запускается менеджер теневого копирования должен иметь права администратора.

4. На Windows Xp и Server 2003 для работы самого менеджера теневого копирования нужно указывать учетную запись, под которой никто не работает. Иначе процесс менеджера теневого копирования будет виден этому пользователю.

5. Создание теневых копий возможно для данных, которые лежат на локальном диске с операционной системой NTFS. То есть не поддерживается создание теневых копий для сетевых дисков или сетевых путей.

Решение проблем при создании теневых копий

Если при создании теневой копии возвращается сообщение об ошибке (например, "The creation of a shadow copy is already in progress"), то порядок действий должен быть таким:

  1. Перезапуск службы "Теневое копирование тома".
  2. Повторная настройка запуска менеджера теневого копирования обновлятора.

Почему вообще могут возникать проблемы с созданием теневых копий?

  • возможно вы пытаетесь создать теневую копию диска, который не поддерживает эту операцию (сетевой диск или сетевой путь или старая файловая система);
  • компьютер был выключен аварийно в момент создания теневой копии;
  • на компьютере работают сразу несколько программ, которые используют теневое копирование и их расписания пересекаются; то есть возникает ситуация, когда в момент создания теневой копии в систему поступает запрос на создание ещё одной копии этого же диска;

Также на диске, теневая копия которого создаётся, должно быть достаточно свободного места для временного хранения теневой копии.

Технические подробности реализации теневых копий в обновляторе

За создание теневых копий в обновляторе отвечает процесс Updater1C.VssManager.exe.

Когда пользователь настраивает его запуск из интерфейса обновлятора в планировщике задач создаётся задание с именем "Обновлятор-1С [запуск менеджера теневого копирования]", которое отвечает за запуск процесса Updater1C.VssManager.exe от имени администратора при включении компьютера.

При архивации обновлятор обращается к этому менеджеру для создания теневой копии, а затем просит удалить созданную копию.

Для работы с теневыми копиями используется библиотека AlphaVSS (эта же библиотека используется  программой Cobian Backup).