java 为什么H2数据库文件比数据大小大得多?

kb5ga3dv  于 12个月前  发布在  Java
关注(0)|答案(2)|浏览(127)

我有大约500 MB的H2数据库。
H2的版本是1.2.147。
数据库的存储引擎是PageStore。
JDBC URL如下所示。
jdbc:h2:file://C:/H2/client;IFEXISTS=TRUE;MVCC=TRUE;DATABASE_EVENT_LISTENER ='dummy.H2DBServer '; SERVER=TRUE; NULL =2
我做了一个H2 1.4.192版本,没有改变数据库的存储引擎。
当我的客户使用数据库时,出现了数据库文件大小扩展到80 GB的问题。
当我关闭连接时,数据库文件应该变小,但数据库文件的大小不会变小,而且可能会变大。
这是1.2.147中不会发生的现象。
这个问题是H2数据库的bug吗?
另外,我从trace.db得到以下错误。
pageStore:事务日志无法被截断;大小:462 MB
错误是否与此问题有关?

s1ag04yj

s1ag04yj1#

我在使用5.2GB数据库文件时遇到了类似的问题。我在H2控制台中执行了以下命令:

shutdown compact

字符串
现在我有一个300MB的文件。也许它可以帮助你。
有关更多详细步骤:https://stambia.org/kb/17-runtime-issues/147-the-h2-log-database-s-file-won-t-reduce-after-a-session-purge

irtuqstp

irtuqstp2#

我遇到了同样的问题,我在jdbc url中添加了以下语句。

DEFRAG_ALWAYS=TRUE

字符串
2 GB文件变为300 MB。数据库关闭时会对其进行碎片整理。

相关问题