在Linux上創建和運行SQL Server 2017代理作業
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。
3. 驗證 SQL 代理是否安裝並正確配置。 查找在對象資源管理器中的 SQL Server 代理旁邊的加號。 如果未啟用 SQL Server 代理,請嘗試重新啟動mssql server Linux 上的服務。
4. 新建作業。
5. 指定作業名稱並創建作業步驟。
6. 指定要使用的子系統和應執行的作業步驟。
7. 新建作業計劃。
8. 啟動作業。
在Linux上創建和運行SQL Server 2017代理作業