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

sql-server – 缩小日志文件不会减小大小

发布时间:2020-12-12 06:21:28 所属栏目:MsSql教程 来源:网络整理
导读:我有一个数据库,它有一个350 MB的数据文件(.mdf)和一个4.9 GB的日志文件(.ldf).恢复模型设置为FULL. 当我尝试缩小日志文件时,它并没有缩小. 我知道缩小数据库并不好,不应该这样做.但我仍然试图缩小日志文件. 当我跑 DBCC SQLPerf(logspace) 我发现日志大小为4
我有一个数据库,它有一个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的导入选项将数据库内容导入另一个数据库.

(编辑:李大同)

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

    推荐文章
      热点阅读