我有一个包含大量LOB的HSQLDB数据库。 LOB文件已经发展到导致机器崩溃的程度。
我在LOBs文件中有一些数据可以删除。
处理这种情况的最佳方法是什么?执行备份只会导出实际的LOB,还是会用内部空间导出文件? (即整个稀疏LOB文件)
我已经尝试过CHECKPOINT DEFRAG,但这似乎在2.3.2中不起作用,LOBs文件在删除未使用的LOB后继续增长。
答案 0 :(得分:0)
对于版本2.3.4,CHECKPOINT会导致.lobs
文件截断到数据库表中引用的最后一个LOB。然后,文件中的任何空白空间将被重用用于将来的lobs。
如果数据库中的活动lob相对较少,则可以将具有LOB的列类型转换为VARCHAR或VARBINARY,执行CHECKPOINT,然后SHUTDOWN,然后删除.lobs文件。然后,您可以重新打开并将列类型转换回CLOB和BLOB。