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 停止定期检查点操作,日志文件不断增长的主要内容,如果未能解决你的问题,请参考以下文章

部署Awstats日志分析系统

如何清除SQLserver 日志

Spring Batch , HSQLDB 随时间增长

观看/阅读不断增长的日志文件

Linux日志收集logrotate原理介绍

watch:定期重复Linux / Unix命令