Створення автоматичного бекапа sql-бази на сервері sql express edition

Всі знайомі з постулатом про те, що для безпечної роботи необхідно періодично створювати резервні копії своїх баз даних, але тим не менше мало хто замислювався на цю тему до того, як в один «прекрасний» момент втратив всі свої напрацювання.

Головна> Наш блог> Створення автоматичного бекапа SQL-бази на сервері SQL Express Edition

Створення автоматичного бекапа sql-бази на сервері sql express edition
Всі знайомі з постулатом про те, що для безпечної роботи необхідно періодично створювати резервні копії своїх баз даних, але тим не менше мало хто замислювався на цю тему до того, як в один «прекрасний» момент втратив всі свої напрацювання.

Крок 1. Створюємо текстовий файл (наприклад, backupGTD.txt) такого змісту:

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 »

  • -S - задає ім'я сервера, server [\ instance_name];
  • DECLSERVER \ SQLGTD - ім'я сервера / ім'я екземпляра, на якому крутиться база;
  • -E - використовує для з'єднання з SQL server замість імені користувача та пароля довірче з'єднання;
  • -Q «cmdlinequery« - при запуску програми 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.

Крок 2. Міняємо розширення текстового файлу на .cmd

У підсумку отримуємо файл backupGTD.cmd. Запускати створений командний файл необхідно з тієї машини, де встановлена ​​БД MS SQL.

Крок 3. Автоматизуємо даний процес