backup ms sql express

В данной статье мы рассмотрим как настроить автоматическое резервное копирование баз данных MSSQL расположенных на бесплатном MSSQL Express.

Для автоматизации резервного копирования напишем следующий sql скрипт:

Кодировка скрипта должны быть — UCS-2 Little Endian

Рассмотрим параметры скрипта:

Путь куда сохранять резервные копии указывается тут — C:Backup

Имя резервной копии будет начинаться с BASE_backup_ и заканчиваться датой резервного копирования.

Имя базы, которую мы будем сохранять задается тут:

Далее открываем планировщик задач Windows и создаем новую задачу.

В поле «действие» выбираем «Запуск программы»

Путь к программе — «C:Program FilesMicrosoft SQL Server100ToolsBinnSQLCMD.EXE»

Аргументы — -S sqlexpress -i «C:Backup_ScriptDirackup.sql»

-S sqlexpress путь к инстансу MSSQL, в данном примере инстанс sqlexpress

Если у вас используется локальный инстанс укажите просто

-i «C:Backup_ScriptDirackup.sql» путь к созданному SQL скрипту.

Готово! Теперь резервное копирование MSSQL баз автоматизированно!

Похожие статьи

Комментарии

Спасибо за статью. Очень полезна и актуальна.

Небольшая поправочка по синтаксису:
Нужно добавить точку перед указанием Инстанса SQL, в вашем примере:
-S .sqlexpress -i «C:Backup_ScriptDirackup.sql»
Либо указать название сервера полностью: -S server_namesqlexpress -i «C:Backup_ScriptDirackup.sql»
И примечание: при создании задания в «Планировщике задач» указать пользователя, имеющего административные права в SQL Server.
Также удобно добавить к файлику расширение ‘.bak’, чтобы было проще восстановить бэкап.
Ещё Майкрософт не рекомендует использовать в запросе признак конца GO при использовании утилиты «SQLCMD.EXE», так как при его использовании запрос выполняется сразу.
ссылка на статью:

Таким образом, конечный скрипт будет выглядеть так:

declare @path varchar(max)=N’C:BackupBASE_backup_’+convert(varchar(max),getdate(),102)+’.bak’
BACKUP DATABASE [BASE_NAME] TO DISK = @path WITH COPY_ONLY, NOFORMAT, NOINIT, NAME = N’BASE_NAME-Полная База данных Резервное копирование’, SKIP, NOREWIND, NOUNLOAD, STATS = 10

Профессиональная CRM-система для редакций рекламных и информационных газет и журналов

MS SQL Express лишен агента, при помощи которого можно выполнять задачи по расписанию, но можно воспользоваться и стандартными средствами Windows.

Очень часто для небольших проектов хватает и Express версии SQL сервера. Одна из проблем –это то, что у Express версии нет SQL Agent службы, при помощи которой можно делать некоторые задачи по расписанию. Взамен можно использовать SQLCMD и стандартный Scheduled Tasks от Windows. Первое, что нужно сделать, это написать скрипт, который создавал бы для нас необходимые бэкапы. Для его генерации можно воспользоваться MS Management Studio (ее тоже можно скачать для Express версии) и на окне создания бэкапа нажать не OK, а “Script Actions to …”.

Я же использую обычно в таких задачах следующий скрипт:

Этот скрипт создает бэкап с именем файла db_backup_YYYYDDMM.bak где YYYYDDMM – это текущая дата. Дата в имени файла позволит нам создавать каждый день бэкап в новом файле. Запустите и проверьте что бэкап действительно создается такой какой вам и нужен. Этот скрипт сохраняем в какой-нибудь папке под именем schedule.sql, предположим c:sheduled tasks. В этой же папке создадим исполняемый файл backup.bat, следующего содержания:

Где меняем SERVERNAME – имя сервера, UserName – имя пользователя, Password – пароль пользователя, schedule.sql – имя сохраненного скрипта. Вторая и третья строка батника архивирует бекап в zip файл и удаляет сам файл бекапа. Для того чтобы работала архивация необходимо установить архиватор 7z и прописать полные пути до исполняемого файла 7z.exe либо положить 7z.exe и 7z.dll в ту же папку, где располагаются скрипты. Теперь можем запустить исполняемый файл backup.bat и проверить проработает ли он так как нужно. Последний шаг это записать schedule в задачи windows. Запускаем Task Scheduler из меню Пуск, либо набираем в командной строке taskschd.msc. В разных версиях Windows это выглядит по разному, да и информацию о том как сделать задачу можно прочитать в помощи Windows. Основное – это запускать задачу от имени пользователя с достаточными правами на используемые папки. При помощи таких действий можно так же запрограммировать и любые другие задачи. В скрипте schedule.sql можно перед бекапом вызвать какие-либо необходимые процедуры, может переиндексирование или сжатие базы данных.

Пример готового набора файлов для автоматического бэкапа: Готовый номер файлов с программой 7z

Microsoft SQL Server Express — это freeware версия SQL Server, соответственно, она имеет ряд ограничений. Один из главных недостатков бесплатной версии, пожалуй, отсутствие возможности делать бэкапы штатными средствами. Но работать без резервного копирования — не вариант. Что же делать? Мы предлагаем простое решение, которое поможет сохранить нужные данные.

Процесс создания резервной копии MS SQL Express делится на два этапа:

  1. Создание файла backup.bat с командами Windows.
  2. Создание MS SQL скрипта backup.sql, в котором находятся команды для резервного копирования базы.

Итак, что же содержит файл backup.bat?

DECLARE @pathName NVARCHAR(512)
SET @pathName = ‘D:mssqlbackupdb_backup_’ + CONVERT(VARCHAR(8), GETDATE(), 112) + ‘.bak’
BACKUP DATABASE [db_name] TO DISK = @pathName WITH NOFORMAT, NOINIT, NAME = N’db_backup’, SKIP, NOREWIND, NOUNLOAD, STATS = 10

@pathName — указывает директорию и имя файла. В нашем примере будет создан бэкап db_backup_10082011 (если создавать бэкап 10.08.2011)

Теперь начинка файла backup.sql.

sqlcmd -S SERVER -U USER -P PASSWORD -i backup.sql
«c:Program FilesWinRARRar.exe» a -m2 d:mssqlbackupdb_backup_%date%.rar d:mssqlbackupdb_backup_*.bak
del d:mssqlbackupdb_backup_*.bak

Вместо SERVER необходимо ввести адрес сервера, вместо USER, соответственно, имя пользователя, ну а вместо PASSWORD, как вы уже поняли, пароль.

Скрипт backup.sql также архивирует базу данных.

Теперь в Windows планировщике нужно создать задание, раз в сутки (можно и чаще/реже) запускать файл backup.bat

Comment ( 1 )

перепутали содержание bat и sql файлов в описании.

Оцените статью