Hibernate が生き残るデータベース (この場合は MySQL) への変更 (データ、スキーマなど) は?
これは、Hibernate のダウンタイムがゼロであるためです。
データベースを変更し、アプリ サーバーを 2 つのクラスターに分割し、クラスターの 1 つにアプリケーションを再デプロイして、アプリケーションを切り替えます。
ありがとうステファン
Hibernate が生き残るデータベース (この場合は MySQL) への変更 (データ、スキーマなど) は?
これは、Hibernate のダウンタイムがゼロであるためです。
データベースを変更し、アプリ サーバーを 2 つのクラスターに分割し、クラスターの 1 つにアプリケーションを再デプロイして、アプリケーションを切り替えます。
ありがとうステファン
これは、休止状態に関する特別な洞察からではなく、個人的な経験から回答します。したがって、これを一粒の塩で取ってください。また、少しあいまいな質問のようですが、適切な場所にコメントを追加してください。:)
まず第一に、hibernate でマップされていないスキーマを変更/追加/削除しても、問題が発生することはありません。Hibernate が実際に行っているのは、クエリを生成することだけです。これは、多くのものを SQL に変換するためです。これらのクエリが機能し続ける限り、アプリは単純に機能し続けます。これは、テーブルに列を追加したり、テーブルを追加したりすることは問題ではなく、マップしていない列を削除することも問題ではないことなどを意味します。
さらに問題なのは、マップされているものへの変更です。number(10,0) を number(11,0) に変更すると、通常はこれでうまくいきます。CHAR(1) フィールドを BIT フィールドなどに変更するなどの作業を開始すると、休止状態のマッピングに特定の変更が必要になり、既存の展開が失敗します。これは常識です。このような変更を行う必要がある場合、通常の db サーバーで ALTER TABLE を実行すると、おそらくテーブルがロックされるため、アプリを再起動することは最大の問題ではありません。
高可用性の下での主要なスキーマ変更への対処は、休止状態が直接対処することを意図したものではありません。Hibernate は、スキーマの変更に非常にコストがかかることが多い従来のリレーショナル データベースを想定しています。
あなたが言及した他の3つの問題: