gpt4 book ai didi

java - 堆空间错误和 H2 数据库损坏

转载 作者:行者123 更新时间:2023-12-03 23:50:08 26 4
gpt4 key购买 nike

对于我们使用 H2 数据库的多线程应用程序,我们看到了
在发生堆空间错误之后,我们的日志中立即出现以下错误:

java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space ........ org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "[17806] stream data key:1922 pos:11 remaining:0". Possible solution: use the recovery tool; SQL statement: update keys set taken=false where taken=true [90030-155] at org.h2.message.DbException.getJdbcSQLException(DbException.java: 327) at org.h2.message.DbException.get(DbException.java:167) at org.h2.message.DbException.get(DbException.java:144) at org.h2.index.PageDataIndex.getPage(PageDataIndex.java:230) at org.h2.index.PageDataNode.getNextPage(PageDataNode.java:226) at org.h2.index.PageDataLeaf.getNextPage(PageDataLeaf.java:391) at org.h2.index.PageDataCursor.nextRow(PageDataCursor.java:90) at org.h2.index.PageDataCursor.next(PageDataCursor.java:49) at org.h2.index.IndexCursor.next(IndexCursor.java:235) at org.h2.table.TableFilter.next(TableFilter.java:352) at org.h2.command.dml.Update.update(Update.java:89) at org.h2.command.CommandContainer.update(CommandContainer.java:71) at org.h2.command.Command.executeUpdate(Command.java:212) at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java: 125) at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110) ... 6 more



这是 H2 的已知问题吗?

此外,当我尝试使用恢复工具从损坏的数据库中恢复数据时,我
只能恢复10%。原始数据库大小为 1.6 GB,而
恢复的数据库大小仅为 81 MB。我使用恢复工具将损坏数据库中的所有数据导出到 .sql 文件中,然后通过针对 H2 数据库运行此脚本来重新创建数据库。还有什么我想念的吗?

最佳答案

这意味着您的数据库已损坏。至于它究竟为什么被破坏,那就更难说了。

恢复工具会尽力而为,但是当数据库严重损坏时,它总是无能为力。

恢复工具的文档在这里:
http://h2database.com/html/advanced.html#using_recover_tool

关于java - 堆空间错误和 H2 数据库损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7474563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com