понедельник, 19 июля 2010 г.

Резервное копирование БД в MS SQL Express

Как известно в  любой из версий бесплатного SQL сервера от Microsoft нет встроенных средств для автоматизации резервного копирования БД.

Самый простой способ который я нашла для себя  - это использовать скрипт, который создает резервную копию БД, потом упаковывать ее в архив и хранить столько ежедневных или еженедельных копий, сколько будет необходимо.

Скрипт для запуска резервного копирования (запускается по расписанию любым шедуллером)

echo off
cd "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\"
rem Авторизуемся на sql сервере и запускаем скрипт
sqlcmd -i C:\Backup\backup.sql -S ServerName -e -U SA -P Password
rem Архивируем созданные резервные копии
c:\Backup\rar.exe a -m5 -s -y -ep1 -r "c:\backup\sql1.rar" "c:\backup\sql\*.*"
rem Удаляем самую старую копию
del c:\backup\sql7.rar /s
rem Переименовываем копии
move c:\backup\sql6.rar c:\backup\sql7.rar /q/s
move c:\backup\sql5.rar c:\backup\sql6.rar /q/s
move c:\backup\sql4.rar c:\backup\sql5.rar /q/s
move c:\backup\sql3.rar c:\backup\sql4.rar /q/s
move c:\backup\sql2.rar c:\backup\sql3.rar /q/s
move c:\backup\sql2.rar c:\backup\sql2.rar /q/s


Sql скрипт, который собственно и создает копии БД

BACKUP DATABASE [DataBaseName] TO DISK = N'c:\backup\sql\DataBaseName.bak' WITH NOFORMAT, NOINIT, NAME = N'basename-DataBaseName serverName', SKIP, NOREWIND, NOUNLOAD, STATS = 10

Комментариев нет: