启动失败/h2数据库损坏 Chuck not found
<h3>问题现象</h3>
<p>Windows 系统下,服务启动失败,报错日志中提示:"java.lang.IllegalStateException: Chunk *** not found"。</p>
<h3>问题原因</h3>
<p>h2数据库元数据库损坏,需要手动修复</p>
<h3>解决办法</h3>
<ol>
<li>
<p>先停止服务,否则恢复报错
Error: org.h2.mvstore.MVStoreException: The file is locked</p>
</li>
<li>
<p>执行恢复
D:\Parking240725\tomcat10\bin\jre17\bin>java -cp D:\Parking240725\tomcat10\webapps\ROOT\WEB-INF\lib\h2-2.2.224.jar org.h2.tools.Recover -dir C:\parking\data\
完成后dir目录下会生成 parkingmanager.h2.sql文件</p>
</li>
<li>
<p>执行恢复 SQL 语句
D:\Parking240725\tomcat10\bin\jre17\bin>java -cp D:\Parking240725\tomcat10\webapps\ROOT\WEB-INF\lib\h2-2.2.224.jar org.h2.tools.RunScript -url jdbc:h2:C:\parking\data\parkingmanager-new -user root -password root@123 -script C:\parking\data\parkingmanager.h2.sql
目录下会生成parkingmanager-new.mv.db数据文件</p>
</li>
<li>替换文件
删除parkingmanager.mv.db文件,将parkingmanager-new.mv.db修改为parkingmanager.mv.db即可</li>
</ol>