2012-02-10 8 views
3

本番システムで埋め込みHSQLDBファイルベースのテーブルを使用したいのですが、前にデータの破損に関する問題があると聞きました。だから私の質問です - それは新しいバージョン(2.2.8)のデータ破損の問題に脆弱です、例えば、マシンが電源を失ったときやJavaプロセスが殺された?そして、それを回避するのに役立ついくつかの設定オプションがありますか?新しいHSQLDBは​​データ破損の影響を受けやすいのですか?

答えて

5

HSQLDBは​​、マシンまたはJavaプロセスがクラッシュした後、データベースを回復するように設計されています。

永続性が向上しました。現在、既知の問題はありません。既定の設定では、クラッシュの場合、過去半分の時間にデータベースに加えられた変更のみが失われる可能性があります。これをゼロにすることもできます。

安全性を高めるために、組み込みのデータベースバックアップ機能を使用することをお勧めします。 HSQLDBは​​JVM fsync()やOSと対話する他のメソッドに依存しています。これらは一般に信頼性がありますが、ある時点で不具合が発生する可能性があります。

+0

これをゼロ(またはゼロに近い)に減らすにはどうすればよいですか? – Rogach

+1

WRITE DELAYのガイドをお読みください。 http://hsqldb.org/doc/2.0/guide/management-chapt.html#mtc_cache_persistence – fredt

3

はい、hsqldb 突然死に至るプロセスがなくてもデータが破損する可能性があります。自動バックアップ/リカバリシステムを構築し、破損したデータを修正するためのツールを用意する準備をしてください。 HSQLのupsiesの

私の経験:ユニークとして設定欄の

  • 非一意の値。 (hsql 1.8)。
  • すべてのvarcharカラムで非ASCII文字をすべて破損しました(hsql 2.メモリが使用されている場合は何か)。
  • すべてのタイムスタンプ列のすべての値が破損しています。 (最新のhsql)

これは、と言われています。それはほとんどの場合、かなり良いデータベースです。私はちょうど1つか2つのインスタンスをベビーシッターしている、あなたは腐敗の問題に遭遇する可能性はほとんどありません。

関連する問題