欢迎来到天天文库
浏览记录
ID:50136121
大小:17.72 KB
页数:6页
时间:2020-03-04
《sql数据库日志已满的处理方式.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、DBCCSHRINKDATABASE收缩指定数据库中的数据文件大小。语法DBCCSHRINKDATABASE(database_name[,target_percent][,{NOTRUNCATE
2、TRUNCATEONLY}])参数database_name是要收缩的数据库名称。数据库名称必须符合标识符的规则。有关更多信息,请参见使用标识符。target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比。NOTRUNCATE导致在数据库文件中保留所释放的文件空间。如果未指定,将所释放的文件空间释放给操作系统。TRUNCATEONLY导致将数据文件中的任何未使用的空间释放给
3、操作系统,并将文件收缩到上一次所分配的大小,从而减少文件大小,而不移动任何数据。不试图重新定位未分配页的行。使用TRUNCATEONLY时,忽略target_percentis。注释Microsoft®SQLServer™可收缩:特定数据库的所有数据和日志文件。执行DBCCSHRINKDATABASE。一次一个特定数据库中的数据或日志文件。执行DBCCSHRINKFILE。DBCCSHRINKDATABASE以每个文件为单位对数据文件进行收缩。然而,DBCCSHRINKDATABASE在对日志文件进行收缩时,看起来好像所有的日志文件都存在于一个连续的日志池中。假设名为mydb的数据库有两个
4、数据文件和两个日志文件。这些数据文件和日志文件大小都为10MB。第一个数据文件包含6MB数据。对于每个文件,SQLServer计算目标大小,即要收缩文件到的大小。当用target_percent指定DBCCSHRINKDATABASE时,SQLServer计算的目标大小是收缩后文件中的target_percent可用空间大小。例如,如果指定按target_percent为25收缩mydb。SQLServer计算的该文件的目标大小为8MB(6MB数据加上2MB可用空间)。因此,SQLServer将任何数据从数据文件的最后2MB中移动到数据文件前8MB的可用空间中,然后对该文件进行收缩。假设m
5、ydb的第一个数据文件包含7MB的数据。若将target_percent指定为30,则允许将该数据文件收缩到所要的可用百分比30。然而,若将target_percent指定为40,就不会收缩该数据文件,因为SQLServer不能将文件收缩到比数据当前占有的空间还小的程度。也可以从另一个角度考虑这个问题:40%要求的可用空间+70%完整的数据文件(10MB中的7MB)大于100%。因为所要求的可用百分比加上数据文件占用的当前百分比大于100%(多出10%),所以任何大于30的target_size都不会收缩该数据文件。对于日志文件,SQLServer使用target_percent以对整个日
6、志的目标大小进行计算;因此,target_percent是收缩操作后日志中的可用空间大小。之后,整个日志的目标大小可以解释为每个日志文件的目标大小。DBCCSHRINKDATABASE尝试立即将每个物理日志文件收缩到其目标大小。如果虚拟日志中的所有逻辑日志部分都没有超出日志文件的目标大小,则该文件将成功截断,DBCCSHRINKDATABASE完成且不显示任何消息。然而,如果虚拟日志中的逻辑日志部分超出其目标大小,则SQLServer释放尽可能多的空间并发出一条消息。该消息告诉您需要执行什么操作来移动文件末尾超出虚拟日志的逻辑日志部分。执行完该操作后,可以重新发出DBCCSHRINKDAT
7、ABASE命令以释放剩余的空间。有关收缩事务日志的更多信息,请参见收缩事务日志。因为日志文件只能收缩到虚拟日志文件边界,所以不可能将日志文件收缩到比虚拟日志文件更小(即使现在没有使用该文件)。例如,可以将数据库的1GB日志文件收缩到只有128MB。有关截断的更多信息,请参见截断事务日志。有关确定虚拟日志文件大小的更多信息,请参见虚拟日志文件。由DBCCSHRINKDATABASE计算的数据和日志文件的目标大小始终不小于文件的最小大小。文件的最小大小是在文件最初创建时指定的大小,或是上一次用更改文件大小的操作(如用带有MODIFYFILE选项的ALTERDATABASE或DBCCSHRINK
8、FILE)显式设置的大小。例如,如果在执行CREATEDATABASE时,将mydb的所有数据和日志文件大小都指定为10MB,则每个文件的最小大小都为10MB。DBCCSHRINKDATABASE不能收缩任何小于10MB的文件。如果使用带有MODIFYFILE选项的ALTERDATABASE将其中的一个文件显示增长到20MB,则该文件新的最小大小为20MB。若要将文件大小收缩到小于其最小大小,请使用DBCCSHRINKF
此文档下载收益归作者所有