访问 Amazon RDS 上 Microsoft SQL Server 数据库实例的临时数据库 - Amazon Relational Database Service

访问 Amazon RDS 上 Microsoft SQL Server 数据库实例的临时数据库

您现在可以访问 Amazon RDS 上 Microsoft RDS Server 数据库实例的 tempdb 数据库。您可以通过 Microsoft SQL Server Management Studio (SSMS) 或任何其他标准 SQL 客户端应用程序,使用 Transact-SQL 在 tempdb 上运行代码。有关连接到数据库实例的更多信息,请参阅连接到运行 Microsoft SQL Server 数据库引擎的数据库实例

向数据库实例的主用户授予对 CONTROLtempdb 访问权限,以便此用户能够修改 tempdb 数据库选项。主用户不是 tempdb 数据库的数据库拥有者。如果需要,主用户可以授予其他用户 CONTROL 访问权限,使得这些用户也可以修改 tempdb 数据库选项。

注意

您可以在 tempdb 数据库上运行数据库控制台命令 (DBCC)。

修改临时数据库选项

您可以在 Amazon RDS 数据库实例上修改 tempdb 数据库的数据库选项。有关可以修改哪些选项的详细信息,请参阅 Microsoft 文档中的临时数据库

最大文件大小等数据库选项在您重新启动数据库实例之后会保留。您可以修改数据库选项以优化导入数据时的性能,以及防止存储空间不足。

优化导入数据时的性能

在将大量数据导入数据库实例时,如果要优化性能,请将临时数据库的 SIZEFILEGROWTH 属性设置为较大的数字。有关优化 tempdb 的更多信息,请参阅 Microsoft 文档中的优化临时数据库性能

以下示例说明了将大小设置为 100 GB 并将文件增长设置为 10%。

alter database[tempdb] modify file (NAME = N'templog', SIZE=100GB, FILEGROWTH = 10%)

防止存储问题

要防止 tempdb 数据库使用所有可用的磁盘空间,请设置 MAXSIZE 属性。以下示例说明了将该属性设置为 2048 MB。

alter database [tempdb] modify file (NAME = N'templog', MAXSIZE = 2048MB)

缩减临时数据库

可通过两种方法缩减 Amazon RDS 数据库实例上的 tempdb 数据库。可以使用 rds_shrink_tempdbfile 过程,也可以设置 SIZE 属性。

使用 rds_shrink_tempdbfile 过程

您可以使用 Amazon RDS 过程 msdb.dbo.rds_shrink_tempdbfile 缩减 tempdb 数据库。您只能在具有对 rds_shrink_tempdbfile 数据库的 CONTROL 访问权限时调用 tempdb。在调用 rds_shrink_tempdbfile 时,数据库实例不会停机。

rds_shrink_tempdbfile 过程具有以下参数。

参数名称 数据类型 默认值 必需 描述

@temp_filename

SYSNAME

必需

要缩减的文件的逻辑名称。

@target_size

int

null

可选

文件的新大小 (以 MB 为单位)。

以下示例获取 tempdb 数据库的文件的名称。

use tempdb; GO select name, * from sys.sysfiles; GO

以下示例缩减名为 tempdbtest_file 数据库文件,并请求新的 10 MB 大小:

exec msdb.dbo.rds_shrink_tempdbfile @temp_filename = N'test_file', @target_size = 10;

设置 SIZE 属性

您也可以通过设置 tempdb 属性,然后重新启动数据库实例来缩减 SIZE 数据库。有关重新启动数据库实例的更多信息,请参阅重启中的数据库实例

以下示例说明了将 SIZE 属性设置为 1024 MB。

alter database [tempdb] modify file (NAME = N'templog', SIZE = 1024MB)

多可用区部署的注意事项

如果您的 Amazon RDS 数据库实例位于带有数据库镜像(DBM)或 Always On 可用性组(AG)的 Microsoft SQL Server 的多可用区部署内,则需要注意一些事项。

无法复制 tempdb 数据库。存储在您主实例中的任何数据都不会复制到辅助实例。

如果您修改了 tempdb 数据库的上的任何数据库选项,则可以使用以下方法之一在辅助数据库上捕获这些更改:

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

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

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

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