Планирование и автоматизация резервного копирования баз данных SQL Server в SQL Server Express
В этой статье описывается использование скрипта Transact-SQL и планировщика задач Windows для автоматизации резервных копий баз данных SQL Server Express на запланированной основе.
Исходная версия продукта: SQL Server
Исходный номер базы знаний: 2019698
Итоги
Выпуски SQL Server Express не предлагают способ планирования заданий или планов обслуживания, так как компонент агент SQL Server не включен в эти выпуски. Поэтому при использовании этих выпусков необходимо использовать другой подход к резервному копированию баз данных.
В настоящее время пользователи SQL Server Express могут создавать резервные копии баз данных с помощью одного из следующих методов:
Используйте SQL Server Management Studio или Azure Data Studio. Дополнительные сведения об использовании этих средств для резервного копирования базы данных см. по следующим ссылкам:
Руководство по резервному копированию и восстановлению баз данных с помощью Azure Data Studio
Используйте скрипт Transact-SQL, использующий семейство команд BACKUP DATABASE. Дополнительные сведения см. в разделе BACKUP (Transact-SQL).
В этой статье описывается, как использовать скрипт Transact-SQL вместе с планировщиком задач для автоматизации резервных копий баз данных SQL Server Express на запланированной основе.
Примечание.
Это относится только к выпускам SQL Server Express, а не к SQL Server Express LocalDB.
Создание запланированной резервной копии в SQL Express
Чтобы создать резервную копию баз данных SQL Server с помощью планировщика задач Windows, выполните следующие четыре действия.
Шаг 1. Создание хранимой процедуры для резервного копирования баз данных
Подключитесь к экземпляру SQL Express и создайте sp_BackupDatabases
хранимую процедуру в базе данных master с помощью скрипта в следующем расположении:
Шаг 2. Скачивание служебной программы клиента SQLCMD
Служебная sqlcmd
программа позволяет вводить инструкции Transact-SQL, системные процедуры и файлы скриптов. В SQL Server 2014 и более низких версиях программа поставляется как часть продукта. Начиная с SQL Server 2016, sqlcmd
программа предлагается в виде отдельной загрузки. Дополнительные сведения см . в программе sqlcmd.
Шаг 3. Создание пакетного файла с помощью текстового редактора
В текстовом редакторе создайте пакетный файл с именем Sqlbackup.bat, а затем скопируйте текст из одного из следующих примеров в этот файл в зависимости от вашего сценария:
Все приведенные ниже сценарии используются
D:\SQLBackups
в качестве владельца места. Скрипт должен быть изменен на правильный диск и расположение папки резервного копирования в вашей среде.Если вы используете проверку подлинности SQL, убедитесь, что доступ к папке ограничен авторизованными пользователями, так как пароли хранятся в чистом тексте.
Примечание.
Папка для SQLCMD
исполняемого файла обычно находится в переменных пути для сервера после установки SQL Server или после установки его как автономного средства. Но если переменная Path не перечисляет эту папку, ее расположение можно добавить в переменную Path или указать полный путь к служебной программе.
Пример 1. Полные резервные копии всех баз данных в локальном именованном экземпляре SQLEXPRESS с помощью проверки подлинности Windows
// Sqlbackup.bat
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @backupType='F'"
Пример 2. Разностные резервные копии всех баз данных в локальном именованном экземпляре SQLEXPRESS с помощью SQLLogin и его пароля
// Sqlbackup.bat
sqlcmd -U <YourSQLLogin> -P <StrongPassword> -S .\SQLEXPRESS -Q "EXEC sp_BackupDatabases @backupLocation ='D:\SQLBackups', @BackupType='D'"
Примечание.
SqlLogin должен иметь по крайней мере роль оператора резервного копирования в SQL Server.
Пример 3. Резервное копирование журналов всех баз данных в локальном именованном экземпляре SQLEXPRESS с помощью проверки подлинности Windows
// Sqlbackup.bat
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\',@backupType='L'"
Пример 4. Полные резервные копии базы данных USERDB в локальном именованном экземпляре SQLEXPRESS с помощью проверки подлинности Windows
// Sqlbackup.bat
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @databaseName='USERDB', @backupType='F'"
Аналогичным образом можно сделать разностную резервную копию USERDB путем вставки в "D" для параметра @backupType и резервного копирования журнала USERDB путем вставки в "L" для параметра @backupType .
Шаг 4. Планирование задания с помощью планировщика задач Windows для выполнения пакетного файла, созданного на шаге 2.
Выполните следующие действия:
На компьютере под управлением SQL Server Express выберите "Пуск " и введите планировщик задач в текстовом поле.
В разделе "Лучший матч" выберите планировщик задач, чтобы запустить его.
В планировщике задач щелкните правой кнопкой мыши планировщик задач (локальный) и выберите "Создать базовую задачу".
Введите имя новой задачи (например, SQLBackup) и нажмите кнопку "Далее".
Выберите "Ежедневно " для триггера задачи и нажмите кнопку "Далее".
Установите значение повторения в один день и нажмите кнопку "Далее".
Нажмите кнопку "Пуск программы " в качестве действия и нажмите кнопку "Далее".
Выберите "Обзор", выберите пакетный файл, созданный на шаге 3, и нажмите кнопку "Открыть".
При нажатии флажка "Готово" выберите диалоговое окно "Открыть свойства" для этой задачи.
На вкладке "Общие "
Просмотрите параметры безопасности и убедитесь, что для учетной записи пользователя, выполняющую задачу (указанную в разделе "При выполнении задачи", пользователь использует следующую учетную запись пользователя:)
Учетная запись должна иметь по крайней мере разрешения на чтение и выполнение для запуска служебной
sqlcmd
программы. Дополнительно,При использовании проверки подлинности Windows в пакетном файле убедитесь, что владелец задачи имеет разрешение на резервное копирование SQL.
При использовании проверки подлинности SQL в пакетном файле пользователь SQL должен иметь необходимые разрешения для резервного копирования SQL.
Настройте другие параметры в соответствии с вашими требованиями.
Совет
В качестве теста запустите пакетный файл из шага 3 из командной строки, которая запускается с той же учетной записью пользователя, которая владеет задачей.
Требования
Помните о следующих требованиях при использовании процедуры, описанной в этой статье:
Служба планировщика задач должна выполняться во время выполнения задания. Рекомендуется задать тип запуска для этой службы в качестве автоматического. Это гарантирует, что служба будет работать даже при перезапуске.
Необходимо создать достаточно места на диске, где записываются резервные копии. Рекомендуется регулярно очищать старые файлы в папке резервного копирования , чтобы убедиться, что не требуется места на диске. Скрипт не содержит логику очистки старых файлов.