新的HSQLDB是否容易受到数据损坏?

时间:2012-02-10 02:34:56

标签: database relational-database hsqldb corruption

我想在我的生产系统中使用嵌入式HSQLDB基于文件的表,但我之前听说它有一些数据损坏问题。所以我的问题是 - 它的新版本(2.2.8)容易受到数据损坏问题的影响,例如当机器失去电源或java进程被杀死时?是否有一些配置选项有助于避免它?

2 个答案:

答案 0 :(得分:5)

HSQLDB旨在在计算机或Java进程崩溃后恢复数据库。

多年来,持久性得到了改善。目前没有已知问题。使用默认设置,如果发生崩溃,您可能只会丢失在过去半秒内对数据库所做的更改。如果您愿意,可以将其减少到零。

在任何情况下,最好使用内置数据库备份功能以增加安全性。 HSQLDB依赖于JVM fsync()以及与OS交互的其他方法。这些通常是可靠的,但在某些时候可能会出现故障。

答案 1 :(得分:4)

是的,即使没有突然死亡的过程,hsqldb 可能会损坏数据。准备构建一个自动备份/恢复系统,有时还可以修复损坏的数据。

我对HSQL的经历:

  • 列中的非唯一值设置为唯一。 (hsql 1.8)。
  • 损坏了所有varchar列中的所有非ascii字符(hsql 2.如果内存服务的话)。
  • 损坏了所有时间戳列中的所有值。 (latests hsql)

那就是说,大部分时间都是非常好的数据库。我只照看一两个例子,你不太可能遇到腐败问题。