收缩数据库
操作场景
使用存储过程收缩指定数据库的数据文件和日志文件的大小,以释放磁盘部分空间。
- rds_shrink_database:收缩指定数据库的全部文件。
- rds_shrink_database_log :收缩指定数据库的日志文件。
更多操作,请参见RDS for SQL Server收缩数据库。
前提条件
- 收缩数据库前,确保实例要预留足够的磁盘空间。
- 成功连接RDS for SQL Server实例。通过SQL Server客户端连接目标实例,具体操作请参见通过公网连接RDS for SQL Server实例。
收缩数据库
- 执行以下命令,进行数据库收缩。
EXEC [master].[dbo].[rds_shrink_database] @DBName='myDbName';
表1 参数说明 参数
说明
myDbName
收缩指定数据库的数据库名称。如果未指定,默认收缩所有数据库。
- 执行成功后,系统会显示执行进度,并最终进行如下提示:
HW_RDS_Process_Successful: Shrink Database Done.
收缩日志文件
执行以下命令,收缩目标数据库的日志文件。
EXEC [master].[dbo].[rds_shrink_database_log] @dbname;
@dbname: 目标数据库。
示例
常见问题
- 如果执行存储过程发生报错,报错信息为“文件正在使用中”,则请稍后再执行存储过程。
- 如果执行存储过程后,日志文件大小未改变,请在目标数据库环境下,执行以下SQL,验证文件是否有足够的可用空间。
SELECT name, size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB FROM sys.database_files WHERE type_desc='LOG';