首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除/收缩HSQLDB lob文件

删除/收缩HSQLDB lob文件
EN

Stack Overflow用户
提问于 2015-09-24 12:26:53
回答 1查看 1K关注 0票数 1

我们使用的是HSQLDB2.3.2,我们希望摆脱包含LOB数据的文件。因为它占用了大量的磁盘空间。

我们已经将LOB列更改为VARCHAR。所以我们再也没有LOB列了。

代码语言:javascript
复制
$ ./execute_query.sh "SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, TYPE_NAME FROM INFORMATION_SCHEMA.SYSTEM_COLUMNS WHERE TYPE_NAME LIKE '%LOB%';"
TABLE_NAME  COLUMN_NAME  DATA_TYPE  TYPE_NAME
----------  -----------  ---------  ---------

以及我们的HSQLDB文件列表:

代码语言:javascript
复制
$ ls -hal
total 88G
drwxr-xr-x 3 admin admin 4.0K Sep 23 13:58 .
drwxr-xr-x 6 admin admin 4.0K Sep  1 09:27 ..
-rw-r--r-- 1 admin admin 1.5M Apr  9 01:13 hsqldb.jar
-rw-r--r-- 1 admin admin 2.9G Sep 23 13:53 hsqldb.db.data
-rw-r--r-- 1 admin admin   16 Sep 23 14:02 hsqldb.db.lck
-rw-r--r-- 1 admin admin  84G Aug 25 01:52 hsqldb.db.lobs
-rw-r--r-- 1 admin admin   70 Sep 23 14:00 hsqldb.db.log
-rw-r--r-- 1 admin admin   85 Sep 23 13:58 hsqldb.db.properties
-rw-r--r-- 1 admin admin 1.5G Sep 23 13:53 hsqldb.db.script
drwxr-xr-x 2 admin admin 4.0K Sep 23 13:54 hsqldb.db.tmp

我们想摆脱大的hsqldb.db.lobs文件。

删除该文件后,数据库确实会正确启动,并且似乎运行良好。我可以进行查询。

但是,在创建一个包含LOB列的表并向其添加数据之后,hsqldb.db.lobs文件将以原来的大小再次创建(尽管它是一个稀疏文件)。

我怀疑可以通过修改SYSTEM_LOBS模式中的某些表值来完成更多的任务。但我不认为这是一个很好的做法。

那么,建议的方法是

  • 缩小LOB文件,使其更小(因为我们不使用数据)
  • 完全删除LOB文件
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-24 21:47:09

删除该文件后,数据库确实会正确启动,并且似乎运行良好。我可以进行查询。

此时,您需要执行检查点来重置lob表。这在本文中描述的解决方案(忽略压缩设置)之后才能工作:

HSQLDB: enable LOB compression for existing database

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32761305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档