SQL Server 2014:事务日志错误:“由于 'XTP_CHECKPOINT',数据库 'ClientDB' 的事务日志已满。”

Posted

技术标签:

【中文标题】SQL Server 2014:事务日志错误:“由于 \'XTP_CHECKPOINT\',数据库 \'ClientDB\' 的事务日志已满。”【英文标题】:SQL Server 2014 : Transaction Logs error : “The transaction log for database 'ClientDB' is full due to 'XTP_CHECKPOINT'.”SQL Server 2014:事务日志错误:“由于 'XTP_CHECKPOINT',数据库 'ClientDB' 的事务日志已满。” 【发布时间】:2015-04-27 12:13:02 【问题描述】:

SQL Server 版本:Microsoft SQL Server 2014 - 12.0.2495.0 (X64) 2015 年 3 月 31 日 09:47:37 版权所有 (c) 微软公司 Windows NT 6.3(内部版本 9600:)上的企业评估版(64 位)

数据库恢复模式:完全 备份类型:完整

使用SQLBulkCopyBatch size : 10000 执行简单的insert 事务

一段时间后出现的数据库错误如下:

“由于 'XTP_CHECKPOINT',数据库 'ClientDB' 的事务日志已满。”

出现此错误消息后,我无法执行任何操作。无法缩小日志文件。

【问题讨论】:

【参考方案1】:

我有一个类似的问题:我没有复制,但是一旦我使用内存优化表作为测试,数据库处于简单恢复模式,但我的事务日志没有被截断。手动截断,即使是在完全备份之后,也会出现错误:

无法收缩日志文件 X,因为位于文件末尾的逻辑日志文件正在使用中。

手动检查点失败:

消息 41315,第 16 级,状态 4,第 N 行 数据库 X 中的检查点操作失败。

手动检查点仅在重新启动 SQL 服务后才成功,由于我的 Multi Tb 数据库大小,这将导致 4 小时处于恢复状态。我还尝试将自动增长设置为特定大小,但最终都做了同样的事情:填满事务日志,直到没有空间为止。

最后,经过日日夜夜的尝试和研究,我通过安装Cumulative Update 3 for SQL Server 2014 SP1找到了解决我的问题的方法

【讨论】:

【参考方案2】:

我不确定,但你可以看到this link

他们提出:“...... XTP_CHECKPOINT 不能从 log_reuse_wait 中删除,除非完成完整的数据库备份......”

【讨论】:

以上是关于SQL Server 2014:事务日志错误:“由于 'XTP_CHECKPOINT',数据库 'ClientDB' 的事务日志已满。”的主要内容,如果未能解决你的问题,请参考以下文章

SQL SERVER 日志已满的处理方法 (转)

如何清理SQL Server中的事务日志

如何查看 SQL Server 2005 事务日志文件

sql server 2000日志有啥用处

sqlserver中事务的作用是啥?

SQL Server事务日志被填满的原因是啥