多可用区部署的 TempDB 配置 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

多可用区部署的 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 代理任务和 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 配置时都需要执行这些手动任务。

  • 首先修改数据库实例并关闭多可用区,然后修改临时数据库,最后重新启用多可用区。此方法不会有任何停机时间。

    有关更多信息,请参阅“修改 Amazon RDS 数据库实例”。

  • 首先在原始主实例中修改 tempdb,然后手动执行故障转移,最后在新的主实例中修改 tempdb。此方法需要停机。

    有关更多信息,请参阅 重启中的数据库实例