缩小 Project Server 2007 中的数据库
更新时间: 2008年9月
上一次修改主题: 2008-09-16
调整任何服务器场的部署规模都达不到精准的程度。既要谨慎考虑,又要避免在 SQL Server 实例中分配空间过多,最好是二者兼顾。一旦您的系统达到了稳定的状态(每年所要创建的项目数几乎与所要存档/删除的项目数持平),您或许能够减少最初的分配量来恢复 SQL Server 实例上的空间。
缩小数据文件
在 SQL Server 2005 和 SQL Server 2000 中,您可以缩小数据库中的每个文件(扩展名为 .mdf, .ldf, 和 .ndf)以移除未使用页并恢复磁盘空间。虽然众多活动在 SharePoint 产品和技术数据库中创建了空白区域,该数据库也不会自动缩小数据文件。能够创建空白区域的活动包括运行 Stsadm mergecontentdbs 操作,以及删除项目工作环境内的项目、资源、大型自定义域、文档、文档库、列表、列表项以及站点。
可用空间是从文件结尾释放的 — 例如,有一个 60 GB 的内容数据库文件,如果将其目标大小指定为 40 GB,将会从该数据库文件的底部释放出 20 GB 的空间。如果使用的页面包含在底部的 20 GB 中,这些页面随后将重新指定到该文件所保留的前 40 GB 中。您可以使用 sp_spaceused 存储过程来确定数据库中的可用空间。有关详细信息,请参阅 sp_spaceused (Transact-SQL) (https://go.microsoft.com/fwlink/?linkid=128515\&clcid=0x804)。
您既可以单独缩小各个数据库文件,也可以将数据库文件成组删除。当大型文件或网站有可能生成大量未使用的空间时,执行缩小操作最奏效。数据库文件可以缩小得恰到好处,不剩任何空闲空间;因此对于并不频繁删除其中内容的内容数据库而言,执行缩小操作的好处并不大。由于缩小操作并不保留索引的碎片状态,因此反复执行缩小操作会导致碎片增多。您不必像整理索引碎片那样频繁缩小数据库。不过,如果处于经常删除数据库数据的环境下,则可能需要安排更加频繁地缩小数据库文件。
如果要缩小数据库,应考虑以下事项:
我们既不建议您自动缩小数据库,也不建议您配置维护计划以编程的方式来缩小数据库。
只有当用户已将数据库中至少 50% 的内容移除或者由管理员将这些内容删除后,才考虑缩小数据库。
我们建议您仅仅缩小内容数据库。配置数据库、管理中心内容数据库、SSP 数据库以及搜索数据库通常不会删除足够的内容来释放大量的可用空间。
在容量计划中纳入扩大的分配容量(包含 10-20 % 的容量分配开销),可以免除缩小数据库的需要。
缩小数据库是一项消耗资源的操作。因此,如果您必须缩小数据库,则应该认真考虑何时安排执行此类操作。
通过执行 DBCC SHRINKFILE 和 DBCC SHRINKDATABASE 语句,以及使用 SQL Server 2005 Management Studio 或 SQL Server 2005 维护计划向导,可以手动缩小数据库和数据库文件以恢复空间。
使用 Transact-SQL 命令缩小数据库
DBCC SHRINKDATABASE 可缩小特定数据库的数据和日志文件。若要单独缩小各个文件,请使用 DBCC SHRINKFILE。有关详细信息,请参阅 DBCC SHRINKDATABASE (Transact-SQL) (https://go.microsoft.com/fwlink/?linkid=128516\&clcid=0x804) 和 DBCC SHRINKFILE (Transact-SQL) (https://go.microsoft.com/fwlink/?linkid=128517\&clcid=0x804)。
您还可以使用 SQL Server Management Studio 来缩小数据库。有关详细信息,请参阅如何:缩小数据库 (SQL Server Management Studio) (https://go.microsoft.com/fwlink/?linkid=128518\&clcid=0x804)。