新しいWebサイトでは、MySQLマスタマスターセットアップに接続する必要があります。これはNHibernateを使用している.NET Webサイトですが、Javaや他の言語にも同じことが適用されます。データベースがダウンした場合でもサイトを継続したいので、この設定を選択しました。私たちはダウンタイムが好きではありません。コードからのマスターマスタ設定への接続
マスターマスターセットアップが(MySQLで)どのように動作するのかについて私は完全に誤解しているかもしれませんが、私はそれを見て、通常通りデータベースに接続しますが、裏ではMySQLは2つのデータベース間のデータ。書き込みを行うと、通常はわからないマスター1またはマスター2に行くことができます(ただし、自動インクリメントIDは別の値を返します)。マスターAがどうにかして失敗すると、マスターBはまだ動作します。したがって、ダウンタイムはありません。マスターAは再び上がるまで無視され、データは複製され、すべてがうまくいけば、マスターAは再びフィールドに戻ります。
これが正しい場合は、私の上の散歩が間違っている場合は私を修正してください、あなたは1つのマスターがダウンする場合に特別な何かをする必要がありますか? 192.168.1.50(マスターA)に接続すると、マスターAがダウンするとどうなりますか? MySQLは192.168.1.51(マスターB)に私を自動的に接続するので、私のサイトは引き続き動作しますか?
私が正しくない場合、どのようにMySQLマスタマスターレプリケーションが機能しますか?どのクエリを実行する必要があるのかを各クエリに伝える必要がありますか?マスターAがダウンすると、マスターAのすべてのクエリが失敗し、マスターマスターセットアップがまったく役に立たないので、それは意味をなさないでしょう。
だから基本的に、私は私の質問は、実際にあると思う:
私はまだ私はシングルを指定しない、(私はNHibernateはを使用してますが、本当に重要ではありません よ)単一のMySQLホストに接続します接続文字列 とMySQLは2つのマスターがあることを知っていますか、私のコードは のように変更されています。 マスター(どのように?)の接続文字列を指定する必要があり、2つの間のクエリのバランスをとるために特別なマジックを行います。 サーバーなど。
私には他に何かがありますか?ありがとう!