Tidak banyak kinerja yang dapat diperoleh dari mereplikasi database Anda pada dua master. Namun, ada sedikit kegagalan yang bagus jika Anda mengkodekan aplikasi dengan benar.
Pengaturan Master-Master pada dasarnya sama dengan pengaturan Slave-Master tetapi memiliki kedua Slave yang dimulai dan perubahan penting pada file konfigurasi Anda di setiap kotak.
Menguasai MySQL 1
auto_increment_increment = 2
auto_increment_offset = 1
Menguasai MySQL 2:
auto_increment_increment = 2
auto_increment_offset = 2
Kedua parameter ini memastikan bahwa ketika dua server memperebutkan kunci utama untuk beberapa alasan, mereka tidak menduplikasi dan mematikan replikasi. Alih-alih bertambah 1, setiap bidang kenaikan otomatis akan secara default bertambah 2. Pada satu kotak itu akan mulai diimbangi dari 1 dan menjalankan urutan 1 3 5 7 9 11 13 dll. Pada kotak kedua itu akan mulai diimbangi pada 2 dan berjalan sepanjang 2 4 6 8 10 12 dst. Dari pengujian saat ini, kenaikan otomatis tampaknya mengambil nomor bebas berikutnya, bukan nomor yang tersisa sebelumnya.
Misalnya. Jika server 1 menyisipkan 3 record pertama (1 3 dan 5) saat Server 2 menyisipkan yang ke-4, maka akan diberikan kunci 6 (bukan 2, yang dibiarkan tidak digunakan).
Setelah Anda mengaturnya, mulai keduanya sebagai Slave.
Kemudian untuk memeriksa keduanya berfungsi dengan baik, sambungkan ke kedua mesin dan lakukan perintah SHOW SLAVE STATUS
dan Anda harus mencatat bahwa keduanya Slave_IO_Running
dan Slave_SQL_Running
keduanya harus mengatakan "YA" pada setiap kotak.
Kemudian, tentu saja, buat beberapa record dalam sebuah tabel dan pastikan satu kotak hanya memasukkan kunci utama bernomor ganjil dan yang lainnya hanya menambah yang bernomor genap.
Kemudian lakukan semua pengujian untuk memastikan bahwa Anda dapat menjalankan semua aplikasi standar pada setiap kotak dengan mereplikasi kotak lainnya.
Ini relatif sederhana setelah dijalankan.
Tetapi seperti yang telah disebutkan, MySQL tidak menganjurkannya dan menyarankan agar Anda memastikan bahwa Anda memperhatikan fungsi ini saat menulis kode aplikasi Anda.
Sunting: Saya kira secara teoritis mungkin untuk menambahkan lebih banyak master jika Anda memastikan bahwa offsetnya benar dan seterusnya. Anda mungkin lebih realistis, menambahkan beberapa budak tambahan.