代码之家  ›  专栏  ›  技术社区  ›  geejay

从HSQLDB LOBS文件增长中恢复的最佳方法

  •  0
  • geejay  · 技术社区  · 10 年前

    我有一个包含大量LOB的HSQLDB数据库。LOB文件已经增长到导致机器崩溃的程度。

    我在LOB文件中有一些数据可以删除。

    处理这种情况的最佳方法是什么?执行备份是只导出实际的LOB,还是用内部空间导出文件?(即整个稀疏LOB文件)

    我尝试过CHECKPOINT DEFRAG,但这在2.3.2中似乎不起作用,LOB文件在删除未使用的LOB后继续增长。

    1 回复  |  直到 10 年前
        1
  •  1
  •   fredt    10 年前

    对于2.3.4版,CHECKPOINT会导致 .lobs 文件到数据库表中引用的最后一个LOB。然后,文件中的任何空白空间都将被重新用于将来的lob。

    如果数据库中的活动lob相对较少,可以将具有LOB的列的类型转换为VARCHAR或VARBINARY,执行CHECKPOINT,然后SHUTDOWN,然后删除.lobs文件。然后可以重新打开并将列类型转换回CLOB和BLOB。