2017-09-09 4 views
0

私は2つのリモートロケーションで動作するデータベースを持っています。 (A & B)サーバーは、1つの場所(A)でローカルに使用できます。しかし、第2の場所(B)は、インターネットを介してデータベースにアクセスする。MySQLマルチマスターレプリケーションマルチロケーション

ロケーションAがダウンしている場合、ロケーションBはデータベースへの接続を失います。

連続した複製を行い、次の条件で別のサーバーを場所Bに配置することは、何とかできますか。 - インターネットが場所Aで動作している場合、ユーザーは場所Aサーバーにのみアクセスします。 ユーザーは、インターネットが場所Aにあるときまで、場所Bで利用可能なサーバーにアクセスできます。接続が復元されると、両方のデータベースが複製できます。ミスマッチ/重複がある場合、ロケーションAはマスターとみなされ、変更は上書きされますか?

私はこのような解決策が可能かどうか、このセットアップで直面することができる問題を知りたいと思いますか?

+0

一方のマスタのデータを他のマスタのデータより「良い」ものと考える仕組みがMySQLにはありません。競合の解消は手動であり、競合が検出されるとレプリケーションは停止します。 「CAP定理」(https://en.m.wikipedia.org/wiki/CAP_theorem)も参照してください。 –

答えて

0

MariaDB 10+には、複数のマスター設定を持つGaleraクラスタが用意されています。基本的にすべてのサーバー(あなたのケース3)はマスターになり、1サーバーへのデータは他のサーバーに送られます。一方がダウンすると、他のサーバーが続行されます。サーバーが復旧すると、サーバーは不足しているデータを同期化します。

接続レベルのために、データベース・レベル

だ、あなたは最高のマシン間で負荷を分散するか、マシンダウンを検出し、他の人に指示し、デバイスの「ロードバランサ」タイプを必要としています。それらはmysql型のサーバでは見つけるのが難しいです。しかし、それがあなたの質問であれば実現可能です