【问题标题】:No recovery from hsqldb log-file无法从 hsqldb 日志文件恢复
【发布时间】:2016-03-17 21:58:59
【问题描述】:

我有一个基于 Java/JSP/Hsqldb/Tomcat/Maven 的小型 Web 应用程序以及 Hsqldb 的以下问题:

目前我在应用程序中没有调用shutdowncheckpoint,所以提交的sql语句只插入到Hsqldb.log文件中.

当我想轻松测试应用程序的更新时,我通过将 war 文件替换为 tomcat 的 webapps 文件夹中较新的文件来实现。登录到我的 Web 应用程序后,从数据库中显示的数据不完整/旧,因为 .log 文件中的 sql 语句被忽略。 Hsqldb 的文档告诉如果发生崩溃,.log 文件内容的重播会自动完成,但在我的情况下并非如此。

对我来说处理这种这种崩溃的最佳方法是什么?

  • 在每个commit 之后或至少定期调用checkpoint
  • 使用连接参数hsqldb.full_log_replay=true?
  • 还有其他想法吗?

感谢您的指导。

【问题讨论】:

    标签: tomcat jakarta-ee hsqldb


    【解决方案1】:

    首先,您必须将 WRITE DELAY 设置为 0 或低值。这可确保实际记录数据更改。检查 .script 文件的当前设置。

    定期调用 CHECKPOINT 很好,但不是在每次提交之后。

    为确保播放,请使用hsqldb.full_log_replay=true。如果打开数据库时出现错误,请检查 .log 文件。如果某些行没有完全写出,则会出现错误。

    【讨论】:

    • 写入延迟不是我的重点,因为我目前是该应用程序的唯一用户,默认延迟为 500 毫秒。其他方面有帮助。
    猜你喜欢
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    相关资源
    最近更新 更多