本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
透過 Amazon RDS,您可以在執行 Microsoft SQL Server Enterprise Edition、Standard Edition 或 Web Edition 的資料庫執行個體上使用 SQL Server Agent。SQL Server Agent 是一種 Microsoft Windows 服務,可執行稱為任務的排程管理任務。您可以使用 SQL Server Agent 執行 T-SQL 任務,以在SQL伺服器資料庫執行個體中重建索引、執行損毀檢查和彙總資料。
當您建立SQL伺服器資料庫執行個體時,主要使用者會註冊在SQLAgentUserRole
角色中。
SQL Server Agent 可以按排程、回應特定事件或隨需執行任務。如需詳細資訊,請參閱 Microsoft 文件中的SQL伺服器代理
注意
避免排程任務在資料庫執行個體的維護和備份時段執行。由 啟動的維護和備份程序 AWS 可能會中斷任務或導致任務取消。
在多可用區部署中,SQL伺服器代理程式任務會在任務複寫功能開啟時,從主要主機複寫至次要主機。如需詳細資訊,請參閱開啟 SQL Server Agent 任務複寫。
多可用區域部署限制為 10,000 個SQL伺服器代理程式任務。如果您需要更高的限制,請聯絡 請求增加 支援。開啟 AWS 支援 中心
若要在 SQL Server Management Studio (SSMS) 中檢視個別SQL伺服器代理程式任務的歷史記錄,請開啟 Object Explorer,在任務上按一下滑鼠右鍵,然後選擇檢視歷史記錄 。
由於SQL伺服器代理程式正在資料庫執行個體的受管主機上執行,因此不支援某些動作:
-
PowerShell 不支援使用 ActiveX 、Windows 命令 Shell 或 Windows 執行複寫任務和執行命令列指令碼。
-
您無法手動啟動、停止或重新啟動 SQL Server Agent。
-
資料庫執行個體無法使用透過 SQL Server Agent 的電子郵件通知。
-
SQL 不支援伺服器代理程式警示和運算子。
-
不支援使用 SQL Server Agent 建立備份。使用 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伺服器版本上執行預存程序。複製下列類別中的任務:
-
[未分類 (本機)]
-
[未分類 (多伺服器)]
-
[未分類]
-
資料收集器
-
資料庫引擎調校 Advisor
-
資料庫維護
-
全文
只會複寫使用 T-SQL 任務步驟的任務。具有步驟類型的任務,例如SQL伺服器整合服務 (SSIS)、SQL伺服器報告服務 (SSRS)、複寫, PowerShell 而且不會複寫。不會複製使用 Database Mail 和伺服器層級物件的任務。
重要
主要主機是複寫的真實來源。開啟任務複寫之前,請確定您的 SQL Server Agent 任務位於主要 。如果您不這樣做,當您在次要主機上開啟較新的任務時,可能會導致刪除您的SQL伺服器代理程式任務。
您可使用下列函數來確認複製是否已開啟。
SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();
如果SQL伺服器代理程式任務正在複寫,T SQL查詢會傳回下列項目。若並未複製,則不會為 object_class
傳回任何東西。

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

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