H2数据库文件损坏恢复步骤

  |   0 评论   |   0 浏览

一、抽取H2数据库依赖包

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.3.0</version>
            <configuration>
                <outputDirectory>${project.build.directory}/lib</outputDirectory>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.6.1</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

在maven项目中加入如上插件,执行package命令,会在target目录下生成lib包,把lib包拷贝到桌面,在lib包下执行如下命令。

二、修复db

在h2的lib包路径下打开cmd,执行如下命令,h2包的包名根据自己项目依赖修改。

java -cp h2-2.1.214.jar org.h2.tools.Recover -dir D:/opt/data/db -db my_db_name

执行以上命令后,会生成一个my_db_name.h2.sql,这个就是修复后生成的sql。

三、生成新的db

在执行完第二步后,再执行如下命令

java -cp h2-2.1.214.jar org.h2.tools.RunScript -url "jdbc:h2:D:/opt/data/db/my_db_name2" -user sa -password "" -script D:/opt/data/db/my_db_name.h2.sql

执行完成后,会在D:/opt/data/db目录下生成修复后的my_db_name2.mv.db文件,H2数据库修复完成。


标题:H2数据库文件损坏恢复步骤
作者:michael
地址:https://blog.junxworks.cn/articles/2025/05/23/1747992667586.html