2017-05-04 2 views
2

H2 1.4がベータ版から外れたので、私は古い1.3.175データベースを1.4.195に移行したいと思います。H2 1.3.175から1.4.195に移行するための推奨される方法

背景情報:ドキュメントで

  • database upgradeまだ1.4を言及していません。
  • roadmapには、「1.3データベースから1.4への自動移行」のリストがあります。 「計画された変更」として。
  • MVStoreのcurrent stateは、まだ「実験的」というラベルが付けられています。

移行するにはどうすればよいでしょうか?

さらなる態様/ボーナス質問:

私は有効にする必要がありますMVStoreまたはPageStore(長所/短所)に固執しますか?どちらが優れたパフォーマンス(マルチスレッドは私にとっては重要ではありません)を提供します。どちらの方が安定性が優れていますか、特にOutOfMemoryErrorsに対する復元力はどれですか?

答えて

4

1.3.175で作成されたデータベースは、追加作業なしで1.4.195で読み込んで開くことができます。 H2はそれがページストアを使用していることを自動的に検出し、そのように扱います。これには問題はありません。

これを行うメリットは、MVStoreの開発中にページストアが引き続きパフォーマンスの向上とバグ修正を受けることでした。したがって、ページストアのH2は非常に安定したデータベースストアとなっています。

データベースをページストアを使用してMVStoreを使用するように変換する自動アップグレード手順はまだありません。これを行うには、手動で行う必要があります。最新のH2 Jarでは、H2のSCRIPTコマンドを使用して1.3データベースからSQLをエクスポートし、RUNSCRIPTを1.4.195の新しく作成されたデータベースに使用します。

H2 JDBC URLで明示的に;mv_store=falseが指定されていない場合、H2はまずページストアデータベースが既に存在するかどうかを調べます。そうでなければ、MVStoreデータベースを作成します。これはあなた、あなたのアプリ、そしてあなたのユーザーにシームレスに見えます。ディスク上のデータベースファイルのファイル拡張子が異なることが、目に見える唯一の違いです。

最後に、提案です。顧客データベースが大きい場合は、ページストアのみを使用することを検討してください。私はH2の重いユーザーです。 (H2上に構築された私の商用製品には、通常、サイズが数ギガバイトのデータベースが存在する何千人ものユーザーがいる)最新のH2 Jarを使用しても、私はすべての顧客にページストアを使用します。 MVStoreには、データベースが大量になるにつれて表示されるパフォーマンス上の問題がまだいくつかあります。時間の経過とともに、問題の原因が特定され、修正されることが期待されます。

+0

PageStoreに固執すると、1.xから1.yにアップグレードするときにH2コンテキストでよく推奨されるように、データベースをダンプして回復する必要がありますか? – hendrik

+1

@hendrik、1.3.175から1.4.191の間では、ダンプして回復する必要はありません。あなたが読むアドバイスは、1.1または1.2からの移行にとってより重要です。 –

+0

PageStoreはMVCCを1.4バージョンでサポートしていますか?マルチスレッドが有効になっていますか?私たちの最初の観察では、マルチスレッドが有効になっていないことが示されています。 私たちはMVCCとマルチスレッド両方を有効にしたいので、1.3から1.4への移行時にH2のSCRIPTコマンドを手動で使用する必要がありますか? –

関連する問題