我们有一个H2数据库,看起来是一个损坏的表。使用H2 Web控制台,我们可以在除一个表之外的所有表上运行SELECT *查询。对于这一个表TBL_TRANSACTION,我们得到错误结果:
SELECT * FROM TBL_TRANSACTION;
General error: "java.nio.BufferUnderflowException"; SQL statement:
SELECT * FROM TBL_TRANSACTION [50000-190] HY000/50000
当我们运行H2 Recover工具时,我们得到以下结果:
java -cp h2-1.4.190.jar org.h2.tools.Recover
Error: java.nio.BufferUnderflowException
恢复工具确实会生成h2.sql和mv.txt文件。但是,在所有CREATE和INSERT语句之后,h2.sql以
结尾// error: java.nio.BufferUnderflowException
针对此h2.sql文件运行RunScript会恢复损坏的表的一部分,但只能恢复一小部分(仅限发生BufferUnderFlowException的部分。)
问题:
提前致谢。