Jawaban:
Secara desain, satu proses mysqld tidak dapat secara bersamaan mendengarkan dua Master yang berbeda.
Perintah CHANGE MASTER TO TO hanya memungkinkan Anda untuk menetapkan satu Master sebagai sumber untuk dibaca.
Untuk meniru ini, Anda harus bergantian antara dua Master secara terprogram. Bagaimana kamu melakukannya ?
Inilah ide dasarnya
Atur Replikasi M1 ke S1 dan kemudian M2 ke S1 seperti ini
Setiap kali Anda beralih dari satu Master ke Master lain, Anda harus merekam dua nilai dari SHOW SLAVE STATUS\G
Kedua nilai ini mewakili Pernyataan SQL terakhir yang berasal dari Master dan selanjutnya akan dieksekusi pada Slave.
Ada satu peringatan utama: Selama M1 dan M2 memperbarui basis data yang saling eksklusif, algoritma ini harus baik-baik saja.
Solusi Rolando memiliki banyak peringatan. Yang pertama adalah satu aliran replika tidak harus mereplikasi sementara yang lain berfungsi Ini akan memberi Anda periode waktu di mana budak Anda tidak selaras. Anda sekarang harus memainkan tindakan penyeimbangan yang rumit untuk memastikan masing-masing memiliki cukup waktu untuk mengejar ketinggalan saat "berbelok".
Seperti yang dijelaskan Anda juga harus memainkan penjaga buku posisi log untuk kembali. Ini benar-benar hanya tampak buggy, membuka jendela untuk data yang hilang atau tidak konsisten atau bahkan melanggar replikasi ketika terjadi kesalahan (baik disebabkan oleh kesalahan 'off oleh satu' pada posisi log)
Saya akan merekomendasikan hanya menjalankan beberapa contoh mysql. Tidak ada yang menghentikan Anda dari menjalankan dua atau lebih mysql di mesin yang sama. Keduanya tidak dapat beroperasi pada port yang sama tentunya. Saya tidak benar-benar melihat ini sebagai masalah karena setiap klien dan perpustakaan memungkinkan Anda untuk menentukan sesuatu selain 3306.
Cukup tentukan port = 3307 (atau apa pun di salah satu file .cnf).
Anda juga ingin berhati-hati dalam memastikan kumpulan buffer yang dikonfigurasi secara individual dan konfigurasi memori lainnya tidak bertentangan satu sama lain. Ini sebenarnya menguntungkan karena Anda dapat menyesuaikan pengaturan tersebut dengan persyaratan spesifik dari masing-masing basis data yang direplikasi.
Dengan cara ini Anda hanya memiliki dua aliran replikasi berlari ke server yang sama; tidak pernah ketinggalan, tidak ada pembukuan yang diperlukan, tidak ada naskah "swapping" diperlukan.
Fan in (replikasi multi-sumber) akan didukung dari MySQL 5.7.
Rilis lab tersedia di sini: http://labs.mysql.com/
MariaDB yang dapat digunakan sebagai pengganti MySql inplace dapat digunakan. Ini mendukungnya dari versi 10.2
Masalah dengan dukungan Mysql 5.7 adalah kebutuhan untuk GTID, yang berarti bahwa master HARUS juga diubah, dalam kasus MariaDb hal ini tidak terjadi.
Contoh / Tautan HowTo: http://www.skysql.com/blogs/dean-ellis/multi-source-replication-mariadb-100