访问 Amazon RDS 上 Microsoft SQL Server 数据库实例的临时数据库
您现在可以访问 Amazon RDS 上 Microsoft RDS Server 数据库实例的 tempdb
数据库。您可以通过 Microsoft SQL Server Management Studio (SSMS) 或任何其他标准 SQL 客户端应用程序,使用 Transact-SQL 在 tempdb
上运行代码。有关连接到数据库实例的更多信息,请参阅连接到运行 Microsoft SQL Server 数据库引擎的数据库实例。
向数据库实例的主用户授予对 CONTROL
的 tempdb
访问权限,以便此用户能够修改 tempdb
数据库选项。主用户不是 tempdb
数据库的数据库拥有者。如果需要,主用户可以授予其他用户 CONTROL
访问权限,使得这些用户也可以修改 tempdb
数据库选项。
注意
您可以在 tempdb
数据库上运行数据库控制台命令 (DBCC)。
修改临时数据库选项
您可以在 Amazon RDS 数据库实例上修改 tempdb
数据库的数据库选项。有关可以修改哪些选项的详细信息,请参阅 Microsoft 文档中的临时数据库
最大文件大小等数据库选项在您重新启动数据库实例之后会保留。您可以修改数据库选项以优化导入数据时的性能,以及防止存储空间不足。
优化导入数据时的性能
在将大量数据导入数据库实例时,如果要优化性能,请将临时数据库的 SIZE
和 FILEGROWTH
属性设置为较大的数字。有关优化 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
过程具有以下参数。
参数名称 | 数据类型 | 默认值 | 必需 | 描述 |
---|---|---|---|---|
|
SYSNAME |
— |
必需 |
要缩减的文件的逻辑名称。 |
|
int |
null |
可选 |
文件的新大小 (以 MB 为单位)。 |
以下示例获取 tempdb
数据库的文件的名称。
use tempdb; GO select name, * from sys.sysfiles; GO
以下示例缩减名为 tempdb
的 test_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
。此方法需要停机。有关更多信息,请参阅 重启中的数据库实例。