Материал предоставлен сайтом www.learn1c.ru/
В предыдущей главе мы разработали график резервного копирования. Эта глава посвящена практической реализации наших планов.
Автоматический запуск SQL Server Agent
Для автоматического создания резервных копий нам потребуется SQL Server Agent. Обычно он стартует вместе с SQL Server при запуске операционной системы. Проверьте, в каком состоянии он находится у Вас. Для этого запустите программу Service Manager
и в поле "Services" выберите "SQL Server Agent"
Если SQL Server Agent не запущен, запустите его. Обязательно установите галочку "Auto-start service when OS starts". Это избавит Вас от необходимости запускать агента после каждой перезагрузки компьютера.
Выбор модели восстановления данных
Откройте в Enterprise Manager свойства вашей базы данных, перейдите на закладку "Options":
SQL Server предлагает 3 модели восстановления данных:
- Simple. База данных может быть восстановлена на момент последней архивной копии, однако, Вы не сможете восстановить базу данных на момент сбоя;
- Full. База данных может быть восстановлена на момент сбоя независимо от вида операций, которые выполнялись с базой данных в момент сбоя;
- Bulk-Logged. База данных может быть восстановлена на момент сбоя в случае, если с базой данных не выполнялись массовые операции (bulk copy operations):
- SELECT INTO;
- CREATE INDEX;
- Операции с полями типа text и image;
- Операции массовой загрузки (Bulk load operations (bcp and BULK INSERT))
Выбирайте модель "Full". Так Вы будете уверены, что в случае серьезного сбоя не потеряете информацию или потеряете только минимум (потеря информации может произойти, если будет поврежден файл транзакций).
Более подробную информацию о моделях восстановления данных Вы можете найти в Books Online (BOL) по строке поиска "Selecting a Recovery Model" или "Simplify backup and recovery procedures".
Настройка резервного копирования базы данных
Вот мы и добрались до самого интересного…
Сейчас мы настроим автоматическое создание полных резервных копий Вашей базы данных.
Запустите Enterprise Manager, откройте папку "Management", поставьте курсор на "Database Maintenance Plans" и из контекстного меню выберите пункт "New Maintenance Plan…":
Нажмите на кнопку "Далее" в окне приветствия и перейдите к окну выбора баз данных для архивирования:
Пометьте галочкой Вашу базу данных и нажмите кнопку "Далее". Пропустите окна "Update Data Optimization Information" и "Database Integrity Check". Перед Вами появится окно "Specify the Database Backup Plan":
Back up the database as part of the maintenance plan - база данных целиком будет заархивирована при выполнении плана обслуживания.
Verify the integrity of the backup when complete - проверить, что полученный архив читается командой RESTORE VERIFYONLY.
Нажмите кнопку "Change…", чтобы вызвать окно для настройки графика выполнения задания:
Согласно разработанному плану полная копия базы данных должна делаться во все дни недели за исключением воскресенья в 01:00. После настройки параметров нажмите "ОК". Перейдите к следующему окну "Specify Backup Disk Directory":
Здесь Вы можете указать, в какой каталог следует помещать сделанные архивные копии и какое расширение будет у файлов архивных копий.
Если Вы будете архивировать несколько баз данных, имеет смысл поставить галочку "Create a subdirectory for each database". В этом случае для каждой архивируемой базы данных будет создан свой подкаталог, в которой и будут помещаться архивные копии.
На всякий случай можно установить галочку "Remove files older than", чтобы удалять файлы, старше установленных параметров.
Перейдите к следующему окну "Specify the Transaction Log Backup Plan":
Поскольку мы не планируем выполнять резервное копирование файла транзакций вместе с полным копированием базы данных, сбросьте галочку "Back up the transaction log as part of the maintenance plan".
В следующих двух окнах оставьте значения по умолчанию. В последнем окне укажите название плана обслуживания:
На этом создание плана обслуживания завершено. Перейдите в раздел Jobs, и в правой панели Enterprise Manager Вы увидите новое задание:
Оно создано на основе плана обслуживания "Base1C Full Backup". Давайте запустим его и убедимся, что полная копия базы данных делается без ошибок. Щелкните правой кнопкой мыши на названии задания и выберите в контекстном меню пункт "Start Job":
После завершения работы у меня создался файл с именем "Base1C_db_200711290147.bak"
Base1C - это имя архивируемой базы данных;
db - признак того, что это копия базы данных (не файла транзакций);
20071129 - дата создания архивной копии;
0147 - время создания архивной копии.
На этом настройка автоматического создания полных копий базы данных завершена.
Настройка резервного копирования файла транзакций
Переходим ко второй части графика резервного копирования - автоматическому созданию архивов файла транзакций.
Для архивирования файла транзакций мы создадим отдельный план обслуживания. Его настройка почти такая же, как для полной копии базы данных. Отличие лишь в том, что в окне "Specify the Database Backup Plan" надо снять галочку "Back up the database as part of the maintenance plan":
а в окне "Specify the Transaction Log Backup Plan", наоборот, поставить галочку "Back up the transaction log as part of the maintenance plan"
и настроить график выполнения задания
В окне "Specify Transaction Log Backup Disk Directory" делаем настройки, аналогичные плану обслуживания для создания полной копии базы данных:
Расширение архивного файла оставляем по умолчанию - TRN. План обслуживания назовем "Base1C Log BackUp":
Создание плана обслуживания для резервного копирования файла транзакций завершено. Осталось только проверить его работоспособность:
После завершения работы у меня создался файл с именем "Base1C_tlog_200711290227.bak"
Base1C - это имя архивируемой базы данных;
tlog - признак того, что это копия файла транзакций;
20071129 - дата создания архивной копии;
0227 - время создания архивной копии.
Что еще нужно знать про резервное копирование в SQL сервере
Мы закончили настройку SQL сервера для автоматического архивирования данных программы 1С. Но это еще не все, что Вам нужно знать. Прошу Вас запастись терпением еще на 5 минут. Приведенная ниже информация будет Вам полезна:
- В разделе "Backing Up and Restoring System Databases" в BOL говорится:
"Системные базы данных надо архивировать также, как и пользовательские...Важно выполнять архивирование на регулярной основе следующих системных баз данных:- master
- msdb
- model (если она модифицирована)
- distribution (если сервер сконфигурирован как replication Distributor)"
Чтобы быть готовыми к возможным сбоям, включите указанные выше базы данных в план обслуживания, выполняющий полное резервное копирование базы данных 1С в 01:00. - В разделе "Transaction Log Backups" в BOL говорится:
"Когда SQL сервер завершает архивирование файла транзакций, он автоматически удаляет из него неактивную часть. Неактивная часть содержит информацию о полностью завершенных транзакциях, которые больше не используются в процессе восстановления... SQL сервер использует пространство, которое раньше занимала неактивная часть, для записи информации о новых транзакциях вместо того, чтобы увеличивать размер файла транзакций."
Таким образом, регулярно выполняя резервное копирование файла транзакций, мы предотвращаем чрезмерный рост файла транзакций. - Если Вы хотите вручную удалить неактивную часть файла транзакций с целью сокращения его размера, можно выполнить команду
BACKUP LOG ИмяБазы WITH TRUNCATE_ONLY
Сразу после выполнения этой команды сделайте полную резервную копию базы данных. В противном случае, если случится сбой, Вы не сможете восстановить Вашу базу данных.
Вот теперь все! Все, что касается настройки SQL сервера. Архивные копии базы данных и файла транзакций создаются. Осталось дело за малым:
- написать BAT-файлы, которые выполняют упаковку файлов и их перенос с сервера SQL на дополнительный компьютер;
- создать задания в планировщиках заданий SQL сервера и доп. компьютера.
Эту работу я предлагаю сделать Вам самим. Если возникнут какие-то затруднения, обращаетесь по почте или ICQ.
В следующей главе мы рассмотрим процесс восстановления базы данных SQL из архивных копий.
Примечание: в статье отражено мое мнение по резервному копированию баз 1С. Оно может не совпадать с Вашим мнением и / или мнением других специалистов.
Начать дискуссию