
私たちは、MySQL クラスタの代替となる Oracle または pgsql を探しています。Oracle 11 データベース システムの HA に関するドキュメントをすべて読みましたが、十分に理解できませんでした。私が理解したのは、HA を実行しているのは RAC だということです。背後に mysql-proxy のようなプロキシがありますか? または、クラスタはハートビートのようなソフトウェアを使用して IP アドレスを変更していますか? または、プライマリの障害に備えて、アプリケーションは接続文字列に別の宛先を持っている必要がありますか? これが必要なので、コア アプリケーションの再コーディングにどの程度の労力が必要かを評価します。
答え1
Oracle RAC の仕組みは少し複雑ですが、簡単に説明すると次のようになります。
Oracle RAC は、Oracle データベース ノードで構成されています。各ノードにはローカル リスナーがあり、クラスタ全体には 1 つ以上の SCAN (Single Client Access Name) リスナーがあります。各リスナーには独自の仮想 IP アドレスがあります。ホストが停止すると、停止したホストのリスナー アドレスは別のホストに引き継がれます。ホストには、ハートビートが流れ、サーバー間の同期が行われる専用の相互接続インターフェイスが必要です。
クライアントは SCAN リスナーにのみ接続する必要があり、その IP アドレスは一定です (クラスターに複数の SCAN がある場合、DNS はこれらのアドレスに名前を解決し、ラウンドロビンを使用してクライアントが SCAN に接続するようにします)。クライアントが接続すると、クラスターはクライアントを最適なローカル リスナーにリダイレクトしますが、そのためにクライアントがそれ以上設定する必要はありません。
Oracle には RAC に関するかなり優れたドキュメントがありますが、RAC の実装と管理は (控えめに言っても) 簡単ではありません。RAC を使用する場合は、pfo のアドバイスに従って専門家を雇う必要があります。
答え2
RAC は RAC であり、非常にブラック ボックスです。すべての HA 関連のものは、RAC およびドライバー レベルで処理されます。Oracle は MySql ではないため、アプリケーションの再コーディングのみが必要です。