金蝶、管家婆、用友SQL2008 R2数据库.ldf日志文件过大如何进行收缩瘦身?
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
大家在使用财务软件的时候,会经常发现数据库的.ldf日志文件过大,毕竟各种访问操作都在.ldf日志文件里,在不经意间可能就有个上百G甚至几百G的文件,搞的盘都快崩了,其实数据很少,无非上百M或者几百M的文件,那如何给.ldf日志文件瘦身减肥呢?来说一下;
SQL Server 随着运行时间变长,数据量变大,【.ldf】日志文件会变得越来越大,当日志文件过大时,有可能引起数据库运行变慢,数据读写不正常等问题。可以通过以下方法对日志文件进行瘦身,具体步骤如下:
SQL2008 R2数据库.ldf日志文件过大收缩瘦身的方式方法(收缩SQL数据库日志)
写在最前面,任何数据操作都需要备份,免得没有后悔药,不会操作的情况下还是找官方或者专业人事(比如老梁,狗头保命),切勿拿自己的心血尝试玩耍;
1、【开始】菜单 - 选择【Microsoft SQL Server 2008 R2】 - 【SQL Server Management Studio】;
2、选择或输入【服务器名称或者一个点(不是句号)】- 选择身份验证方式 - Windows身份验证,连接SQL服务器;
3、 在SQL SERVER Management Studio 中---右击需要收缩数据库文件选择“属性”---》“选项”,将恢复模式由默认的“完整”改为“简单”。
4、再次右键选择数据库的“任务”--》“收缩”---》“文件”菜单,进入收缩文件页面,
5、将(要收缩的)文件类型选定为“日志”, 将页面下面的“收缩操作”单选框里选择“在释放未使用的空间前重新组织页,将文件收缩到:”,然后填写合适的收缩后的日志文件大小。比如输入10M或者100M都可以;
最后点击这个页面下面的“确定”按钮,以执行收缩文件(日志)操作。执行完毕后,用户可以查到该日志文件收缩到指定的大小。
6、特别重要--再回到刚才变为简单哪里,数据库恢复模式修改为完整,切记;(一定要操作)
关于数据库.ldf日志文件的延伸阅读:
1、SQL语句来缩小(收缩)数据库.ldf日志文件
下面的数据库为要收缩的数据库名称 –SQL Server 2008R2 收缩日志 -------改变数据库模式(简单)
alter database 数据库 set recovery simple
DBCC SHRINKFILE (N’数据库_log’ , 10) --将日志文件改为10M
----------恢复数据库模式(完整)
alter database 数据库 set recovery full
上面代码依次执行,可以收缩日志文件;
2、SQL 2008R2 日志文件过大,且收缩无效,
将数据库恢复模式设置为“简单”,再收缩文件-日志,发现无效。
判断原因:数据库搭建了复制,没有清除干净,无法截断事物日志。
执行
SELECT name,log_reuse_wait_desc FROM sys.databases where name='dbname'
或者执行
SELECT log_reuse_wait , log_reuse_wait_desc FROM sys.databases WHERE name='dbname'
正常时log_reuse_wait_desc列应该是NOTHING,如果是REPLICATION,则表示搭建了事务复制,
exec sp_removedbreplication 'dbname' //清除复制状态
再执行----收缩->文件->日志。
log_reuse_wait 值log_reuse_wait_desc 值说明
根据返回的 log_reuse_wait 值和 log_reuse_wait_desc 描述,可以发现日志不能截断的原因。
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!