Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server в Linux
Задания SQL Server используются для регулярного выполнения одинаковой последовательности команд в базе данных SQL Server. В этом учебнике представлен пример создания задания агента SQL Server в Linux с помощью Transact-SQL и SQL Server Management Studio (SSMS).
- Установка агента SQL Server в Linux
- Создание задания для выполнения ежедневного резервного копирования базы данных
- Планирование и запуск задания
- Выполнение тех же действий в SSMS (необязательно)
Известные проблемы с агентом SQL Server в Linux см. в статье SQL Server в Linux: известные проблемы.
Предварительные условия
Для работы с этим руководством необходимо выполнить следующие условия.
Компьютер Linux со следующими необходимыми компонентами:
Следующие компоненты являются необязательными.
- Компьютер Windows с SSMS:
- Установите SQL Server Management Studio для дополнительных шагов SSMS.
Включение агента SQL Server
Чтобы использовать агент SQL Server в Linux, нужно сначала включить его на компьютере, где уже установлен SQL Server.
Чтобы включить агент SQL Server, выполните следующую команду.
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled trueПерезапустите SQL Server с помощью следующей команды.
sudo systemctl restart mssql-server
Примечание.
Начиная с SQL Server 2017 (14.x) CU 4, агент SQL Server входит в mssql-server пакет и по умолчанию отключается. Чтобы настроить агента до выхода накопительного пакета обновления 4, см. раздел "Установка агента SQL Server в Linux".
Создание образца базы данных
Чтобы создать образец базы данных с именем SampleDB, выполните следующие действия. Эта база данных используется для задания ежедневного резервного копирования.
На компьютере Linux откройте сеанс терминала bash.
Используйте sqlcmd для выполнения команды Transact-SQL
CREATE DATABASE./opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'Убедитесь, что база данных создана, выведя список баз данных на сервере.
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'SELECT name FROM sys.databases'
Создание задания с помощью Transact-SQL
Приведенные ниже шаги позволяют создать задание агента SQL Server в Linux с помощью команд Transact-SQL. Задание выполняет ежедневное резервное копирование примера базы данных. SampleDB
Совет
Для выполнения этих команд можно использовать любой клиент T-SQL. Например, можно установить средства командной строки sqlcmd и bcp SQL Server на Linux или использовать расширение SQL Server для Visual Studio Code. С удаленного сервера Windows Server вы также можете выполнять запросы в SQL Server Management Studio (SSMS) или использовать пользовательский интерфейс для управления заданиями, как описано в следующем разделе.
Используйте sp_add_job для создания задания с именем
Daily SampleDB Backup.-- Adds a new job executed by the SQLServerAgent service -- called 'Daily SampleDB Backup' USE msdb; GO EXECUTE dbo.sp_add_job @job_name = N'Daily SampleDB Backup'; GOВызовите sp_add_jobstep для создания шага задания, создающего резервную копию
SampleDBбазы данных.EXECUTE sp_add_jobstep @job_name = N'Daily SampleDB Backup', @step_name = N'Backup database', @subsystem = N'TSQL', @command = N'BACKUP DATABASE SampleDB TO DISK = \ N''/var/opt/mssql/data/SampleDB.bak'' WITH NOFORMAT, NOINIT, \ NAME = ''SampleDB-full'', SKIP, NOREWIND, NOUNLOAD, STATS = 10', @retry_attempts = 5, @retry_interval = 5; GOЗатем создайте ежедневное расписание для задания, используя sp_add_schedule.
-- Creates a schedule called 'Daily' EXECUTE dbo.sp_add_schedule @schedule_name = N'Daily SampleDB', @freq_type = 4, @freq_interval = 1, @active_start_time = 233000; USE msdb; GOПрисоедините расписание задания к заданию с помощью sp_attach_schedule.
-- Sets the 'Daily' schedule to the 'Daily SampleDB Backup' Job EXECUTE sp_attach_schedule @job_name = N'Daily SampleDB Backup', @schedule_name = N'Daily SampleDB'; GOИспользуйте sp_add_jobserver , чтобы назначить задание целевому серверу. В этом примере целевым объектом является локальный сервер.
EXECUTE dbo.sp_add_jobserver @job_name = N'Daily SampleDB Backup', @server_name = N'(local)'; GOЗапустите задание с sp_start_job.
EXECUTE dbo.sp_start_job N' Daily SampleDB Backup'; GO
Создание задания с использованием SSMS
Кроме того, с помощью SQL Server Management Studio (SSMS) в Windows можно удаленно создавать задания и управлять ими.
Запустите SSMS в Windows и подключитесь к своему экземпляру SQL Server в Linux. Дополнительные сведения см. в статье "Использование SQL Server Management Studio в Windows для управления SQL Server в Linux".
Убедитесь, что вы создали пример базы данных с именем
SampleDB.Убедитесь, что агент SQL Server был установлен в Linux и настроен правильно. Найдите знак "плюс" рядом с агентом SQL Server в обозревателе объектов. Если агент SQL Server не включен, попробуйте перезапустить службу mssql-server в Linux.
Создать новую работу.
Присвойте заданию имя и создайте шаг задания.
Укажите подсистему, которую вы хотите использовать, и действие, которое должен выполнить шаг задания.
Создайте новое расписание задачи.
Начните задание.
Следующий шаг
Из этого руководства вы узнали, как:
- Установка агента SQL Server в Linux
- Использование Transact-SQL и системных хранимых процедур для создания заданий
- Создание задания, выполняющего ежедневное резервное копирование базы данных
- Использование пользовательского интерфейса SSMS для создания заданий и управления ими
Далее вы можете изучить другие возможности для создания заданий и управления ими.