Автоматическое резервное копирование баз данных

Введение

Резервное копирование баз данных всегда было основой при администрировании СУБД. У многих систем управления базами данных имеются собственные средства для резервного копирования, либо же это можно осуществлять  различными надстройками. Но у многих таких систем резервное копирование необходимо осуществлять в ручном режиме. А для того чтобы автоматизировать этот процесс, для обычных пользователей это становится трудновыполнимой задачей.

В данной статье мы рассмотрим универсальный способ создания копий баз данных различных типов СУБД. Мы будем архивировать текущие файлы баз данных. Например, для SQL Server необходимо сохранить файлы MDF и LDF для того чтобы она полноценной функционировала, для MS Access достаточно только один файл c расширением базы данных (в зависимости от версии MS Access).

Кроме того, данный способ можно использовать и для резервного копирования любых других типов файлов: графических, текстовых или же любых других форматов. Для универсального способа автоматического копирования нам потребуется разработать BAT-файл и иметь в наличие архиватор, в нашем случае 7-zip. Его можно бесплатно скачать с официального сайта.

Создание bat-файла для автоматического резервного копирования

Для резервного копирования баз данных или любых других файлов, нам необходимо разработать  BAT-файл. Самое главное здесь – это использование архиватора 7-zip. Его необходимо установить на компьютер, на котором будет происходить резервное копирование данных.

Общий синтаксис для команды архивирования выглядит следующим образом:

7z [команда] [ключ] [путь к архивному выходному файлу] [путь к объекту архивирования]

Описание ключей и команд вы можете посмотреть в командной строке 7z —help. Поэтому я здесь не буду описывать каждую команду или ключ, при желании можете посмотреть описание, используя команду выше.

Что мы делаем дальше: обычно я копирую в каталог, откуда будет запускаться обработчик резервного копирования, файл 7z.exe (копирую его из каталога, куда вы устанавливали архиватор 7-zip). Я делаю для того, чтобы не указывать постоянно путь в BAT-файле, где установлен сам архиватор.  Если вы не знаете, как создать BAT-файл, то необходимо создать обычный текстовый файл и поменять ему расширение с TXT на BAT, причем в дальнейшем, BAT-файлы можно просматривать и редактировать через обычные текстовые редакторы.

Сам BAT-файл для резервного копирования данных у меня выглядит следующим образом:

set sFolderName=%date%_%time:~0,-6%
7z a D:\backup\"%sFolderName::=-%".zip "C:\result.txt"

Первой строчкой в переменную записываем текущую дату и время архивирования (это будет имя нашего архива, хотя вы можете задавать его любым), а затем при помощи команды 7z a указываем путь и имя выходного архива и через пробел объект резервного копирования, в моем случае это файл result.txt. После запуска файла резервного копирования в каталоге должен появиться архив:

Список файлов для backup
Список файлов для backup

Чтобы сделать резервное копирование базы данных SQL Server, необходимо перед копированием останавливать сам сервер, так как файлы базы данных будут заняты, и их нельзя будет добавить в архив. Поэтому лучше всего backup запускать тогда, когда пользователи не работают с БД, обычно это происходит в ночное время. В этом случае BAT-файл у меня выглядит следующим образом:

net stop MSSQL$SQLEXPRESS
set sFolderName=%date%_%time:~0,-6%
7z a D:\backup\"%sFolderName::=-%".zip "C:\base.mdf"
7z a D:\backup\"%sFolderName::=-%".zip "C:\base_log.ldf"
net start MSSQL$SQLEXPRESS

Сначала мы останавливаем службу сервера, добавляем два файла БД в архив и затем запускаем службу сервера. В итоге в архиве должно быть два файла: один с расширением MDF, а второй с расширением LDF.

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

Для того чтобы архивировать файл, даже если он занят другим приложением, необходимо применить ключ ssw для команды 7z, то есть, это будет выглядеть следующим образом:

set sFolderName=%date%_%time:~0,-6%
7z a -ssw D:\backup\"%sFolderName::=-%".zip "C:\base.mdf"
7z a -ssw D:\backup\"%sFolderName::=-%".zip "C:\base_log.ldf"

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

Настройка автоматического резервного копирования

Теперь чтобы как-то автоматизировать резервное копирование, запускать его не вручную, а в автоматическом режиме, необходимо создать назначенное задание в операционной системе Windows.  Для этого заходим в Пуск->Панель управления->Назначенные задания (для Windows XP) или же Пуск->Панель управления->Администрирование->Планировщик заданий (для Windows 7).

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

Назначенное задание для backup
Назначенное задание для backup

Существуют также другие платные и бесплатные программные продукты, которые позволяют в определенное время и дни запускать другие приложения. Как создавать автоматический запуск backup-файлов решаете только вы.

Заключение

Это один из простых и универсальных методов архивирования и резервирования данных. Он подходит практически для любых типов СУБД, а также различных форматов файлов. Данным способом можно делать резервное копирование не только баз данных, но и других важных документов.

Используя команды и ключи архиватора 7-zip, вы можете настраивать выходной архив под свои параметры, например, устанавливать степень сжатия, тип архива, задавать пароль для архива, при желании удалять файлы после архивации и многое другое.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Была ли эта статья полезна?

Статьи по теме

Оставить комментарий

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