Поделиться через


Планирование и автоматизация резервного копирования баз данных 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. Дополнительные сведения об использовании этих средств для резервного копирования базы данных см. по следующим ссылкам:

В этой статье описывается, как использовать скрипт Transact-SQL вместе с планировщиком задач для автоматизации резервных копий баз данных SQL Server Express на запланированной основе.

Примечание.

Это относится только к выпускам SQL Server Express, а не к SQL Server Express LocalDB.

Создание запланированной резервной копии в SQL Express

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

Шаг 1. Создание хранимой процедуры для резервного копирования баз данных

Подключитесь к экземпляру SQL Express и создайте sp_BackupDatabases хранимую процедуру в базе данных master с помощью скрипта в следующем расположении:

SQL_Express_Backups

Шаг 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.

Выполните следующие действия:

  1. На компьютере под управлением SQL Server Express выберите "Пуск " и введите планировщик задач в текстовом поле.

    Снимок экрана: параметр классического приложения планировщика задач в строке поиска меню .

  2. В разделе "Лучший матч" выберите планировщик задач, чтобы запустить его.

  3. В планировщике задач щелкните правой кнопкой мыши планировщик задач (локальный) и выберите "Создать базовую задачу".

  4. Введите имя новой задачи (например, SQLBackup) и нажмите кнопку "Далее".

  5. Выберите "Ежедневно " для триггера задачи и нажмите кнопку "Далее".

  6. Установите значение повторения в один день и нажмите кнопку "Далее".

  7. Нажмите кнопку "Пуск программы " в качестве действия и нажмите кнопку "Далее".

  8. Выберите "Обзор", выберите пакетный файл, созданный на шаге 3, и нажмите кнопку "Открыть".

  9. При нажатии флажка "Готово" выберите диалоговое окно "Открыть свойства" для этой задачи.

  10. На вкладке "Общие "

    • Просмотрите параметры безопасности и убедитесь, что для учетной записи пользователя, выполняющую задачу (указанную в разделе "При выполнении задачи", пользователь использует следующую учетную запись пользователя:)

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

      • При использовании проверки подлинности Windows в пакетном файле убедитесь, что владелец задачи имеет разрешение на резервное копирование SQL.

      • При использовании проверки подлинности SQL в пакетном файле пользователь SQL должен иметь необходимые разрешения для резервного копирования SQL.

    • Настройте другие параметры в соответствии с вашими требованиями.

Совет

В качестве теста запустите пакетный файл из шага 3 из командной строки, которая запускается с той же учетной записью пользователя, которая владеет задачей.

Требования

Помните о следующих требованиях при использовании процедуры, описанной в этой статье:

  • Служба планировщика задач должна выполняться во время выполнения задания. Рекомендуется задать тип запуска для этой службы в качестве автоматического. Это гарантирует, что служба будет работать даже при перезапуске.

  • Необходимо создать достаточно места на диске, где записываются резервные копии. Рекомендуется регулярно очищать старые файлы в папке резервного копирования , чтобы убедиться, что не требуется места на диске. Скрипт не содержит логику очистки старых файлов.

Дополнительная справка

Обзор планировщика задач