Автоматический бэкап БД на SQL Server Express Edition: различия между версиями

Материал из Alta-Soft Wikipedia
Перейти к навигации Перейти к поиску
Строка 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»
+
''Примечание: При необходимости можно использовать массу других функций, например сжатие, см. справку по запросам и функциям Transact-SQL».
  
Меняем расширение текстового файла на .cmd (получаем backupGTD.cmd).
+
'''''Меняем расширение текстового файла на .cmd (получаем backupGTD.cmd).
 +
 
 +
'''''[[Запускать необходимо с той машины, где установлена БД MS SQL]]
 +
 
 +
''Примечание: Готовый файл находится в папке X:\Alta\utils
  
''''Запускать необходимо с той машины, где установлена БД MS SQL
 
  
''Примечание: Готовый файл находиться в папке X:\Alta\utils
 
  
 
= Автоматизация процесса =
 
= Автоматизация процесса =
  
Автоматизируем процесс (на примере win serv 2008):
+
Автоматизируем процесс (на примере 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,
+
 
 +
* Указываем путь к нашему файлу 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):


  • Заходим в Диспетчер сервера -> Конфигурация -> Планировщик заданий -> Библиотека планировщика заданий.


  • Создаем простую задачу:

SozdatZadachu.jpg


  • Задаем имя и описание,

SozdatZadachu2.jpg


  • Указываем периодичность (ежедневно),

SozdatZadachu3.jpg


  • Регулярность повторений и время выполнения,

SozdatZadachu4.jpg


  • В качестве действия указываем запуск программы,

SozdatZadachu5.jpg


  • Указываем путь к нашему файлу backupGTD.cmd,

SozdatZadachu6.jpg


  • Поставьте чекбокс «открыть свойства»

SozdatZadachu7.jpg


  • В свойствах указываем, что выполнять нужно вне зависимости от регистрации пользователя и указать логин пароль учетной записи с правами администратора (спросит позже).

SozdatZadachu8.jpg

На закладках условия и параметры можете задать дополнительные условия выполнения (не обязательно).


  • На выходе мы будем иметь примерно такую картину:

SozdatZadachu9.jpg