對於我們的多線程應用程序,我們在日誌中看到 以下錯誤立即堆空間錯誤以下:使用H2數據庫堆空間錯誤和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數據庫運行此腳本,從中重新創建數據庫。還有什麼我失蹤的?
什麼和在哪裏是完全恢復工具?謝謝 – linuxatico