(1.2)sql server for linux 开启代理服务(SQL AGENT),使用T-SQL新建作业
【1】启用SQL 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