启用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打包并默认处于禁用状态。


创建示例数据库

/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 创建作业

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

使用 SSMS 创建作业

1. 在 Windows 上启动 SSMS 并连接到 Linux SQL Server 实例。

2. 验证是否已创建一个名为的示例数据库SampleDB。

clip_image002

3. 验证 SQL 代理是否安装并正确配置。 查找在对象资源管理器中的 SQL Server 代理旁边的加号。 如果未启用 SQL Server 代理,请尝试重新启动mssql server Linux 上的服务。

clip_image004

4. 新建作业。

clip_image006

5. 指定作业名称并创建作业步骤。

clip_image008

6. 指定要使用的子系统和应执行的作业步骤。

clip_image010

clip_image012

7. 新建作业计划。

clip_image014

clip_image016

8. 启动作业。

clip_image017