マルチマスターレプリケーション(複数のマスターを持つスレーブ)は、MySQL(MySQLクラスターを除く)ではサポートされていません。循環(リング)レプリケーションのマスターマスターレプリケーションを実行できます(ここで説明
または
高性能MySQL第2版
著者は、マスターマスターレプリケーションとBlackhole
ストレージエンジン(第8章レプリケーション>レプリケーショントポロジ>カスタムレプリケーションソリューション>マルチマスターレプリケーションのエミュレートp。 373-375
。
それらは2つの可能性のあるトポロジーを示しています:
2人の共同マスターを使用する (スレーブのマスターをマスター1から切り替えることができます マスター2 )
- マスター1: ホストDB1 DB2を複製します マスター2から; DB2内のすべてのテーブルのストレージエンジン
Blackhole
に変更されます データがマスター1に効果的に保存されないようにする 。 - マスター2: ホストDB2 DB1を複製します マスター1から; DB1内のすべてのテーブルのストレージエンジン
Blackhole
に変更されます データがマスター2に効果的に保存されないようにするため - スレーブ1: DB1を複製します およびDB2 いずれかのマスター1から またはマスター2 (マスターを切り替えることができます);その結果、スレーブ1 2つの異なるマスターで効果的にホストされている両方のデータベースを複製します。
マスターチェーンの使用
- マスター1: DB1のみをホストします
- マスター2: ホストDB2 DB1を複製します マスター1から; DB1内のすべてのテーブルのストレージエンジン
Blackhole
に変更されます データがマスター2に効果的に保存されないようにするため - スレーブ1: DB1を複製します およびDB2 マスター2から;その結果、スレーブ1 2つの異なるマスターで効果的にホストされている両方のデータベースを複製します。
この設定では、 DB1にのみ更新を送信できることに注意してください。 マスター1 およびDB2の更新 マスター2 。あなたはできません いずれかのテーブルの更新を任意のマスターに送信します。
おそらく、説明されているソリューションを、ある種の自動インクリメントマングリングを使用し、ここ
または