SQL сервер для 1С: резервное копирование базы данных (теория)

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

Материал предоставлен сайтом www.learn1C.ru/

Системные администраторы делятся на 2 категории:
Те, которые еще не делают резервные копии;
Те, которые уже делают резервные копии.

© откуда-то из сети

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

Готовы? Тогда начнем …

Разработка графика резервного копирования

График создания резервных копий сначала нужно спроектировать и лишь затем воплощать в жизнь. Вы должны ясно представлять, для чего Вы это делаете и как это скажется на работе предприятия. Поэтому давайте вначале определимся, каким требованиям должно удовлетворять архивирование данных 1С. Вот несколько пожеланий:

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

Имейте в виду, что в процессе создания резервной копии, программа 1С, как правило, начинает "тормозить", что вызывает бурю негодования со стороны пользователей. И пусть архивные копии жизненно необходимы для предприятия (уж Вы то об этом знаете), но, если они сильно мешают процессу продажи (производства и т.п.), Вас за такое архивирование не поблагодарят.

Учитывая выше сказанное, давайте разработаем график создания резервных копий для предприятия, работающего по пятидневке с 9:00 до 18:00. Я предлагаю следующий вариант:

  • В 01:00 делается полная копия базы данных. Ночью с программой никто не работает, поэтому нет ничего страшного, если этот процесс будет идти продолжительное время.

    Полные копии делаются каждый день за исключением воскресенья. Субботняя копия нужна, чтобы ускорить процесс восстановления базы данных в случае, если сервер вышел из строя в выходные дни;
  • Начиная с 9:00 и до 18:20 делаются архивные копии журнала транзакций с интервалом 20 минут. Такие архивы делаются довольно быстро и практически не заметны для пользователя. С другой стороны в случае сбоя мы сможем восстановить программу, потеряв максимум последние 20 минут работы пользователей.

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

Чтобы процесс создания копий шел быстрее, лучше всего создавать архивные копии на локальном диске сервера, а потом по сети переносить их на другой компьютер. На втором компьютере архивные копии запаковываются архиватором, например, 7zip и переносятся на сменный носитель, например, DVD-RW. На втором компьютере можно хранить резервные копии за последние несколько дней на случай, если вдруг потребуется быстро восстановить базу данных.

Теперь рассмотрим весь процесс более детально. Для наглядности представим его в виде таблицы:

Время Операция и место выполнения операции
SQL сервер Доп. компьютер
01:00 Создание полной копии базы данных на локальном диске средствами SQL сервера.

Время выполнения, например, 30 минут.
 
02:00 Упаковка файла резервной копии средствами программы 7zip (запуск BAT-файла через планировщик).

Запуск BAT-файла намечен на 02:00, а не на 01:30, чтобы быть уверенным, что создание архивной копии завершено.

Время упаковки, например, 20 минут.
 
03:00   Копирование упакованного файла резервной копии на доп. компьютер, удаление обоих файлов резервной копии (упакованного и не упакованного) с SQL сервера (запуск BAT-файла через планировщик).
09:00 Создание архива файла транзакций средствами SQL сервера.  
09:10   - Копирование архива файла транзакций на доп. компьютер;
- удаление архива с SQL сервера;
- упаковка архива файла транзакций программой 7zip.
09:20 Создание архива файла транзакций средствами SQL сервера.  
09:30   - Копирование архива файла транзакций на доп. компьютер;
- удаление архива с SQL сервера;
- упаковка архива файла транзакций программой 7zip.
...
18:20 Создание архива файла транзакций средствами SQL сервера.  
18:30   - Копирование архива файла транзакций на доп. компьютер;
- удаление архива с SQL сервера;
- упаковка архива файла транзакций программой 7zip.

 

В 18:30 запускается последняя за день процедура из нашего графика резервного копирования. На SQL сервере в папке архивных копий не остается ни одного файла, все файлы архивов перенесены на дополнительный компьютер. Такое решение удобно тем, что человеку не надо вручную перемещать файлы с SQL сервера, чтобы освободить на нем место.

На самом деле вопрос о свободном месте на сервере отнюдь не праздный. Если базе данных не хватит места на диске, Вы рискуете остановить работу предприятия.

Особенности создания резервных копий программы 1С

Описанный выше график выполнения резервных копий надо скорректировать, учитывая, что с базой данных работает программа "1С:Предприятие 7.7".

В формате SQL сервера хранится только база данных. Другие файлы, которые будут необходимы в случае восстановления из архивной копии, хранятся в каталоге информационной базы (ИБ). Ниже приведен список наиболее значимых из них:

  • файл конфигурации 1cv7.md;
  • файл словаря данных 1cv7.dds;
  • файл 1cv7.dba, хранящий информацию о подключении к SQL серверу;
  • файл журнала 1cv7.mlg;
  • файл пользователей users.usr;
  • рабочие каталоги пользователей;
  • папка ExtForms (в случае необходимости).

Вообще можно делать архивную копию всего каталога ИБ за исключением папки ExtDb, в которой хранится адресный классификатор. Архив, правда, будет занимать гораздо больше места, но зато не будет проблем с процедурой восстановления.

Я предлагаю делать архивную копию каталога ИБ в 02:00 тем же BAT-файлом, который упаковывает файл полной копии базы данных.

В 03:00 BAT-файл, запускаемый на дополнительном компьютере, выполнит перенос файла архивной копии каталога ИБ с сервера SQL на дополнительный компьютер.

В результате, если вдруг возникнет необходимость восстановить программу 1С за день X, в Вашем распоряжении будут:

  1. архив каталога ИБ по состоянию на утро дня X;
  2. полная копия базы данных по состоянию на утро дня X;
  3. набор архивов файла транзакций за день X

т.е. все, что надо для успешного восстановления из архивной копии.

Что еще следует знать об SQL версии 1С

Предложенная схема будет хорошо работать, если в течение дня не вносить изменения в конфигурацию. Я говорю об окне, которое высвечивается, если Вы изменяете структуру метаданных:

Очистка файла транзакций при реструктуризации

В сообщении говорится, что файл транзакций был очищен. Для нас это означает следующее - на основании полной копии базы данных, сделанной в 01:00 мы больше не сможем восстановить базу данных.

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

Если полную копию базы данных не сделать, то при попытке восстановления базы из архива Вы скорее всего получите подобное сообщение:

Ошибка при восстановлении из резервной копии

На этом теоретическая часть закончена. В следующей мы главе перейдем к практическим занятиям.

Примечание: в статье отражено мое мнение по резервному копированию баз 1С. Оно может не совпадать с Вашим мнением и / или мнением других специалистов.


Начать дискуссию