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

前端之家收集整理的这篇文章主要介绍了sql-server – 缩小日志文件不会减小大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个数据库,它有一个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的导入选项将数据库内容导入另一个数据库.

原文链接:https://www.f2er.com/mssql/79429.html

猜你在找的MsSQL相关文章