SQL 2008R2 日志文件过大,且收缩无效,
近期发现,数据库的日志文件过大,已达30G。将数据库恢复模式设置为“简单”,再收缩文件-日志,发现无效。
判断原因:数据库搭建了复制,没有清除干净,无法截断事物日志。
执行
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'
![](https://img-blog.csdnimg.cn/img_convert/9e2c4617504d7e870c6150de7689b4f7.png)
正常时log_reuse_wait_desc列应该是NOTHING,如果是REPLICATION,则表示搭建了事务复制,
exec sp_removedbreplication 'dbname' //清除复制状态
再执行
收缩->文件->日志。
log_reuse_wait 值log_reuse_wait_desc 值说明
![](https://img-blog.csdnimg.cn/img_convert/7ec4c378bfbe03f4448ff55290dd5267.png)
根据返回的 log_reuse_wait 值和 log_reuse_wait_desc 描述,可以发现日志不能截断的原因。