MySQLにはさまざまな高可用性ソリューションがあります。現在のすべての実装の違いを教えてください。現在最新の実装を次に示します。
自動フェイルオーバーを備えた高可用性セットアップで推奨されるオプション(またはその他のオプション)は何ですか? (同期レプリケーションを使用したSQL Server DBミラーリングと同等のもの)
Galera == PXC == MariaDB w/Galera-これらはほぼ同じです。 HAの場合、3つのデータセンターのそれぞれに1つ(またはそれ以上)のノードが必要です。 (地震、竜巻、洪水、さらにはデータセンターの停止などを考えてください-do発生します。)
オラクルのグループレプリケーションは非常に新しいものですが、多くの可能性があります。
オラクルの「ファブリック」はおそらく捨てられています。 (おそらく、解決が困難な単一障害点が原因です。)
Orchestratorは、多数の(何百もの)スレーブの任意のツリー(リレーサーバーと考えてください)のフェールオーバーに非常に優れています。 マスターフェイルオーバーについては不明です。 (Booking.comの講義をご覧ください。)
MHAは非常に優れています-しかし、「スプリットブレイン」の状況を発見した場合は、手動による介入が必要です。
MySQL Clusterの「エンジン」には、さまざまなものが含まれています。つまり、これは、残りすべてがサポートするInnoDBの「ドロップイン」置換ではありません。 1つは、「結果整合性」を採用しているため、競合を解決する方法を指定する必要があることです。
Galeraベースのソリューションとグループレプリケーションだけが、障害が発生したサーバーが復旧したときに自動的に修復するものだと思います。 (私はここで間違っている可能性があります。)
今日の私の好み:パーコナのPXCまたはGaleraを備えたMariaDB-それぞれがGaleraを組み込み、サポートしています。しかし、私はグループ複製に注意を向けています。
他の回答に対するいくつかの単語(コメントが適切にフォーマットされていない):
ちょうど同じように:
特に最後の理由で、ビジネスニーズに応じて、データセンターあたり1ノードについては非常に懐疑的です。数秒でマスターの背後でスレーブを遅らせるか、変更ごとにスローダウンするかを選択できます。非常に小さなトランザクションには影響せず、より複雑なトランザクションではキラーになる可能性があります。
検討する必要のある簡単なソリューションは、DRBDを使用したアクティブ/パッシブPacemaker/Corosyncセットアップです。最大の欠点は、フェイルオーバーにクラッシュリカバリーが含まれることですが、ib_logfilesが大きくなく、障害が発生した場合に少しの間待機することができます(ただし、クラッシュリカバリーには数秒かかる場合があります)。 REDOログからリプレイする必要がある量に応じてはるかに長く)、それはあなたの人生を簡素化することができます。
DRBDを使用すると、データレプリケーションはMySQLの外部でブロックレベルで行われるため、複数のマスター間で重複するキーやデータの整合性に関する問題を回避できます。これは、ペアのアクティブサーバーから読み取るMySQLレプリケーションスレーブと組み合わせることもできます。
すべてのケースに最適なHAソリューションは1つではなく、意見の対立も数多くあります。これは「どこでも書き込める」解決策ではないので、それがあなたが探しているものであれば、おそらくリストから削り取ることができます。