多可用區域部署的 TempDB 組態 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

多可用區域部署的 TempDB 組態

如果您的 RDS for SQL Server 資料庫執行個體位於使用資料庫鏡像 (DBM) 或 Always On 可用群組 (AG) 的多可用區域部署中,請留意下列關於使用 tempdb 資料庫的考量。

您無法將 tempdb 資料從主要資料庫執行個體複寫至次要資料庫執行個體。當您容錯移轉至次要資料庫執行個體時,該次要資料庫執行個體上的 tempdb 會是空的。

您可以將 tempdb 資料庫選項的組態 (包括其檔案大小和自動增長設定) 從主要資料庫執行個體同步到次要資料庫執行個體。所有 RDS for SQL Server 版本都支援同步 tempDB 組態。您可以使用下列預存程序開啟 tempdb 組態的自動同步:

EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'TempDbFile';
重要

使用 rds_set_system_database_sync_objects 預存程序之前,請確定您已在主要資料庫執行個體上設定偏好的 tempdb 組態,而不是在次要資料庫執行個體上設定。如果在次要資料庫執行個體上進行組態變更,當您開啟自動同步時,您偏好的 tempdb 組態可能會遭到刪除。

您可以使用下列函數來確認 tempdb 組態的自動同步是否已開啟:

SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();

tempdb 組態的自動同步開啟時,object_class 欄位會有傳回值。關閉時則不會傳回任何值。

您可以使用下列函數,找出物件上次同步的時間 (UTC 時間)。

SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();

例如,如果您在 01:00 修改了 tempdb 組態,然後執行 rds_fn_server_object_last_sync_time 函數,則 last_sync_time 傳回的值應該在 01:00 之後,表示發生了自動同步。

如果您也使用 SQL Server Agent 任務複寫,您可以在 @object_type 參數中提供相關物件,以啟用 SQL Agent 任務和 tempdb 組態的複寫:

EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob,TempDbFile';

如需 SQL Server Agent 任務複寫的詳細資訊,請參閱 開啟 SQL Server Agent 任務複寫

除了使用 rds_set_system_database_sync_objects 預存程序來確保 tempdb 組態變更會自動同步外,您也可以使用下列其中一種手動方法:

注意

建議您使用 rds_set_system_database_sync_objects 預存程序開啟 tempdb 組態的自動同步。使用自動同步,您即無須在每次變更 tempdb 組態時執行這些手動任務。

  • 首先修改您的資料庫執行個體並關閉異地同步備份,然後修改 tempdb,最後再次開啟異地同步備份。此方法不涉及任何停機時間。

    如需更多詳細資訊,請參閱 修改 Amazon RDS 資料庫執行個體

  • 首先修改原始主要執行個體中的 tempdb,然後手動容錯移轉,最後修改新主要執行個體中的 tempdb。此方法涉及停機時間。

    如需詳細資訊,請參閱 重新啟動中的資料庫執行個體