【1】启用SQL Server代理

sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true

#需要重启服务生效
sudo systemctl restart mssql-server

备注:从 SQL Server 2017 CU4 开始,SQL Server 代理是附带mssql server打包并默认处于禁用状态。

【2】使用T-SQL创建作业

--创建示例数据库
--《1》linux环境下创建
--/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\'

--《2》登录上sql server 后创建
CREATE DATABASE SampleDB
GO

SELECT Name FROM sys.Databases
GO

使用 Transact-SQL 创建作业
--1. 使用sp_add_job若要创建一个名为作业Daily SampleDB Backup。

-- 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
--2. 调用sp_add_jobstep若要创建的备份创建的作业步骤SampleDB数据库。

-- 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
--3. 然后创建与作业的每日计划sp_add_schedule。

-- 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

--4. 将作业计划附加到作业sp_attach_schedule。

-- 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

--5. 使用sp_add_jobserver若要将作业分配到目标服务器。 在此示例中,目标是本地服务器。

EXEC dbo.sp_add_jobserver
@job_name = N\'Daily SampleDB Backup\',
@server_name = N\'(LOCAL)\';
GO
--6. 启动的作业sp_start_job。

EXEC dbo.sp_start_job N\' Daily SampleDB Backup\' ;
GO

【3】使用SSMS创建作业,这个太简单了,这里就不赘述了

转自:https://blog.51cto.com/ultrasql/2148934

版权声明:本文为gered原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/gered/p/12517833.html