Selama Anda tidak melakukan pernyataan INSERT / UPDATE / DELETE langsung pada Slave, Slave Anda akan baik-baik saja. Jika tidak, Replikasi MySQL dapat rusak jika Anda menyisipkan baris baru di mydb.mytable pada Slave dan, melalui Replication, Slave kemudian mendeteksi INSERT dari baris ke mydb.mytable dengan KUNCI UTAMA yang sama. Ini menghasilkan kesalahan 1062 (Kunci Duplikat).
Satu-satunya cara Anda dapat menulis ke Slave tanpa melanggar Replikasi MySQL adalah ini:
- Master memiliki basis data db1, db2, db3
- Slave mereplikasi basis data db1, db2, db3 dari Master
- Anda menjalankan
CREATE DATABASE db4;
Slave
- Anda melakukan INSERT / PEMBARUAN / HAPUS hanya untuk db4 pada Slave
- Anda tidak melakukan INSERT / PEMBARUAN / HAPUS hanya untuk db1, db2, db3 pada Slave
Untuk mendeteksi Master dan Budak tidak sinkron tanpa mengunduh alat apa pun, pilih tabel apa saja dan jalankan CHECKSUM TABLE dengan tabel pada Master dan salinan Slave dari tabel yang sama.
CONTOH
Jika Anda memiliki tabel mydb.mytable
, jalankan perintah yang menentangnya:
mysql> CHECKSUM TABLE mydb.mytable;
Jika nilai tidak kembali sama, maka ada sesuatu yang tidak sinkron.
Jika Anda ingin memeriksa banyak meja secara massal, Anda dapat menelusuri MAATKIT Percona. Anda akan membutuhkan dua alat khusus (Percona juga memiliki Percona Toolkit yang mereka ambil sendiri dari MAATKIT yang sekarang sedang dipromosikan lebih lanjut)
atau
pt-table-checksum
akan melakukan TABEL CHECKSUM terhadap semua tabel di Master dan Slave. Anda dapat mengonfigurasinya untuk melakukan semua database hanya pada yang spesifik.
pt-table-sync
dapat dijalankan pada Budak melawan tabel apa pun. Dengan menggunakan opsi --print dan --sync-to-master, Anda bisa melihat pernyataan SQL apa yang perlu dijalankan pada Slave agar cocok dengan Master. Alat ini tidak berfungsi dengan tabel yang tidak memiliki KUNCI UTAMA atau KUNCI UNIK.
Saya telah menggunakan MAATKIT selama bertahun-tahun. Aku masih melakukan. Saya belum mencoba Percona Toolkit, tetapi saya yakin kualitasnya harus sama dengan MAATKIT.