Sql server 无论我做什么,都无法收缩事务日志
我有一个数据库,它的tlog已经增长到4.5GB。 数据库处于完全恢复模式,我已经尝试了几次事务日志备份以及 DBCC收缩文件。 而且它不会收缩。 有人有什么想法吗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年,您必须临时将恢
有几个状态为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