云数据库 SQL Server 收缩数据库(实践教程)

在 SQL Server 数据库中进行数据清理后,虽然对应的数据页会从数据文件中删除,但数据文件本身所占用的磁盘空间并不会自动释放。为了回收这些未使用的空间,需要使用收缩数据库功能来手动释放数据文件占用的磁盘空间。

相关产品
云数据库 SQL Server 产品页,含版本规格、价格与购买入口。

一、数据清理和可释放磁盘空间

如上图所示,在进行了数据清理后,数据文件仍然占用133MB的磁盘空间,Available free space 显示93MB,这说明可以使用收缩数据库功能,最多可以释放出93MB的磁盘空间。

如上图所示,使用收缩数据库功能回收了部分 Available free space 后,数据文件占用磁盘空间变为50MB。

二、方案一:通过控制台收缩数据库

1. 登录 SQL Server 控制台,在实例列表,单击实例 ID 或操作列的管理,进入实例管理页面。

2. 在实例管理页面,选择数据库管理页,选择目标数据库所在行,在操作列选择其他 > 收缩数据库。

3. 开启后,流程会自动以2G一次的收缩量进行循环收缩,直到释放掉所有的 Available free space 为止。

三、方案二:使用 SSMS 连接实例,使用脚本进行收缩

注意:收缩数据库可能会产生较大的日志和阻塞,因此,当你使用脚本进行收缩时,不建议一次性收缩较大量级(例如一次性收缩50G以上)。建议在业务低峰期,少量多次进行收缩。

四、步骤1:通过 SSMS 连接到 SQL Server 实例

操作可参考 从 Windows 云服务器连接 SQL Server 实例,或者 从本地连接 SQL Server 实例 中的连接方法。

五、步骤2:使用脚本进行收缩

注意:说明:

注意:实际使用下面的命令时,请将变量替换为实际的信息:

USE [database]GODBCC SHRINKFILE (N'数据库逻辑文件名' , 收缩的目标大小)GO

示例:将 MyDB 的数据文件 MyDBData 收缩到40MB。

USE [MyDB]GODBCC SHRINKFILE (N'MyDBData' , 40)GO

赞 (0)
上一篇 4天前
下一篇 4天前