Sql server 无论我做什么,都无法收缩事务日志

Sql server 无论我做什么,都无法收缩事务日志,sql-server,sql-server-2008,transaction-log,Sql Server,Sql Server 2008,Transaction Log,我有一个数据库,它的tlog已经增长到4.5GB。 数据库处于完全恢复模式,我已经尝试了几次事务日志备份以及 DBCC收缩文件。 而且它不会收缩。 有人有什么想法吗 有几个状态为2的事务,但数据库中没有活动事务。我想知道为什么它们仍然显示为status=2。如果您实际上对事务日志的内容不感兴趣,请运行该命令 BACKUP LOG dbname WITH NO_LOG 然后运行DBCC SHRINKFILE 编辑:没有意识到2008年已经删除了这些-我们只是切换到它。在2008年,您必须临时将恢

我有一个数据库,它的tlog已经增长到4.5GB。 数据库处于完全恢复模式,我已经尝试了几次事务日志备份以及 DBCC收缩文件。 而且它不会收缩。 有人有什么想法吗


有几个状态为2的事务,但数据库中没有活动事务。我想知道为什么它们仍然显示为status=2。

如果您实际上对事务日志的内容不感兴趣,请运行该命令

BACKUP LOG dbname WITH NO_LOG
然后运行DBCC SHRINKFILE

编辑:没有意识到2008年已经删除了这些-我们只是切换到它。在2008年,您必须临时将恢复模型设置为simple,然后运行DBCC SHRINKFILE,然后再次将恢复模型设置为Full。 代码如下:


如果您实际上对事务日志的内容不感兴趣,请运行该命令

BACKUP LOG dbname WITH NO_LOG
然后运行DBCC SHRINKFILE

编辑:没有意识到2008年已经删除了这些-我们只是切换到它。在2008年,您必须临时将恢复模型设置为simple,然后运行DBCC SHRINKFILE,然后再次将恢复模型设置为Full。 代码如下:


您很可能有以下情况之一:

  • 未提交的交易
  • 孤立的交易
  • 长时间运行的操作(如索引碎片整理/重建、创建索引、checkdb、长时间运行的查询等)
  • 如果您使用的是复制,则未复制的事务

还有一些其他的可能性,但概述了大多数/所有可能的原因以及如何确定它们是否/在哪里/是什么,以及来自和的一些额外的好信息(最后一个有点过时,但大多数仍然适用)。

您很可能有以下情况之一:

  • 未提交的交易
  • 孤立的交易
  • 长时间运行的操作(如索引碎片整理/重建、创建索引、checkdb、长时间运行的查询等)
  • 如果您使用的是复制,则未复制的事务
还有其他一些可能性,但概述了大多数/所有可能的原因以及如何确定它们是否/在哪里/是什么,以及来自和的一些额外的好信息(最后一个有点过时,但大多数仍然适用)。

  • 用于获取未结交易
  • 中密度纤维板有多大?如果是5GB或更高,我会留下日志文件
  • 也许日志文件需要是他的大文件
  • 当它长大时,它会再次碎裂
  • 请查看的网站。他写了很多t-log代码
最后,如果你真的卡住了,我会考虑附加/分离来删除日志文件。然而,这只是在你绝望的时候…

  • 用于获取未结交易
  • 中密度纤维板有多大?如果是5GB或更高,我会留下日志文件
  • 也许日志文件需要是他的大文件
  • 当它长大时,它会再次碎裂
  • 请查看的网站。他写了很多t-log代码

最后,如果你真的卡住了,我会考虑附加/分离来删除日志文件。但是,这只是在您非常绝望的情况下…

如果是SQL,则对数据库进行完整备份,然后备份事务日志,然后收缩数据库。出于某种原因,它喜欢在截断日志之前进行完整备份。您可能可以通过差异解决问题,但请查看第一部分是否有效。

如果是SQL,则对数据库进行完整备份,然后备份事务日志,然后收缩数据库。出于某种原因,它喜欢在截断日志之前进行完整备份。您可能可以通过差异解决问题,但请查看第一部分是否有效。

我们有一项任务,要从另一个链接服务器写入数据库。 它正在做一些巨大的删除。 我们优化了该作业,并成功地将日志文件压缩到100MB


谢谢

我们的任务是从另一个链接服务器写入数据库。 它正在做一些巨大的删除。 我们优化了该作业,并成功地将日志文件压缩到100MB


谢谢

在我的例子中,数据库被标记为复制,尽管它看起来不像

运行以下命令将清除复制,并且shrinkfile命令按预期工作

1) sp_ReplicationDBO选项“DatabaseName”、“publish”、“false”

2) sp_ReplicationDBO选项“DatabaseName”、“合并发布”、“false”

3) sp_removedbreplication“databasename”


参考资料:

在我的例子中,数据库被标记为复制,尽管它看起来不像

运行以下命令将清除复制,并且shrinkfile命令按预期工作

1) sp_ReplicationDBO选项“DatabaseName”、“publish”、“false”

2) sp_ReplicationDBO选项“DatabaseName”、“合并发布”、“false”

3) sp_removedbreplication“databasename”


参考:

SQL Server 2008中删除了不带日志和只带TRUNCATE的两个命令。我尝试了,但没有帮助。事实上,由于数据导入,当日志变得非常大时,数据库非常简单。所以我切换到full,做了一个full和tlog备份,然后运行了一个dbcc shrinkfile,所有这些都没有帮助。SQL Server 2008中删除了不带日志和只带TRUNCATE的两个命令。我尝试了,没有帮助。事实上,由于数据导入,当日志变得非常大时,数据库非常简单。因此,我切换到完整,进行了完整和tlog备份,然后运行了dbcc shrinkfile,所有这些都没有帮助。我为大日志转储道歉。请删除转储,因为我无法编辑您的帖子。我为大日志转储道歉。请删除转储,因为我无法编辑您的帖子。不要在UI中使用dbcc SHRINKDATABASE或收缩数据库选项。如果需要收缩单个文件,最好显式使用DBCC SHRINKFILE。查看Tibor的网站:也可以查看此处的链接和讨论:不要使用DBCC SHRIN