Rumah > Artikel > pangkalan data > Bagaimana dengan cepat membina seni bina replikasi tuan-hamba dalam MySQL
Replikasi tuan-hamba ialah prasyarat untuk pengasingan baca-tulis . Fungsi replikasi tuan-hamba yang disediakan oleh pangkalan data MySQL dengan mudah boleh merealisasikan sandaran automatik data pada berbilang pelayan, merealisasikan pengembangan pangkalan data, dan meningkatkan keselamatan data dengan banyak. Selepas replikasi tuan-hamba dilaksanakan, pemisahan baca-tulis boleh meningkatkan lagi prestasi pemuatan pangkalan data.
Seperti yang ditunjukkan dalam rajah, proses pelaksanaan umum replikasi tuan-hamba ditunjukkan.
Untuk mencapai pemisahan baca dan tulis, replikasi master-slave pangkalan data mesti dilaksanakan terlebih dahulu. Pemahaman tentang pemisahan baca-tulis ialah operasi pertanyaan diselesaikan dalam sub-pangkalan data, manakala operasi tulis dilakukan dalam pangkalan data utama. Data disandarkan kepada sub-pangkalan data melalui replikasi tuan-hamba untuk memastikan konsistensi data. Ini dilakukan selepas data telah ditulis ke pangkalan data utama.
Mari kita fahami prinsip replikasi tuan-hamba:
Jadilah tuan. pertama Selepas data dalam pangkalan data berubah, rekod perubahan akan ditulis ke log binlog.
Pangkalan data hamba akan mengesan log binlog dalam pangkalan data induk dalam tempoh masa tertentu Jika perubahan berlaku, ia akan meminta maklumat fail log induk.
Setelah memahami prinsipnya, kita perlu mengetahui prasyarat untuk membolehkan replikasi tuan-hamba:
Nod induk perlu mendayakan log binlog (mysql tidak mendayakannya secara lalai) binlog)
nod hamba, nyatakan fail binlog, dan offset disegerakkan
Tentukan ip nod induk
Nama pengguna dan kata laluan untuk melaksanakan nod induk
Sekarang kita semua memahaminya secara kasar, mari bina model pangkalan data one-master-one-slave , tunjukkan proses konfigurasi persediaan master-slave pangkalan data.
Sediakan dua pelayan CentOS dan pasang mysql5.7 terlebih dahulu.
Edit fail my.cnf mysql: (kaedah pemasangan yang berbeza mungkin mempunyai lokasi fail yang berbeza, sila analisis masalah khusus secara terperinci~)
vim /etc/my.cnf
Fail asal tidak mempunyai kandungan berikut, kita perlu menambahnya sendiri. Apa yang saya ingin lakukan di sini ialah melakukan replikasi master-slave data dalam pangkalan data myslave
server-id = 1 #server-id 服务器唯一标识log_bin = master-bin #log_bin 启动MySQL二进制日志log_bin_index = master-bin.index binlog_do_db = myslave #binlog_do_db 指定记录二进制日志的数据库 这两个指定可以不添加binlog_ignore_db = mysql #binlog_ignore_db 指定不记录二进制日志的数据库
Gunakan arahan berikut untuk memulakan semula mysql. Versi Linux yang berbeza mungkin mempunyai arahan yang berbeza.
service mysql restart
Selepas permulaan yang berjaya, kita boleh melihat status pembukaan bin-log melalui penyataan berikut: (Hanya tanya terus dalam Navicat)
show variables like 'log_bin%';
#允许远程用户访问 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.221.131' IDENTIFIED BY '123456' WITH GRANT OPTION; #刷新 FLUSH PRIVILEGES;
Pertama, pada nod induk, gunakan arahan berikut untuk memahami status nod induk dan dapatkan maklumat yang ditunjukkan dalam rajah di bawah.
show master status;
Ubah suai konfigurasi berkaitan
vim /etc/my.cnf
Tambah maklumat yang berkaitan:
server-id = 2 #唯一标识relay-log = slave-relay-bin relay-log-index = slave-relay-bin.index replicate-do-db=myslave #备份数据库 对应master中设置的,可以不设置replicate-ignore-db=mysql #忽略数据库
Ingat Mulakan semula perkhidmatan;
service mysql restart
Jalankan arahan berikut pada nod hamba.
change master to master_host='192.168.221.128',master_user='root',master_password='123456',master_log_file='binlog.000009',master_log_pos=2339;
master_log_file ialah nama fail yang diperolehi dalam langkah pertama;
start slave;
show slave status\G
Atas ialah kandungan terperinci Bagaimana dengan cepat membina seni bina replikasi tuan-hamba dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!