Планирование и автоматизация резервного копирования баз данных 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 Server с помощью планировщика заданий Windows необходимо выполнить следующие четыре шага:
Шаг А. Создайте хранимую процедуру для резервного копирования баз данных.
Подключитесь к экземпляру SQL Express и создайте хранимую процедуру sp_BackupDatabases в базе данных master с помощью скрипта в следующем расположении:
Шаг Б. Скачивание средства 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 для выполнения пакетного файла, созданного на шаге Б. Для этого выполните следующие действия:
На компьютере под управлением SQL Server Express нажмите кнопку Пуск, а затем в текстовом поле введите планировщик задачи.
В разделе Лучшее соответствие щелкните Планировщик задач , чтобы запустить его.
В планировщике задач щелкните правой кнопкой мыши библиотеку расписания задач и выберите Создать простую задачу....
Введите имя новой задачи (например, SQLBackup) и нажмите кнопку Далее.
Выберите Ежедневно для триггера задачи и нажмите кнопку Далее.
Задайте для повторения значение один день и нажмите кнопку Далее.
Выберите Запустить программу в качестве действия и нажмите кнопку Далее.
Нажмите кнопку Обзор, перейдите к созданному на шаге С пакетному файлу и нажмите кнопку Открыть.
Установите флажок "Открыть диалоговое окно Свойства" для этой задачи при нажатии кнопки Готово.
Откройте вкладку "Общие".
Просмотрите параметры безопасности и убедитесь, что для учетной записи пользователя, выполняя задачу ( в списке При выполнении задачи укажите следующую учетную запись пользователя:)
Учетная запись должна иметь по крайней мере разрешения на чтение и выполнение для запуска служебной программы sqlcmd. Дополнительно.
При использовании проверка подлинности Windows в пакетном файле убедитесь, что владелец задачи имеет разрешения на резервное копирование SQL.
При использовании проверки подлинности SQL в пакетном файле пользователь SQL должен иметь необходимые разрешения для резервного копирования SQL.
Настройте другие параметры в соответствии с вашими требованиями.
Совет
В качестве теста запустите пакетный файл из шага C из командной строки, которая запускается с той же учетной записью пользователя, которая владеет задачей.
При использовании процедуры, описанной в этой статье, учитывайте следующие условия.
Служба планировщика задач должна быть запущена во время запланированного запуска задания. Рекомендуется задать для этой службы тип запуска автоматически. Это гарантирует, что служба будет запущена при перезапуске.
На диске, на который записываются резервные копии, должно быть много места. Рекомендуется регулярно очищать старые файлы в папке Backup, чтобы не иссякнуло свободное место на диске. Скрипт не содержит логику очистки старых файлов.