Salah satu cara yang baik untuk melakukan sesuatu dari sifat itu adalah dengan mengatur Replikasi Master-Master atau Replikasi Lingkaran. Ini tidak menjadi bingung dengan MultiMaster Replciation.
Menyiapkan Replikasi Sirkular benar-benar sangat mudah jika Anda memiliki pengaturan Master-Slave Replication. Inilah yang perlu Anda lakukan untuk mengkonfigurasinya.
Untuk contoh ini, kami akan menganggap Replikasi Master-Slave aktif tetapi Anda akan mengalami sedikit waktu henti (1-2 menit):
Langkah 1) Tambahkan baris ini ke /etc/my.cnf pada Master.
log-budak-pembaruan
Langkah 2) Tambahkan baris ini ke /etc/my.cnf di Slave:
log-bin = mysql-bin (atau memiliki apa pun yang dimiliki master untuk ini) log-slave-update
PERINGATAN: Inilah saat singkat downtime !!!
Langkah 3) Pada Slave, service mysql restart
Ini akan mengaktifkan log biner pada Slave
Langkah 4) Pada Master, layanan berhenti mysql
Langkah 5) Gunakan rsync untuk menyalin folder / var / lib / mysql dari Slave ke Master.
PERINGATAN: Inilah saat downtime yang lebih lama !!!
Langkah 6) Pada Slave, layanan berhenti mysql
Langkah 7) Pada Slave, cari tahu log biner terakhir
Langkah 8) Pada Slave, cari tahu ukuran file dari log biner terakhir
Langkah 9) Gunakan rsync untuk menyalin folder / var / lib / mysql dari Slave ke Master. Ini harus menjadi salinan yang lebih cepat.
Langkah 10) Pada Master, edit
Baris 2 dari master.info dengan log biner terakhir dari Slave.
Baris 3 dari master.info dengan filesize dari log biner terakhir dari Slave.
Baris 4 master.info dengan IP dari Slave.
Baris 5 adalah userid dari pengguna replikasi (JANGAN SENTUH)
Baris 6 adalah kata sandi dari pengguna replikasi (JANGAN SENTUH)
Langkah 11) Hapus semua log biner dan file indeks log biner dari Master.
Langkah 12) Pada Slave, service mysql start, tunggu 15 detik
Langkah 13) Pada Master, layanan mysql mulai
Langkah 14) Pada Master, jalankan STOP SLAVE; TAMPILKAN STATUS MASTER;
Langkah 15) Di Budak, jalankan PERUBAHAN MASTER KE MASTER_HOST = 'IP Budak', MASTER_USER = 'pengguna pengguna replikasi dari Step10', MASTER_PASSWORD = 'kata sandi pengguna replikasi dari Step10', MASTER_LOG_FILE = 'log biner dari Step14', MASTER_LOG_POS = LogPos dari Step14.
Langkah 16) Pada Slave, jalankan START SLAVE;
Langkah 17) Pada Master, jalankan START SLAVE;
Saya melakukan langkah-langkah yang mirip dengan ini untuk pertanyaan StackExchange lain yang saya jawab .
Cobalah !!!
log-slave-updates
kecuali master akan memiliki budak tambahan.Tidak dengan replikasi Asynchronous yang merupakan apa yang ditawarkan MySQL. Anda tinggal menekan pepatah mengapa replikasi MySQL 'out of the box' (pre 5.5) bukan solusi ketersediaan tinggi dalam dan dari dirinya sendiri. Segalanya menjadi sedikit lebih baik dengan 5,5 dengan replikasi semi-sinkron (http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html) tetapi dengan biaya waktu transaksi yang lebih lambat saat master menunggu untuk ack dari slave.
Jika menerima kemungkinan kehilangan data ketika master turun bukanlah suatu pilihan, saya akan mengatakan pengaturan yang lebih canggih daripada master / slave sederhana.
Replikasi Master ke Master telah dianggap lebih banyak masalah daripada manfaat oleh banyak orang terkenal MySQL (bahkan MySQL AB sendiri tidak lagi merekomendasikannya sebagai solusi ketersediaan tinggi). Jadi, saya pikir menggunakan pengaturan DRBD untuk menjaga master aktif dan budak pasif dalam sinkronisasi menggunakan salinan level blok adalah apa yang sebenarnya Anda butuhkan di sini.
sumber
IMHO, Pertama-tama, dalam konfigurasi non-multi-master (master / slave), budak Anda seharusnya tidak pernah menulis. Slave my.cnf harus dikonfigurasi dan server mulai dengan:
Selanjutnya, untuk menyembuhkan masalah master yang tidak sinkron dengan budak yang dapat ditulisi secara tidak sengaja menulis, Anda harus melakukan diff data pada kedua host. Jika tidak ada tabrakan kunci, Anda harus mempromosikan mantan host slave Anda ke master dan gambar ulang master lama Anda sebagai host slave yang direplikasi dari master baru. (mungkin ada / mungkin masalah data di sini)
Akhirnya, jika skenario ini outage / downtime bahkan kemungkinan maju , luangkan waktu untuk mengatur kedua host sebagai multi-master (log-bin, server-id, offset, dll.). Ini akan membantu Anda mengurangi gangguan dan downtime sampai batas tertentu.
Jika Anda harus menjalankan master / slave , setidaknya dapatkan beberapa poin bonus untuk memisahkan koneksi pengguna baca dan tulis di ACL dan aplikasi Anda.
sumber