MSSQL数据库细节——ldf日志过大无法收缩问题
问题的起因是,执行SQL的时候出现下面的提示:
1、、查看一下数据库文件所在的磁盘,已经爆掉了。查看数据库日志文件
|
昨天遇到一个SQL server日志文件太大,收缩报错的问题在此记录一下。 问题的起因是,执行SQL的时候出现下面的提示: 1、、查看一下数据库文件所在的磁盘,已经爆掉了。查看数据库日志文件大小mssql数据库日志,有70多个G,第一反应是先做数据库日志收缩,依然报错。 2、百度了一下,大部分帖子都说是CDC导致的,但是我的服务器没有使用CDC,排除了这种可能 3、考虑到收缩日志可能需要一定的空间,移出磁盘部分文件,再进行收缩,此时不再提示错误(毕竟磁盘未满),但是收缩没有生效,空间未改变(数据库恢复模式确认为简单) 4、查看数据库和日志的状态 数据库: select name,log_reuse_wait_desc from sys.databases where 日志重用的等待状态是replication状态 --删除数据库中复制对象 EXEC sp_removedbreplication TESTB 再次查询依然是replication状态 查询DBCC loginfo() 发现所有日志的状态都是status=2,即活动的状态,这是因为项目中每次批量写入数据的过程都是异常中断结束,导致所产生的日志都是活跃的状态。 遇到以上情况,直接对数据库做一次完整备份,之后这些日志的状态会自动更新为可以重用的状态,就可以直接收缩掉了。 5、其他场景 将日志中所有复制的事务将标记为已分发有时候也可以解决日志无法收缩问题 EXEC sp_repldone @xactid = NULL,@xact_segno = NULL,@numtrans = 0,@time = 0,@reset = 1 (编辑:海洋资讯信息网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql varchar(max)vs varchar(fix)
- sqlserver中如何寻找出连续日期记录的代码
- 如何使用SQL(BigQuery)计算TF / IDF
- sql server 2012 FileTable有什么功能?
- sql-server – 成功配置SQL Server进行数据库镜像后,收到错
- SQL 2000复制错误 – 订阅已标记为非活动状态,必须重新初始
- html实现a元素href的URL链接自动刷新或新窗口打开功能
- sql-server – 为什么子查询使用并行性而不是连接?
- sql-server – SQL Server支持最大扇区大小为4096字节
- SQL如何使用快照恢复被误删的数据?

