欢迎来到天天文库
浏览记录
ID:12938908
大小:98.50 KB
页数:9页
时间:2018-07-19
《sqlserver收缩数据库》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、sqlserver收缩数据库为什么要收缩数据库SQLServer2000采取预先分配空间的方法来建立数据库的数据文件或者日志文件,比如数据文件的空间分配了100MB,而实际上只占用了50MB空间,这样就会造成存储空间的浪费。为此,SQLServer2000提供了收缩数据库的功能,允许对数据库中的每个文件进行收缩,删除已经分配但没有使用的页。不能将整个数据库收缩到比其原始大小还要小。因此,如果数据库创建时的大小为10MB,后来增长到100MB,则该数据库最小能够收缩到10MB(假定已经删除该数据库中所有数据)。不能在备份数据库时收缩数据库,也不能在收
2、缩数据库时创建或备份数据库。4.8.2什么是自动收缩和手动收缩SQLServer2000支持对数据库实行自动收缩和手工收缩。在如图4.38所示的数据库属性的【选项】选项卡中选择【自动收缩】复选框将实现自动收缩。SQLServer2000服务器每30分钟检查数据库的空间使用情况。如果发现大量闲置的空间,就会自动缩小数据库的文件大小。图4.38设置自动收缩功能利用企业管理器或DBCCSHRINKDATABASE和DBCCSHRINKFILE语句可以完成手工收缩操作。4.8.3收缩数据文件和日志文件有什么不同不论是收缩数据文件还是日志文件,都会确实减少物
3、理文件的大小,两者不同之处如下。数据文件可以作为文件组或单独地进行手工收缩。日志文件收缩分别考虑每个文件,基于整个日志文件进行收缩。日志文件的收缩将删除非活动的VLF。4.8.4收缩操作是如何执行的文件的收缩操作始终从文件末端开始反向进行。例如,如果要将一个5GB的文件收缩到4GB,则SQLServer2000将从文件的最后一个1GB开始释放尽可能多的空间。如果文件中被释放的部分包含使用过的页面,则SQLServer2000会将这些页面重新定位到保留的部分。只能将数据库收缩到没有剩余的可用空间为止。例如,某个5GB的数据库已经有4GB的数据,如果指
4、定将数据库收缩到3GB,则实际上只会释放1GB的空间。如果收缩操作无法收缩日志文件中的所有空间,系统将反馈信息,指出必须执行什么操作以释放更多符合条件的空间。4.8.5收缩数据库的案例(1)在【企业管理器】的管理目标导航【树】下选择刚建立的数据库mydatabase单击鼠标右键,在出现的快捷菜单中选择【所有任务】/【收缩数据库】选项。(2)出现如图4.39所示的【收缩数据库】界面。q 在【数据库大小】区域可以查看【已经分配的空间】和【可用的空间】,这是决定是否进行收缩的重要依据。q 在【收缩操作】区域的【收缩后文件中的最大可
5、用空间】文本框中设置收缩数据库后数据文件中的最大可用空间百分比。选择【在收缩前将页移到文件起始位置】指定在收缩数据库前将页移到文件的起始位置,选择该选项可能会影响性能。q 在【调度】区域选择【根据调度收缩数据库】复选框,单击按钮可以设置自动收缩数据库的时间。 图4.39【收缩数据库】界面图4.40【收缩文件】界面(3)在图4.39中的【收缩文件】区域单击‘收缩文件’按钮出现如图4.40所示的【收缩文件】界面,可以对数据文件或日志文件设置更精细的收缩策略。在【数据库文件】下拉列表框中可以选择要收缩的数据文件或者日志文件。在
6、【收缩操作】区域可以设置文件的具体收缩操作,包括是否截断、压缩页以及收缩后的文件大小等。在【延迟收缩】区域可以设置自动收缩的时间。完成设置后单击按钮。收缩数据库可以删除已经分配但尚未使用的页,从而更好地利用存储空间。与收缩相对应的是扩充数据库,即修改数据库的属性即可。收缩后的可用空间应该留有一定的空闲空间,这样当数据发生更改时不必额外分配空间。2:1、用BACKUPLOGdatabaseWITHNO_LOG清除日志把数据库属性中的故障还原模型改为“简单”可以大大减慢日志增长的速度。 如果把还原模型调到简单,这样就不支持时间点还原了,但是日志文件会
7、很小,如果数据比较重要推荐还是把数据库的还原模型调为完全用BACKUPLOGdatabaseWITHNO_LOG命名后,会截断不活动日志,不减小物理日志文件的大小,但逻辑日志会减小,收缩数据库后会把不活动虚拟日志删除来释放空间,不会损坏数据。如果日志被截断并收缩数据库后,就不能直接用最近的一个全库备份做时间点还原,建议立即备份数据库,以防万一。2、sqlserver运行中,是否能删除主数据库事务日志文件步骤如下:(1)、分离数据库企业管理器--数据库--右击你要删除日志的数据库--所有任务--分离数据库(2)、然后删除日志文件(3)、然后再附加数据
8、库企业管理器--数据库--右击数据库--所有任务--附加数据库这时候只附加。mdf就可以了。3、压缩SQL数据库及日志的详
此文档下载收益归作者所有