Автоматический бэкап БД на SQL Server Express Edition: различия между версиями
Smorodin (обсуждение | вклад) |
Smorodin (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
= Создание исполняемого файла = | = Создание исполняемого файла = | ||
| − | Создаем текстовый файл, например backupGTD следующего содержания: | + | '''''Создаем текстовый файл, например backupGTD следующего содержания: |
| − | sqlcmd -S DECLSERVER\SQLGTD -E -Q "declare @s varchar(255) set @s='E:\backup\GTD_' + convert(varchar(1), datepart(dw, getdate())) + '.bak' backup database GTD to disk = @s with init, noformat, skip, nounload" | + | |
| + | '''''sqlcmd -S DECLSERVER\SQLGTD -E -Q "declare @s varchar(255) set @s='E:\backup\GTD_' + convert(varchar(1), datepart(dw, getdate())) + '.bak' backup database GTD to disk = @s with init, noformat, skip, nounload" | ||
Sqlcmd позволяет вводить инструкции Transact-SQL, системные процедуры и файлы скриптов из командной строки в редактор запросов в режиме SQLCMD | Sqlcmd позволяет вводить инструкции Transact-SQL, системные процедуры и файлы скриптов из командной строки в редактор запросов в режиме SQLCMD | ||
где: | где: | ||
| − | -S -задает имя сервера server[\instance_name] | + | '''''-S''''' -задает имя сервера server[\instance_name] |
| − | DECLSERVER\SQLGTD – имя сервера\имя экземпляра на котором крутится база. | + | '''''DECLSERVER\SQLGTD''''' – имя сервера\имя экземпляра, на котором крутится база. |
| − | -E -Использует для соединения с SQL Server вместо имени пользователя и пароля доверительное соединение. | + | '''''-E''''' -Использует для соединения с SQL Server вместо имени пользователя и пароля доверительное соединение. |
| − | -Q " cmdline query " - При запуске программы sqlcmd выполняет запрос, но выход из программы по завершении его выполнения не производится. Может быть выполнено несколько запросов, разделенных точкой с запятой. Заключайте запрос в кавычки, как показано выше. | + | '''''-Q " cmdline query " ''''' - При запуске программы sqlcmd выполняет запрос, но выход из программы по завершении его выполнения не производится. Может быть выполнено несколько запросов, разделенных точкой с запятой. Заключайте запрос в кавычки, как показано выше. |
| − | declare – объявляем переменную s ,имя переменной всегда начинается с @, поэтому @s. В нашем случае @s это папка (диск) хранения бэкапов. | + | '''''declare''''' – объявляем переменную s ,имя переменной всегда начинается с @, поэтому @s. В нашем случае @s это папка (диск) хранения бэкапов. |
| − | varchar(n) – задает тип переменной @s как строковый с длинной строки n, в примере 255 символов | + | '''''varchar(n)''''' – задает тип переменной @s как строковый с длинной строки n, в примере 255 символов |
| − | set – задает значение переменной @s, в примере это папка backup на диске E (E:\backup\), далее задается имя бэкап файла , где набор функций convert(varchar(1), datepart(dw, getdate())) возвращает в текстовом формате с длинной в 1 символ текущий день недели (понедельник – 1, вторник – 2, и т.д.) и добавляется расширение bak? На выходе получим файл с именем GTD_номер дня недели.bak. | + | '''''set''''' – задает значение переменной @s, в примере это папка backup на диске E (E:\backup\), далее задается имя бэкап файла, где набор функций convert(varchar(1), datepart(dw, getdate())) возвращает в текстовом формате с длинной в 1 символ текущий день недели (понедельник – 1, вторник – 2, и т.д.) и добавляется расширение bak? На выходе получим файл с именем GTD_номер дня недели.bak. |
| − | backup – создает бэкап | + | '''''backup''''' – создает бэкап |
| − | database – указывает на создание бэкапа всей базы | + | '''''database''''' – указывает на создание бэкапа всей базы |
| − | GTD – в нашем примере имя базы на SQL сервере | + | '''''GTD''''' – в нашем примере имя базы на SQL сервере |
| − | to disk – указывает на тип устройства резервного хранения, файл жесткого диска, и указана переменная @s, которой присвоено путь и имя создаваемого файла. | + | '''''to disk''''' – указывает на тип устройства резервного хранения, файл жесткого диска, и указана переменная @s, которой присвоено путь и имя создаваемого файла. |
| − | with init, noformat, skip, nounload –указывает на то что необходимо произвести перезапись данных по кругу с переопределением заголовков, что позволит нам иметь 7 файлов бэкапа на каждый день недели перезаписываемые по кругу. | + | '''''with init, noformat, skip, nounload''''' –указывает на то, что необходимо произвести перезапись данных по кругу с переопределением заголовков, что позволит нам иметь 7 файлов бэкапа на каждый день недели, перезаписываемые по кругу. |
| − | + | ''Примечание: При необходимости можно использовать массу других функций, например сжатие, см. справку по запросам и функциям Transact-SQL». | |
| − | Меняем расширение текстового файла на .cmd (получаем backupGTD.cmd). | + | '''''Меняем расширение текстового файла на .cmd (получаем backupGTD.cmd). |
| + | |||
| + | '''''[[Запускать необходимо с той машины, где установлена БД MS SQL]] | ||
| + | |||
| + | ''Примечание: Готовый файл находится в папке X:\Alta\utils | ||
| − | |||
| − | |||
= Автоматизация процесса = | = Автоматизация процесса = | ||
| − | Автоматизируем процесс (на примере | + | Автоматизируем процесс (на примере Microsoft Windows Server 2008): |
| + | |||
| − | Диспетчер сервера->Конфигурация-> | + | * Заходим в Диспетчер сервера -> Конфигурация -> Планировщик заданий -> Библиотека планировщика заданий. |
| − | |||
| + | * Создаем простую задачу: | ||
[[Файл:SozdatZadachu.jpg]] | [[Файл:SozdatZadachu.jpg]] | ||
| − | Задаем имя и описание, | + | |
| + | * Задаем имя и описание, | ||
[[Файл:SozdatZadachu2.jpg]] | [[Файл:SozdatZadachu2.jpg]] | ||
| − | + | ||
| + | * Указываем периодичность (ежедневно), | ||
[[Файл:SozdatZadachu3.jpg]] | [[Файл:SozdatZadachu3.jpg]] | ||
| − | + | ||
| + | * Регулярность повторений и время выполнения, | ||
[[Файл:SozdatZadachu4.jpg]] | [[Файл:SozdatZadachu4.jpg]] | ||
| − | + | ||
| + | * В качестве действия указываем запуск программы, | ||
[[Файл:SozdatZadachu5.jpg]] | [[Файл:SozdatZadachu5.jpg]] | ||
| − | + | ||
| + | * Указываем путь к нашему файлу backupGTD.cmd, | ||
[[Файл:SozdatZadachu6.jpg]] | [[Файл:SozdatZadachu6.jpg]] | ||
| − | + | ||
| + | * Поставьте чекбокс «открыть свойства» | ||
[[Файл:SozdatZadachu7.jpg]] | [[Файл:SozdatZadachu7.jpg]] | ||
| − | В свойствах указываем, что выполнять нужно вне зависимости от регистрации пользователя и указать логин пароль учетной записи с правами администратора (спросит позже). | + | |
| + | * В свойствах указываем, что выполнять нужно вне зависимости от регистрации пользователя и указать логин пароль учетной записи с правами администратора (спросит позже). | ||
[[Файл:SozdatZadachu8.jpg]] | [[Файл:SozdatZadachu8.jpg]] | ||
| Строка 79: | Строка 90: | ||
На закладках условия и параметры можете задать дополнительные условия выполнения (не обязательно). | На закладках условия и параметры можете задать дополнительные условия выполнения (не обязательно). | ||
| − | На выходе мы будем иметь примерно такую картину: | + | |
| + | * На выходе мы будем иметь примерно такую картину: | ||
[[Файл:SozdatZadachu9.jpg]] | [[Файл:SozdatZadachu9.jpg]] | ||
Версия 16:04, 3 апреля 2013
Создание исполняемого файла
Создаем текстовый файл, например backupGTD следующего содержания: sqlcmd -S DECLSERVER\SQLGTD -E -Q "declare @s varchar(255) set @s='E:\backup\GTD_' + convert(varchar(1), datepart(dw, getdate())) + '.bak' backup database GTD to disk = @s with init, noformat, skip, nounload"
Sqlcmd позволяет вводить инструкции Transact-SQL, системные процедуры и файлы скриптов из командной строки в редактор запросов в режиме SQLCMD
где:
-S -задает имя сервера server[\instance_name]
DECLSERVER\SQLGTD – имя сервера\имя экземпляра, на котором крутится база.
-E -Использует для соединения с SQL Server вместо имени пользователя и пароля доверительное соединение.
-Q " cmdline query " - При запуске программы sqlcmd выполняет запрос, но выход из программы по завершении его выполнения не производится. Может быть выполнено несколько запросов, разделенных точкой с запятой. Заключайте запрос в кавычки, как показано выше.
declare – объявляем переменную s ,имя переменной всегда начинается с @, поэтому @s. В нашем случае @s это папка (диск) хранения бэкапов.
varchar(n) – задает тип переменной @s как строковый с длинной строки n, в примере 255 символов
set – задает значение переменной @s, в примере это папка backup на диске E (E:\backup\), далее задается имя бэкап файла, где набор функций convert(varchar(1), datepart(dw, getdate())) возвращает в текстовом формате с длинной в 1 символ текущий день недели (понедельник – 1, вторник – 2, и т.д.) и добавляется расширение bak? На выходе получим файл с именем GTD_номер дня недели.bak.
backup – создает бэкап
database – указывает на создание бэкапа всей базы
GTD – в нашем примере имя базы на SQL сервере
to disk – указывает на тип устройства резервного хранения, файл жесткого диска, и указана переменная @s, которой присвоено путь и имя создаваемого файла.
with init, noformat, skip, nounload –указывает на то, что необходимо произвести перезапись данных по кругу с переопределением заголовков, что позволит нам иметь 7 файлов бэкапа на каждый день недели, перезаписываемые по кругу.
Примечание: При необходимости можно использовать массу других функций, например сжатие, см. справку по запросам и функциям Transact-SQL».
Меняем расширение текстового файла на .cmd (получаем backupGTD.cmd).
Запускать необходимо с той машины, где установлена БД MS SQL
Примечание: Готовый файл находится в папке X:\Alta\utils
Автоматизация процесса
Автоматизируем процесс (на примере Microsoft Windows Server 2008):
- Заходим в Диспетчер сервера -> Конфигурация -> Планировщик заданий -> Библиотека планировщика заданий.
- Создаем простую задачу:
- Задаем имя и описание,
- Указываем периодичность (ежедневно),
- Регулярность повторений и время выполнения,
- В качестве действия указываем запуск программы,
- Указываем путь к нашему файлу backupGTD.cmd,
- Поставьте чекбокс «открыть свойства»
- В свойствах указываем, что выполнять нужно вне зависимости от регистрации пользователя и указать логин пароль учетной записи с правами администратора (спросит позже).
На закладках условия и параметры можете задать дополнительные условия выполнения (не обязательно).
- На выходе мы будем иметь примерно такую картину:








