Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к: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 для создания заданий и управления ими
Далее вы можете изучить другие возможности для создания заданий и управления ими.