2012-02-10 53 views
3

我想在我的生產系統中使用基於嵌入式HSQLDB文件的表格,但是我聽說它之前有數據損壞的問題。所以我的問題是 - 它的新版本(2.2.8)容易受到數據損壞問題的影響,例如,當機器斷電或java進程死亡時?有沒有一些配置選項可以幫助避免它?新的HSQLDB是否容易受到數據損壞?

回答

5

HSQLDB旨在在機器或Java進程崩潰後恢復數據庫。

多年來,持久性得到了改善。目前沒有已知的問題。使用默認設置,萬一發生崩潰,您可能會丟失最後半秒對數據庫所做的更改。如果你願意,你可以減少到零。

無論如何,爲了增加安全性,使用內置數據庫備份功能是個好主意。 HSQLDB依賴於JVM fsync()和其他與OS交互的方法。這些通常是可靠的,但在某些時候可能會出現小故障。

+0

我該如何將它減少到零(或接近零)? – Rogach 2012-02-10 14:55:07

+1

請在WRITE DELAY上閱讀指南。 http://hsqldb.org/doc/2.0/guide/management-chapt.html#mtc_cache_persistence – fredt 2012-02-10 15:39:51

3

是的,hsqldb 可能腐敗數據即使沒有突然死亡的過程。準備建立一個自動備份/恢復系統,有時還會修復損壞的數據。

我HSQL upsies的經歷:在被設置爲唯一列

  • 非唯一值。 (hsql 1.8)。
  • 破壞了所有varchar列中的所有非ascii字符(hsql 2.如果有內存服務的話)。
  • 損壞所有時間戳列中的所有值。 (latests HSQL)

這就是說,這是相當不錯的數據庫的大部分時間。我只保留一兩個小孩,你不太可能遇到腐敗問題。