【问题标题】:What happens to H2 database cache on a system crash?系统崩溃时 H2 数据库缓存会发生什么?
【发布时间】:2015-01-24 21:19:59
【问题描述】:

我今天的经历真的很糟糕。我通过 Netbeans IDE 将一些批处理 SQL 脚本应用到我的 H2 数据库(在 TCP 模式下运行)。工作 5 小时后,Netbeans IDE 中的数据库连接突然冻结...随后我重新启动服务器(运行 H2 数据库的服务器),然后我意识到过去 5 小时的所有更改都没有应用或以某种方式回滚...

我的结论是,更改仅在缓存中,并没有刷新到数据库中,因为在每个 SQL 脚本之后查询时,结果在任何时候都是可见的。

因此,在系统故障的情况下,数据库缓存会发生什么?走了……?

【问题讨论】:

    标签: java database caching netbeans h2


    【解决方案1】:

    是的。如果系统发生故障,缓存就会消失。您一定没有提交交易。唯一的保证是它必须回滚(因为它没有被提交并且客户端已经断开连接)。

    如果它已被提交并随后崩溃(在刷新之前),那么服务器仍有可能根据提交/事务日志和内部元数据的某种组合进行恢复。

    【讨论】:

    • 感谢 Elliott 提供的信息。不知何故,我的交易没有正确提交。它现在第二次起作用了。
    猜你喜欢
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 2016-07-10
    • 1970-01-01
    相关资源
    最近更新 更多