2011-07-18 7 views
8

HSQLDBにメモリ内データをファイルに保存するメカニズムがありますか?HSQLDBにメモリ内データをファイルに保存するメカニズムがありますか?

サーバがシャットダウンした後、私が知っているように、すべてのメモリ内データはアクセス不可能になります。だから私はファイルにすべてのメモリ内のデータを保存したい。 残念ながら、メモリ内のデータには適用できないため、BACKUPメカニズムは使用できません。

答えて

8

HSQLDBデータベースはさまざまな種類のデータベースです。オールインメモリデータベースは、データをディスクに格納しません。これらのデータベースのURLはjdbc:hsqldb:mem:<name>です。

データベースURLがjdbc:hsqldb:file:<file path>の形式で、テーブルがデフォルトのMEMORYテーブルの場合、データはすべてメモリに格納されますが、変更はディスクファイルのセットに書き込まれます。

all_in_memoryを含むすべてのタイプのデータベースでは、SQL文SCRIPT <file path>を使用してデータベース全体をファイルに保存できます。拡張子が.scriptのファイルにデータを保存すると、そのファイルをファイルデータベースとして開くことができます。

サーバーを実行すると、URLのはjdbc:hsqldb接頭辞なしで使用され、例えばserver.database.0=file:C:/myfile

は、そのためのSQLコマンドがあり、ここでhttp://hsqldb.org/doc/2.0/guide/running-chapt.html#running_db-sect

+0

HSQLDBは​​、jdbc:hsqldb:mem:としてdb URLを使用しているときに一時ファイルをディスクに書き込んだり、削除したりして、テーブルに行を挿入していますか? Java Mule ESBアプリケーションをcloudhubにデプロイしています。ローカルでは正常に動作しますが、クラウドではうまく動作しませんそれは、クラウドハブがファイルを書くことを許可していないようです。 db insertをコメントアウトしてダミーレスポンスを返すと、アプリケーションは正常に動作します。 – RuntimeException

+1

mem:データベース(URL jdbc:hsqldb:mem:)はファイルシステムに何も書き込まれません。 – fredt

+0

@fredt一時ファイルを除外した場合 – Antoniossss

6

をガイドを参照してください。試してみてください:

SCRIPT '/tmp/data.sql' 

詳細については、hereを参照してください。

関連する問題