sql >> データベース >  >> RDS >> Mysql

MySQLでN-master=>1-slaveレプリケーションを実行することは可能ですか?

    マルチマスターレプリケーション(複数のマスターを持つスレーブ)は、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 。あなたはできません いずれかのテーブルの更新を任意のマスターに送信します。

    おそらく、説明されているソリューションを、ある種の自動インクリメントマングリングを使用し、ここ またはこちら 。



    1. SQL Server 2005を使用して、カンマ区切りの値を個別の行に展開するにはどうすればよいですか?

    2. 奇妙な-mysqlのsql::SQLExceptionはそのタイプによってキャッチされませんが、std ::exceptionとしてキャッチされ、正常にキャストバックされます

    3. PostgreSQL 9.1以降でモジュールをインポートしたり拡張機能をインストールしたりするにはどうすればよいですか?

    4. SQL ServerのvarBinaryデータを文字列C#に変換する