本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 SQL Server Agent for Amazon RDS
借助 Amazon RDS,您可以在執行 Microsoft SQL Server 企業版、標準版或 Web 版的資料庫執行個體上使用 SQL Server 代理程式。SQL Server 代理程式是 Microsoft Windows 服務,會執行排程的管理任務 (稱為任務)。您可以使用 SQL Server 代理程式來執行 T-SQL 任務,以在 SQL Server 資料庫執行個體中重建索引、執行損毀檢查,以及彙總資料。
建立 SQL Server 資料庫執行個體時,會在 SQLAgentUserRole
角色中登錄主要使用者。
SQL Server 代理程式可以按排程或隨需執行任務,以回應特定事件。如需詳細資訊,請參閱 Microsoft 文件中的 SQL Server 代理程式
注意
避免排程任務在資料庫執行個體的維護和備份時段執行。啟動的維護和備份程序 AWS 可能會中斷任務或導致任務取消。
在異地同步備份部署中,當任務複寫功能開啟時,SQL Server Agent 任務從主要主機複製至次要主機。如需詳細資訊,請參閱開啟 SQL Server Agent 任務複寫。
多可用區部署有 10,000 個 SQL Server Agent 任務的限制。如果您需要更高的限制,請聯絡 請求提高限制 支援。開啟 AWS 支援 中心
若要在 SQL Server Management Studio (SSMS) 中檢視個別 SQL Server 代理程式任務的歷程紀錄,您可以開啟物件總管 (Object Explorer),並在任務上按一下滑鼠右鍵,然後選擇 View History (檢視歷程紀錄)。
由於 SQL Server 代理程式正在資料庫執行個體中的受管理主機上執行,因此不支援某些動作:
-
不支援使用 ActiveX、Windows command shell 或 Windows PowerShell 執行複寫任務和命令列指令碼。
-
您無法手動開始、停止或重新啟動 SQL Server 代理程式。
-
無法從資料庫執行個體透過 SQL Server 代理程式傳送電子郵件通知。
-
不支援 SQL Server 代理程式提醒和運算子。
-
不支援使用 SQL Server 代理程式來建立備份。使用 Amazon RDS 備份您的資料庫執行個體。
-
目前,RDS for SQL Server 不支援使用 SQL Server Agent 字符。
開啟 SQL Server Agent 任務複寫
您可使用下列儲存程序開啟 SQL Server Agent 任務複寫:
EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob';
您可在 Amazon RDS for SQL Server 支援的所有 SQL Server 版本上執行儲存程序。複製下列類別中的任務:
-
[未分類 (本機)]
-
[未分類 (多伺服器)]
-
[未分類]
-
資料收集器
-
資料庫引擎調校 Advisor
-
資料庫維護
-
全文
僅複製使用 T-SQL 任務步驟的任務。SQL Server Integration Services (SSIS)、SQL Server Reporting Services (SSRS)、複寫和 PowerShell 等步驟類型的任務不會複製。不會複製使用 Database Mail 和伺服器層級物件的任務。
重要
主要主機是複寫的真實來源。開啟工作複寫之前,請確定您的 SQL Server 代理程式工作位於主要主機上。如果您未這麼做,則當次要主機上有較新的工作時,如果您開啟該功能,可能會導致刪除 SQL Server 代理程式工作。
您可使用下列函數來確認複製是否已開啟。
SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();
若 SQL Server Agent 任務正在複製,則 T-SQL 查詢傳回下列內容。若並未複製,則不會為 object_class
傳回任何東西。

您可以使用下列函數,以 UTC 時間找出物件上次同步的時間。
SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();
例如,假設您修改 SQL Server Agent 任務的時間為 01:00。您希望最近的同步時間在 01:00 之後,表示同步已發生。
同步化之後,針對次要節點上的 date_created
和 date_modified
傳回的值預期會相符。

如果您也使用tempdb
複寫,您可以在 @object_type
參數中提供 SQL Agent 任務和tempdb
組態的複寫:
EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob,TempDbFile';
如需tempdb
複寫的詳細資訊,請參閱 多可用區域部署的 TempDB 組態。