HSQL数据文件稀疏?

时间:2014-05-14 07:15:59

标签: sparse-matrix hsqldb large-data

我的情况是我的HSQL数据库已停止工作,因为它已超出大小限制

org.hsqldb.HsqlException: error in script file line: 41 file input/output errorerror       org.hsqldb.HsqlException: wrong database file version: requires large database support opening     file - file hsql/mydb.data;

当我使用“du -sh”检查数据文件的大小时,它只有大约730MB,但当我执行“ls -alh”时,它给了我一个令人震惊的16G大小,这解释了为什么HSQL可能会报告为一个'大型数据库'。所以,数据文件似乎是一个“稀疏文件”

但是,没有人确实将数据文件更改为稀疏文件,HSQL是否将数据文件维护为稀疏文件?或者文件系统是否标记为稀疏?

我如何解决这个问题,以便在不损坏数据的情况下取回我的HSQL数据库?我正在考虑使用hsqldb.cache_file_scale属性,但它仍然意味着当文件增长到64G时我会再次遇到问题

以防万一我在Debian 3.2上运行它并在Java 7u25上运行。

1 个答案:

答案 0 :(得分:1)

您需要执行CHECKPOINT DEFRAG以不时压缩文件。

删除大量数据时,.data文件中的空间将丢失。上面的命令将当前.data文件重写为一个小得多的新文件。

如果文件已经变得非常大,或者您需要拥有一个庞大的数据库,则可以使用hsqldb.large_data = true属性连接,该属性可以启用非常大的数据库。

http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html