Контур

автоматизация бухучета и управления персоналом

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

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

MS SQL Server 2005 резервное копированиеНе так давно у одного клиента в результате сбоя на сервере с СУБД MS SQL была повреждена 1 таблица. Таблица хранила в себе списки пользователей, и, в принципе, являлась важной таблицей. К сожалению, просто восстановить таблицу не удалось, последнее резервное копирование осуществлялось более года назад.

Содержимое таблицы пришлось восстанавливать вручную, к счастью, в таблице хранились записи всего о 3 пользователях, и восстановить логины и пароли удалось очень быстро. После восстановления, я решил настроить автоматическое резервное копирование базы данных, чтобы избежать повторения этой ситуации с более крупной таблицей. Почти сразу, после начала поисков решения, я наткнулся на соответствующий топик на сайте SQL.ru. Оказалось автоматическое создание резервных копий базы данных не столь уж сложная операция.

Если вы не знаете SQL команд для выполнения резервного копирования, то можно пойти по тому же пути что и я. Я открыл SQL Server Managment Studio, открыл диалог создания резервной копии. Настроив нужную мне модель резервного копирования, я нажал на кнопку “Script Action to a new Query Window”, которая так же доступна по горячей клавише Ctrl + Shift + N. В результате я получил SQL скрипт позволяющий мне выполнить резервное копирование базы данных.

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

sqlcmd -E –S "localhost" -Q"BACKUP DATABASE [Conteiner] TO DISK = N'C:\Databases\Backup\Conteiner.bak' WITH NOFORMAT, NOINIT,  NAME = N'Conteiner-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10" > backuplog.txt

В этой строке “localhost” – это адрес сервера,  “[Conteiner] – имя базы данных, N'C:\Databases\Backup\Conteiner.bak' путь для сохранения резервной копии, “> backuplog.txt указывает на вывод результатов выполнения команды в текстовый файл. По сути тут одна команда использования утилиты sqlcmd. Справку по параметрам этой команды можно получить обычным способом, то есть выполнив команду “sqlcmd /?”.

Далее я просто настроил выполнения этого командного файла через стандартный Планировщик Задач.

P.S. Для выполнения резервного копирования базы данных существуют и другие пути, которые лучше или хуже текущего. Я не думаю что это наиболее оптимальное решение и подойдет всем, но это простое решение.

 

Источник: http://blog.saddo.ru/