適用於:SQL Server 在 Linux 上
SQL Server 工作用於在你的 SQL Server 資料庫中定期執行相同的指令序列。 本教學提供如何在 Linux 上使用 Transact-SQL 與 SQL Server Management Studio(SSMS)建立 SQL Server Agent 作業的範例。
- 在 Linux 上安裝 SQL Server Agent
- 建立新作業以執行每日資料庫備份
- 對作業進行排程並執行該作業
- 在 SSMS 中執行相同的步驟 (選擇性)
關於 Linux 上已知的 SQL Server Agent 問題,請參見 SQL Server on Linux: Known issues。
必要條件
必須擁有下列先決條件,才能完成本教學課程:
具有下列先決條件的 Linux 電腦:
- 快速入門指南:在 Red Hat Enterprise Linux 上安裝 SQL Server 並建立資料庫
快速入門:安裝SQL Server並在 SUSE Linux Enterprise Server - 快速入門:安裝SQL Server並使用命令列工具在 Ubuntu 建立資料庫。
注意
自 SQL Server 2025(17.x)起,SUSE Linux Enterprise Server(SLES)不再支援。
下列先決條件為選擇性:
- 搭載 SSMS 的 Windows 機器:
- 安裝 SQL Server Management Studio 以進行可選的 SSMS 步驟。
啟用 SQL Server Agent
要在 Linux 上使用 SQL Server Agent,必須先在已安裝 SQL Server 的機器上啟用 SQL Server Agent。
要啟用 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 之前設定的代理程式,請參閱在 Linux 上安裝 SQL Server Agent。
建立範例資料庫
使用下列步驟來建立名為 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 建立工作
以下步驟需使用 Transact-SQL 指令在 Linux 上建立 SQL Server Agent 工作。 該作業會針對範例資料庫 SampleDB 執行每日備份。
提示
您可以使用任何 T-SQL 用戶端來執行這些命令。 例如,在 Linux 上你可以使用 在 Linux 上安裝 sqlcmd 和 bcp SQL Server 命令列工具 或 Visual Studio Code 的 SQL Server 擴充功能。 從遠端 Windows Server,你也可以在 SQL Server Management Studio(SSMS)中執行查詢,或使用下一節將說明的 UI 介面來管理工作。
使用 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 建立作業
你也可以在 Windows 上使用 SQL Server Management Studio(SSMS)遠端建立和管理工作。
在 Windows 上啟動 SSMS,並連接到你的 Linux SQL Server 實例。 欲了解更多資訊,請參閱使用SQL Server Management Studio於Windows管理SQL Server on Linux。
確認您已建立名為
SampleDB的範例資料庫。確認是否已在 Linux 上安裝 SQL Server Agent 並且設定正確。 在 Object Explorer 裡找 SQL Server Agent 旁邊的加號。 如果SQL Server Agent沒有啟用,試著在 Linux 上重新啟動 mssql-server 服務。
建立新任務。
為您的工作取名,然後建立您的工作步驟。
指定您想要使用的子系統,以及作業步驟應該執行的動作。
建立新的作業排程。
開始工作。
後續步驟
在本教學課程中,您已了解如何:
- 在 Linux 上安裝 SQL Server Agent
- 使用 Transact-SQL 及系統儲存程序來建立工作
- 建立能執行每日資料庫備份的任務
- 使用 SSMS UI 來建立及管理作業
接下來,請探索建立及管理工作的不同功能: