- Create and run SQL Server Agent jobs on Linux
- Prerequisites
- Enable SQL Server Agent
- Create a sample database
- Create a job with Transact-SQL
- Create a job with SSMS
- Next Steps
- Установка агента SQL Server в Linux
- Instructions
- Включение агента SQL Server
- Установка агента SQL Server
- Установка в RHEL
- Установка в Ubuntu
- Установка в SLES
- Дальнейшие действия
- Создание и запуск заданий агента SQL Server в Linux
- предварительные требования
- Включение агента SQL Server
- Создание образца базы данных
- Создание задания с помощью Transact-SQL
- Создание задания с использованием SSMS
- Next Steps
Create and run SQL Server Agent jobs on Linux
SQL Server jobs are used to regularly perform the same sequence of commands in your SQL Server database. This tutorial provides an example of how to create a SQL Server Agent job on Linux using both Transact-SQL and SQL Server Management Studio (SSMS).
- Install SQL Server Agent on Linux
- Create a new job to perform daily database backups
- Schedule and run the job
- Perform the same steps in SSMS (optional)
For known issues with SQL Server Agent on Linux, see the Release Notes.
Prerequisites
The following prerequisites are required to complete this tutorial:
The following prerequisites are optional:
Enable SQL Server Agent
To use SQL Server Agent on Linux, you must first enable SQL Server Agent on a machine that already has SQL Server installed.
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
sudo systemctl restart mssql-server
Starting with SQL Server 2017 CU4, SQL Server Agent is included with the mssql-server package and is disabled by default. For Agent set up prior to CU4 visit, Install SQL Server Agent on Linux.
Create a sample database
Use the following steps to create a sample database named SampleDB. This database is used for the daily backup job.
- On your Linux machine, open a bash terminal session.
- Use sqlcmd to run a Transact-SQL CREATE DATABASE command.
/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'
Create a job with Transact-SQL
The following steps create a SQL Server Agent job on Linux with Transact-SQL commands. The job runs a daily backup of the sample database, SampleDB.
You can use any T-SQL client to run these commands. For example, on Linux you can use sqlcmd or Visual Studio Code. From a remote Windows Server, you can also run queries in SQL Server Management Studio (SSMS) or use the UI interface for job management, which is described in the next section.
-- Adds a new job executed by the SQLServerAgent service -- called 'Daily SampleDB Backup' USE msdb ; GO EXEC dbo.sp_add_job @job_name = N'Daily SampleDB Backup' ; GO
-- Adds a step (operation) to the job EXEC 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
-- Creates a schedule called 'Daily' EXEC dbo.sp_add_schedule @schedule_name = N'Daily SampleDB', @freq_type = 4, @freq_interval = 1, @active_start_time = 233000 ; USE msdb ; GO
-- Sets the 'Daily' schedule to the 'Daily SampleDB Backup' Job EXEC sp_attach_schedule @job_name = N'Daily SampleDB Backup', @schedule_name = N'Daily SampleDB'; GO
EXEC dbo.sp_add_jobserver @job_name = N'Daily SampleDB Backup', @server_name = N'(LOCAL)'; GO
EXEC dbo.sp_start_job N' Daily SampleDB Backup' ; GO
Create a job with SSMS
You can also create and manage jobs remotely using SQL Server Management Studio (SSMS) on Windows.
- Start SSMS on Windows and connect to your Linux SQL Server instance. For more information, see Manage SQL Server on Linux with SSMS.
- Verify that you have created a sample database named SampleDB.
- Verify that SQL Agent was installed and configured correctly. Look for the plus sign next to SQL Server Agent in the Object Explorer. If SQL Server Agent is not enabled, try restarting the mssql-server service on Linux.
- Create a new job.
- Give your job a name and create your job step.
- Specify what subsystem you want to use and what the job step should do.
- Create a new job schedule.
- Start your job.
Next Steps
In this tutorial, you learned how to:
- Install SQL Server Agent on Linux
- Use Transact-SQL and system stored procedures to create jobs
- Create a job that performs daily database backups
- Use SSMS UI to create and manage jobs
Next, explore other capabilities for creating and managing jobs:
Установка агента SQL Server в Linux
В этой статье описывается включение или установка агента SQL Server в Linux.
Агент SQL Server выполняет запланированные задания SQL Server. Начиная с версии SQL Server 2017 с накопительным пакетом обновления 4, агент SQL Server включается в пакет mssql-server и по умолчанию отключен. Сведения о функциях, поддерживаемых в этом выпуске агента SQL Server, а также сведения о версии см. в заметках о выпуске.
Instructions
Прежде чем использовать агент SQL Server в Linux, выполните следующие действия, чтобы включить или установить его.
- Добавьте имя узла (с доменом или без него) в файлы /etc/hosts . Ниже приведен пример формата таких записей:
"IP Address" "hostname" "IP Address" "hostname.domain.com"
Включение агента SQL Server
Для SQL Server 2019 и SQL Server 2017 CU4 и более поздних версий необходимо только включить агент SQL Server. Вам не нужно устанавливать отдельный пакет.
Чтобы включить агент SQL Server, выполните указанные ниже действия.
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true sudo systemctl restart mssql-server
Если вы производите обновление с версии 2017 с накопительным пакетом обновления 3 или более ранней с установленным агентом, агент SQL Server включается автоматически, а предыдущие версии пакета агента удаляются.
Обозреватель объектов SQL Server Management Studio не отображает содержимое узла агента SQL Server, если не включены расширенные хранимые процедуры агента (Agent XPs), вне зависимости от состояния службы агента. Дополнительные сведения: Параметр конфигурации сервера «Agent XPs».
Установка агента SQL Server
Для SQL Server 2017 CU3 и более ранних версий необходимо установить пакет агента SQL Server.
Приведенные ниже инструкции относятся к версии SQL Server 2017 с накопительным пакетом обновления 3 и более ранним. Перед установкой агента SQL Server сначала установите SQL Server. Это позволит настроить ключи и репозитории, которые следует использовать при установке пакета mssql-server-agent.
Установите агент SQL Server для своей платформы:
Установка в RHEL
Чтобы установить mssql-server-agent в Red Hat Enterprise Linux, выполните указанные ниже действия.
sudo yum install mssql-server-agent sudo systemctl restart mssql-server
Если пакет mssql-server-agent уже установлен, можно обновить его до последней версии, выполнив следующие команды:
sudo yum check-update sudo yum update mssql-server-agent sudo systemctl restart mssql-server
Если вам нужна автономная установка, найдите скачиваемый пакет агента SQL Server в разделе Заметки о выпуске. Затем выполните действия по автономной установке, описанные в статье Установка SQL Server.
Установка в Ubuntu
Чтобы установить mssql-server-agent в Ubuntu, выполните указанные ниже действия.
sudo apt-get update sudo apt-get install mssql-server-agent sudo systemctl restart mssql-server
Если пакет mssql-server-agent уже установлен, можно обновить его до последней версии, выполнив следующие команды:
sudo apt-get update sudo apt-get install mssql-server-agent sudo systemctl restart mssql-server
Если вам нужна автономная установка, найдите скачиваемый пакет агента SQL Server в разделе Заметки о выпуске. Затем выполните действия по автономной установке, описанные в статье Установка SQL Server.
Установка в SLES
Чтобы установить mssql-server-agent в SUSE Linux Enterprise Server, выполните указанные ниже действия.
Установка mssql-server-agent
sudo zypper install mssql-server-agent sudo systemctl restart mssql-server
Если пакет mssql-server-agent уже установлен, можно обновить его до последней версии, выполнив следующие команды:
sudo zypper refresh sudo zypper update mssql-server-agent sudo systemctl restart mssql-server
Если вам нужна автономная установка, найдите скачиваемый пакет агента SQL Server в разделе Заметки о выпуске. Затем выполните действия по автономной установке, описанные в статье Установка SQL Server.
Дальнейшие действия
Дополнительные сведения об использовании агента SQL Server для создания, планирования и выполнения заданий см. в статье Создание и запуск задания агента SQL Server в Linux.
Создание и запуск заданий агента SQL Server в Linux
Задания SQL Server используются для регулярного выполнения одинаковой последовательности команд в базе данных SQL Server. В этом учебнике представлен пример создания задания агента SQL Server в Linux с помощью Transact-SQL и SQL Server Management Studio (SSMS).
- Установка агента SQL Server в Linux
- Создание задания для выполнения ежедневного резервного копирования базы данных
- Планирование и запуск задания
- Выполнение тех же действий в SSMS (необязательно)
Известные проблемы с агентом SQL Server в Linux см. в заметках о выпуске.
предварительные требования
Для работы с этим руководством необходимо выполнить следующие условия.
- Компьютер Linux со следующими необходимыми компонентами:
- SQL Server (RHEL, SLES или Ubuntu) с программами командной строки.
Следующие компоненты являются необязательными.
Включение агента SQL Server
Чтобы использовать агент SQL Server в Linux, нужно сначала включить его на компьютере, где уже установлен SQL Server.
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
sudo systemctl restart mssql-server
Начиная с версии SQL Server 2017 с накопительным пакетом обновления 4, агент SQL Server включается в пакет mssql-server и по умолчанию отключен. Сведения о настройке агента в версиях, предшествующих накопительному пакету обновления 4, см. в статье Установка агента SQL Server в Linux.
Создание образца базы данных
Чтобы создать образец базы данных с именем SampleDB, выполните указанные ниже действия. Эта база данных используется для задания ежедневного резервного копирования.
- На компьютере Linux откройте сеанс терминала bash.
- Используйте sqlcmd для выполнения команды CREATE DATABASE Transact-SQL.
/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. Например, в Linux можно использовать sqlcmd или Visual Studio Code. С удаленного сервера Windows Server вы также можете выполнять запросы в SQL Server Management Studio (SSMS) или использовать пользовательский интерфейс для управления заданиями, как описано в следующем разделе.
-- Adds a new job executed by the SQLServerAgent service -- called 'Daily SampleDB Backup' USE msdb ; GO EXEC dbo.sp_add_job @job_name = N'Daily SampleDB Backup' ; GO
-- Adds a step (operation) to the job EXEC 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
-- Creates a schedule called 'Daily' EXEC dbo.sp_add_schedule @schedule_name = N'Daily SampleDB', @freq_type = 4, @freq_interval = 1, @active_start_time = 233000 ; USE msdb ; GO
-- Sets the 'Daily' schedule to the 'Daily SampleDB Backup' Job EXEC sp_attach_schedule @job_name = N'Daily SampleDB Backup', @schedule_name = N'Daily SampleDB'; GO
EXEC dbo.sp_add_jobserver @job_name = N'Daily SampleDB Backup', @server_name = N'(LOCAL)'; GO
EXEC dbo.sp_start_job N' Daily SampleDB Backup' ; GO
Создание задания с использованием SSMS
Кроме того, с помощью SQL Server Management Studio (SSMS) в Windows можно удаленно создавать задания и управлять ими.
- Запустите SSMS в Windows и подключитесь к своему экземпляру SQL Server в Linux. Дополнительные сведения см. в статье Управление SQL Server в Linux с помощью SSMS.
- Убедитесь, чтобы создан образец базы данных с именем SampleDB.
- Убедитесь, что агент SQL установлен и настроен правильно. Найдите знак «плюс» рядом с агентом SQL Server в обозревателе объектов. Если агент SQL Server не включен, попробуйте перезапустить службу mssql-server в Linux.
- Создайте задание.
- Присвойте заданию имя и создайте шаг задания.
- Укажите подсистему, которую вы хотите использовать, и действие, которое должен выполнить шаг задания.
- Создайте расписание задания.
- Запустите ваше задание.
Next Steps
В этом руководстве вы узнали, как выполнять следующие задачи:
- Установка агента SQL Server в Linux
- Использование Transact-SQL и системных хранимых процедур для создания заданий
- Создание задания, выполняющего ежедневное резервное копирование базы данных
- Использование пользовательского интерфейса SSMS для создания заданий и управления ими
Далее вы можете изучить другие возможности для создания заданий и управления ими.