10 sql-server-2005 sql-server shrink
我有一个 SQL Server 2005 开发数据库,它是一个 30GB 的 live 副本。我们删除了一些开发中不需要的数据,这使得使用的数据文件空间降到了 20GB。所以我们有大约 33% 未使用。
我需要回收空间,这将允许我们在服务器上拥有第二个开发数据库(基于缩减版本);但是,我无法收回空间,我已完成以下操作:
文件的初始大小SMS2_Data为 30GB。
DBCC SHRINKFILE (N'SMS2_Data' , 0, TRUNCATEONLY)
Run Code Online (Sandbox Code Playgroud)
其次是
DBCC SHRINKFILE (N'SMS2_Data' , 19500)
Run Code Online (Sandbox Code Playgroud)没有喜悦。我尝试进行备份,创建一个初始大小较低的新数据库,然后恢复,但初始大小被覆盖时并不高兴。也试过:
ALTER DATABASE SMS2HazSub MODIFY FILE (NAME = 'SMS2_Data', SIZE = 20000)
Run Code Online (Sandbox Code Playgroud)
这错误,说:
修改文件失败。指定大小小于当前大小。
我尝试了 20800,然后一直上升到 29000(29GB),但它仍然不让我改变它。
完成了收缩,然后将恢复模式从FULL到SIMPLE和再更改回来。没有喜悦。
我认为这与某些TEXT领域有关。我们在整个系统中大约有 6 个。因此,作为测试,我将它们全部删除,然后对文件进行了缩小,但仍然没有变化。
剩下的唯一选择是将数据重新导入另一个数据库。这是不切实际的,因为它必须在实时数据库上完成,这会带来太多风险。我们半定期地获取实时数据库的副本并覆盖开发/测试。我们有大约 500 张桌子。我想要一种不会将数据导出到新数据库的风险的方法。
我尝试将数据移动到另一个文件,它复制了除 5% 之外的所有数据。这就是导致我尝试删除所有文本列的原因。
服务器处于兼容模式 90,但为 SP2。我现在已经完成了以下 3 次:重新索引所有表、备份数据库、收缩文件、收缩数据库。还是没有快乐。
EXECUTE sp_spaceused 返回:
database_name database_size unallocated space
SMS2Tests 31453.94 MB 13903.16 MB
reserved data index_size unused
16545568 KB 10602264 KB 4254360 KB 1688944 KB
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18022 次 |
| 最近记录: |