Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server в Linux
Задания SQL Server используются для регулярного выполнения одной и той же последовательности команд в базе данных SQL Server. В этом руководстве приведен пример создания задания SQL Server Agent в Linux с помощью Transact-SQL и SQL Server Management Studio (SSMS).
- Установка SQL Server Agent в Linux
- Создание задания для выполнения ежедневного резервного копирования базы данных
- Планирование и запуск задания
- Выполнение тех же действий в SSMS (необязательно)
Известные проблемы с SQL Server Agent в Linux см. в разделе SQL Server on Linux: известные проблемы.
Предварительные условия
Для работы с этим руководством необходимо выполнить следующие условия.
Компьютер Linux со следующими необходимыми компонентами:
- Quickstart: установите SQL Server и создайте базу данных в Red Hat Enterprise Linux
- Quickstart: установите SQL Server и создайте базу данных на SUSE Linux Enterprise Server
- Quickstart: установите SQL Server и создайте базу данных в Ubuntu с помощью средств командной строки.
Примечание.
Начиная с SQL Server 2025 (17.x), SUSE Linux Enterprise Server (SLES) не поддерживается.
Следующие компоненты являются необязательными.
- Windows компьютер с SSMS:
- Install SQL Server Management Studio для дополнительных шагов SSMS.
Включить SQL Server Agent
Чтобы использовать SQL Server Agent в Linux, необходимо сначала включить SQL Server Agent на компьютере, на котором уже установлен SQL Server.
Чтобы включить SQL Server Agent, выполните следующую команду.
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 Agent входит в пакет mssql-server и по умолчанию отключен. Для настройки агента перед CU 4, см. в Install SQL Server Agent on 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 Agent в Linux с командами Transact-SQL. Задание выполняет ежедневное резервное копирование примера базы данных. SampleDB
Совет
Для выполнения этих команд можно использовать любой клиент T-SQL. Например, в Linux можно использовать установить средства командной строки 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 Установлен агент SQL Server в Linux и настроен правильно. Найдите знак плюса рядом с SQL Server Agent в Object Explorer. Если SQL Server Agent не включено, попробуйте перезапустить службу mssql-server в Linux.
Создать новую работу.
Присвойте заданию имя и создайте шаг задания.
Укажите подсистему, которую вы хотите использовать, и действие, которое должен выполнить шаг задания.
Создайте новое расписание задачи.
Начните задание.
Следующий шаг
Из этого руководства вы узнали, как:
- Установка SQL Server Agent в Linux
- Создание заданий с помощью Transact-SQL и системных хранимых процедур
- Создание задания, выполняющего ежедневное резервное копирование базы данных
- Использование пользовательского интерфейса SSMS для создания заданий и управления ими
Далее вы можете изучить другие возможности для создания заданий и управления ими.