我正在使用sql Server 2014.我有一个处于SIMPLE恢复模型模式的数据库.它也在被复制.
没有公开交易.我运行DBCC OPENTRAN并返回:
“No active open transactions.”
但每当我尝试创建或删除表或删除数据时,我都会收到此消息:
(我用data_name替换了我的实际数据库名称)
“The transaction log for database ‘database_name’ is full due to ‘XTP_CHECKPOINT'”
有谁知道为什么会发生这种情况,更重要的是,我怎么能让它停止?
是的,数据库确实处于SIMPLE恢复模式模式.即事务日志应自动截断.
顺便说一句,我在完全恢复模式下的另一个数据库做了同样的事情,开始返回相同的错误:
The transaction log for database ‘database_name’ is full due to ‘XTP_CHECKPOINT’
我试图将日志增长设置更改为无限增长,但它不会让我,返回相同的错误.
除了文件组之外,我可以在没有任何XTP内容的情况下重现问题.方法如下:http://pastebin.com/jWSiEU9U
解决方法
Cannot shrink log file X because the logical log file located at the end of the file is in use.
手动检查点失败:
Msg 41315,Level 16,State 4,Line N
Checkpoint operation Failed in database X.
手动检查点仅在重新启动sql服务后才成功,由于我的Multi Tb数据库大小,这将导致4小时的恢复状态.我还尝试将自动增长设置为特定大小,但最终都是这样做:填写事务日志,直到没有剩余空间.
最后,经过几天的努力和研究,我通过安装Cumulative Update 3 for SQL Server 2014 SP1找到了我的问题的解决方案