加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLServer事务日志的压缩与删除方法

发布时间:2016-09-06 01:37:44 所属栏目:MsSql教程 来源:站长网
导读:做项目的时候拿到一个只有280M的数据库备份,可是在SQLServer 2000下恢复的时候等了半天才都没 有恢复完毕,感觉很不可思议,于是怀疑有什么猫腻。到了数据文件
做项目的时候拿到一个只有280M的数据库备份,可是在SQLServer 2000下恢复的时候等了半天才都没 有恢复完毕,感觉很不可思议,于是怀疑有什么猫腻。到了数据文件的目录下一看,果不其然竟然声称了 一个接近10G的数据库日志文件!以前从来没有做过那么多数据的数据库,而且更没有做过有3年数据库日 志记录的数据库。

这对于硬盘空间不是很充裕的我来说已经超过了能够忍受的极限,而且另一个80M的 数据库回复之后生成的日志文件更是夸张的达到了5G+!这是不能忍受的,也是不能被原谅的。

刚开始 的时候不太懂,直接把数据库日志删除了,发现这样数据库就不能用了,于是百度了一下,发现网上很多 提到了日志的压缩和删除技术,正是我想要掌握的内容。仔细整理了一下,大致有这么几种方法解决。

方法一:

第一步:

backup log database_name with no_log
或者 backup log database_name with truncate_only

-- no_log和truncate_only是在这里是同义的,随便执行哪一句都可以。

第二步:

1.收缩特定数据库的所有数据和日志文件,执行:

dbcc shrinkdatabase (database_name,[,target_percent])

-- database_name是要收缩的数据库名称;target_percent是数据库收缩后的数据库文件中所要的剩 余可用空间百分比。

2.收缩一次一个特定数据库中的数据或日志文件,执行

dbcc shrinkfile(file_id,[,target_size])

-- file_id是要收缩的文件的标识 (ID) 号,若要获得文件 ID,请使用 FILE_ID 函数或在当前数据库 中搜索 sysfiles;target_size是用兆字节表示的所要的文件大小(用整数表示)。如果没有指定,dbcc shrinkfile 将文件大小减少到默认文件大小。两个dbcc都可以带上参数notruncate或truncateonly,具 体意思查看联机帮助.

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读