H2数据库:啥是以及为啥会出现database.xx.log.db.corrupt二进制文件
Posted
技术标签:
【中文标题】H2数据库:啥是以及为啥会出现database.xx.log.db.corrupt二进制文件【英文标题】:H2 database: What is and why appears database.xx.log.db.corrupt binary fileH2数据库:什么是以及为什么会出现database.xx.log.db.corrupt二进制文件 【发布时间】:2010-10-14 18:37:51 【问题描述】:我在我的项目中广泛使用 H2 数据库(大量插入和选择),我注意到在数据库目录中出现了具有以下名称的二进制文件:
database.xx.log.db.corrupt
,其中 xx - 一个数字。
有谁知道是否有可能理解这个文件代表什么以及它为什么出现?
【问题讨论】:
只是数据库日志文件损坏了? 【参考方案1】:如果事务日志文件(database.xx.log.db)的文件头损坏,则在数据库启动时,崩溃(电源故障或进程终止)后,最多可以创建一个具有此名称的文件.通常可以忽略该文件,只是没有删除它,以便在必要时可以调查崩溃。这并不意味着您丢失了数据。顺便说一下相关源码在这里:http://code.google.com/p/h2database/source/browse/branches/version-1.1.x/h2/src/main/org/h2/log/LogSystem.java#300
这意味着您使用的是 H2 版本 1.1.x。同时(从 1.2.x 版本开始)H2 不使用单独的事务日志文件。相反,事务日志被集成到主数据库文件中。我建议升级到更新版本的 H2。
【讨论】:
关于版本的好建议!以上是关于H2数据库:啥是以及为啥会出现database.xx.log.db.corrupt二进制文件的主要内容,如果未能解决你的问题,请参考以下文章
为啥hibernate关闭连接后h2的数据库文件仍然会被锁定一段时间?