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


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

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

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

SQL_Express_Backups

Шаг Б. Скачивание средства SQLCMD (если применимо).

Служебная sqlcmd программа позволяет вводить инструкции Transact-SQL, системные процедуры и файлы скриптов. В SQL Server 2014 и более ранних версиях служебная программа поставляется в составе продукта. Начиная с SQL Server 2016, sqlcmd служебная программа предлагается в виде отдельного скачивания. Дополнительные сведения см. в разделе Служебная программа sqlcmd .

Шаг В. Создайте пакетный файл с помощью текстового редактора.

В текстовом редакторе создайте пакетный файл с именем Sqlbackup.bat, а затем скопируйте текст из одного из следующих примеров в этот файл в зависимости от сценария:

  • Все приведенные ниже сценарии используют D:\SQLBackups в качестве заполнителя. Скрипт необходимо настроить в соответствии с нужным диском и расположением папки резервного копирования в вашей среде.

  • Если вы используете проверку подлинности SQL, убедитесь, что доступ к папке ограничен авторизованными пользователями, так как пароли хранятся в виде открытого текста.

Примечание.

Папка для исполняемого файла SQLCMD обычно находится в переменных Path для сервера после установки 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 .

Шаг Г. Запланируйте задание с помощью планировщика заданий Windows для выполнения пакетного файла, созданного на шаге Б. Для этого выполните следующие действия:

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

    Снимок экрана с параметром приложения для настольных систем «Планировщик заданий» в панели поиска меню «Пуск».

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

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

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

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

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

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

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

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

  10. Откройте вкладку "Общие".

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

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

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

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

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

Совет

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

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

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

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

Дополнительные сведения

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