我有一个数据库,它有一个350 MB的数据文件(.mdf)和一个4.9 GB的日志文件(.ldf).恢复模型设置为FULL.
当我尝试缩小日志文件时,它并没有缩小.
我知道缩小数据库并不好,不应该这样做.但我仍然试图缩小日志文件.
当我跑
DBCC SQLPerf(logspace)
我发现日志大小为4932 MB,使用的日志空间为98.76%!
然后我尝试了这个命令
USE <databasename>; DBCC loginfo;
现在几乎所有的VLF都是“状态2”,这意味着所有的VLF都在使用中.
我尝试进行日志备份,然后收缩日志文件.收缩并没有减小尺寸.
我将恢复模式更改为SIMPLE并尝试再次收缩,但这也没有帮助.
我检查了未完成的交易
DBCC opentran (database);
并发现现在没有交易.
什么阻止我缩小日志文件?我怎么解决这个问题?
解决方法
这是我自己的问题的答案.
运行以下查询以获取有关日志文件的重用等待的信息:
SELECT log_reuse_wait_desc FROM sys.databases WHERE name = 'DBName'
我得到以下输出:
log_reuse_wait_desc ------------------- REPLICATION
即使在删除复制之后,数据库中仍有一些与复制相关的对象.
要从数据库中删除复制,可以使用sp_removedbreplication.但它对我们不起作用,因为当时复制不活跃,实际上复制早已被删除.
解决方案是使用SQL Server的导入选项将数据库内容导入另一个数据库.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。