Amazon Relational Database Service
用户指南 (API Version 2014-10-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

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

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

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

注意

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

修改临时数据库选项

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

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

优化导入数据时的性能

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

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

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

防止存储问题

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

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

缩减临时数据库

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

使用 rds_shrink_tempdbfile 过程

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

rds_shrink_tempdbfile 过程具有以下参数。

参数名称 数据类型 默认值 必需 说明

@temp_filename

SYSNAME

-

必需

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

@target_size

int

null

可选

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

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

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

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

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

设置 SIZE 属性

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

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

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

多可用区部署的注意事项

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

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

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

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

    有关更多信息,请参阅 修改运行 Microsoft SQL Server 数据库引擎的数据库实例

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

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