Резервное копирование MS SQL Server

Обновлено Обновлено: Опубликовано Опубликовано:

Есть несколько способов создания резервной копии MS SQL. Для разовых операций прекрасно подойдет графический инструмент SQL Management Studio. Для автоматизации — Powershell или cmd. Данные операции применяются к любым базам, как для 1С, так и любых других приложений.

С помощью графического интерфейса

Открываем MS SQL Management Studio. Кликаем правой кнопкой мыши по базе, для которой хотим сделать резервную копию - Задачи - Создать резервную копию:

Создаем резервную копию MS SQL через Management Studio

В открывшемся окне оставляем полный тип копий и путь к резервному файлу (при необходимости, можно его поменять, удалив и создав снова. Можно указать как локальный диск, так и сетевой):

Настройка резервной копии MS SQL

После завершения процесса мы увидим сообщение «Резервное копирование базы ... успешно завершено».

С помощью командной строки (cmd)

Выполняется при помощи команды sqlcmd.

Синтаксис:

sqlcmd -S <server> -U <user> -P <password> -Q "BACKUP DATABASE [<database>] TO DISK = N'<file path>' <options>

Пример готового скрипта

@echo off
set dd=%DATE:~0,2%
set mm=%DATE:~3,2%
set yyyy=%DATE:~6,4%
set curdate=%dd%-%mm%-%yyyy%
set username=sa
set password=my_pass

set db=work1
sqlcmd -S localhost -U %username% -P %password% -Q "BACKUP DATABASE [%db%] TO DISK = N'D:\Backup\MSSQL\%db%_%curdate%.bak' WITH NOFORMAT, NOINIT,  NAME = N'%db%-full', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10"

set db=work2
sqlcmd -S localhost -U %username% -P %password% -Q "BACKUP DATABASE [%db%] TO DISK = N'D:\Backup\MSSQL\%db%_%curdate%.bak' WITH NOFORMAT, NOINIT,  NAME = N'%db%-full', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10"

* в данном примере мы подключаемся к локальному SQL серверу под учетной записью sa с паролем my_pass и делаем резервную копию баз work1 и work2. Резервные копии размещаем по пути D:\Backup\MSSQL. Имя файлов резервных копий work1_<текущая дата>.bak и work2_<текущая дата>.bak

Для автоматизации скрипта, создайте задание в планировщике, чтобы скрипт запускался по расписанию.

С помощью Powershell

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

Для выполнения команды, сначала импортируем модуль:

import-module sqlps -DisableNameChecking

Синтаксис:

Backup-SqlDatabase -ServerInstance <имя SQL сервера> -Database <имя базы> -BackupFile <путь к файлу с резервной копией>

Пример скрипта на powershell

$server = "SQL01"
$curdate = Get-Date -Format yyyyMMdd

import-module sqlps -DisableNameChecking

$db = work1
Backup-SqlDatabase -ServerInstance $server -Database $db -BackupFile $db_$curdate.bak

* где выполняется резервное копирования базы work1 на сервере SQL01

Также как и для cmd, данный скрипт можно поместить в планировщик для запуска по расписанию.

Срок действия резервного набора данных

Данная настройка позволяет указать, через какой промежуток времени резервную копию можно удалить (перезаписать). Важно понимать, что настройка не влияет на сам период восстановления — если срок истек, восстановиться из набора можно.

Задать параметр можно в основном окне при создании резервной копии:

Срок действия резервного набора данных истекает

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

Все резервные копии по умолчанию будут попадать в каталог резервных копий. Чтобы его посмотреть и поменять, при необходимости, выполняем следующее.

Кликаем правой кнопкой мыши по корневому разделу SQL Server и выбираем свойства:

Открываем свойства сервера MS SQL

Переходим в раздел Параметры баз данных (1) - в подразделе «Места хранения, используемые базой данных по умолчанию» мы увидим путь до места размещения резервных копий (2), который можно поменять кнопкой справа (3):

Настройка путей для резервного копирования в MS SQL

# Сервера # Базы данных
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет