HSQLDB 停止定期检查点操作,日志文件不断增长
Posted
技术标签:
【中文标题】HSQLDB 停止定期检查点操作,日志文件不断增长【英文标题】:HSQLDB is stop doing periodic CHEKPOINT operation and log files is keep growing 【发布时间】:2013-06-20 01:23:48 【问题描述】:我们使用 hsqldb (2.2.8) 作为我们在 tomcat web 服务器 (6.19) 上运行的 web 应用程序的内存数据库。我们已将日志文件的最大大小设置为 hsqldb.log_size=200(即 200 MB),
但对于某些生产环境的实例,日志文件 (~/tomcat/work/hypersonic/localDB.log) 的增长速度超出了该范围 (40GB)。
进一步查看日志,我们发现数据库停止执行 CHECKPOINT 操作。 HSQL DB 在执行定期 CHECKPOINT 操作时的默认行为是什么?无论如何我们可以停止增长这个 LOG 文件。
【问题讨论】:
【参考方案1】:.log 的大小达到其限制后,当所有与数据库的连接都已提交时,将执行 CHECKPOINT 操作。您可能有一个尚未提交的连接。
您可以检查 INFORMATION_SCHEMA.SYSTEM_SESSIONS 表并查看事务中是否存在会话。您可以使用 ALTER SESSION 语句重置此类会话。
http://www.hsqldb.org/doc/2.0/guide/sessions-chapt.html
【讨论】:
感谢您的回复。你认为这是因为一些长时间运行的 SQL 吗?您还认为一旦解决了问题就运行 ALTER SESSION (我的意思是,我们是否必须每次都运行它,或者您是否怀疑一些长期挂起/卡住的事务会造成所有这些问题......?最后你能否举一些 ALTER 的例子SESSION 语句) 我运行了一个 SELECT * FROM INFORMATION_SCHEMA.SYSTEM_SESSIONS,它列出了 10 个活动会话,所有会话都将其 TRANSACTION 列显示为“false”,除了我正在执行查询的那个。所以这真的让我对关闭哪个会话感到困惑。 WAITING_FOR_THIS、THIS_WAITING_FOR 也返回空。 在这种情况下是异常情况。连接时尝试执行 CHECKPOINT。以上是关于HSQLDB 停止定期检查点操作,日志文件不断增长的主要内容,如果未能解决你的问题,请参考以下文章