В этой статье объясним как настроить автоматическое резервное копирование баз данных Microsoft SQL Server на серверы объектного хранилища S3.
Нам понадобится:
- MSSQL Server, включая Microsoft SQL Server Express Edition.
- Утилита, позволяющая подключать облачное хранилище как сетевой диск.
Шаг 1. Настройка сетевого диска облачного хранилища Yandex Object Storage
- Открываем установленную утилиту с оф. сайта. В нашем случае “Диск-О” (т.к. ограничение триала: 10 загрузок в сутки для сторонних S3 сервисов).
- Вводим данные для авторизации и видим подключенный диск. Также можно воспользоваться аналогичными ПО: Raidrive, AirLiveDrive и тд.
- В окне “мой компьютер” отобразится подключенный диск.
- Сетевой диск “Z” подключен ,переходим к настройке резервных копий БД.
Шаг 2. Настройка резервного копирования средствами MS SQL Server
В нашем случае бесплатное решение MS SQL Server Express.
- Откройте SQL Server Management Studio, разверните «Базы данных» и выберите базу данных, резервную копию которой вы хотите создать. Щелкните базу данных правой кнопкой мыши, выберите Задачи и выберите Резервное копирование.
- Откроется диалоговое окно «Резервное копирование базы данных». Здесь вы можете настроить различные параметры резервного копирования (имя, сжатие, шифрование).
- Обратите внимание, что мы изменили место назначения по умолчанию на Z: диск, это виртуальный диск, который указывает на подключенный сетевой диск (в нашем случае Yandex Object Storage).
- После настройки резервного копирования нажмите «Сценарий» -> «Действие сценария для файла» и сохраните сгенерированный сценарий в файл (если используете MS SQL Server Express Edition) или в качестве скрипта T-SQL (если используете MS SQL Server Standard ).
Тело sql-скрипта:
BACKUP DATABASE [base] TO DISK = N'Z:Backupbase_full_backup.bak' WITH DESCRIPTION = N'Automatic backup to YOS S3 (full)', NOFORMAT, NOINIT, NAME = N'base-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO
Откройте командную строку и введите следующую команду, если вы используете проверку подлинности Windows:
sqlcmd -S .SQLEXPRESS -i c:scriptsfull-db-backup.sql
Или введите следующую команду, если вы используете аутентификацию SQL:
sqlcmd -U BackupUser -P password -S .SQLEXPRESS -i c:scriptsfull-db-backup.sql
Создаем .bat-файл следующего содержания:
@echo off sqlcmd -S .SQLEXPRESS -i c:scriptsfull-db-backup.sql
И помещаем в планировщик задач на нужное время.
Автоматическое резервное копирование баз данных с SQL на Yandex Object Storage настроено.