Dalam persekitaran pengeluaran sebenar, jika pembacaan dan penulisan pangkalan data MySQL dikendalikan dalam pelayan pangkalan data, tidak kira dari segi keselamatan, ketersediaan tinggi atau keselarasan tinggi, ia akan menjadi Jika ia tidak dapat memenuhi keperluan sebenar, secara amnya perlu menyegerakkan data melalui replikasi induk-hamba, dan kemudian menggunakan pemisahan baca-tulis untuk meningkatkan kapasiti beban serentak pangkalan data .
Replikasi induk-hamba ialah teknologi asas yang disediakan oleh MySQL Proses replikasi induk-hamba: log binari binlog (kecuali untuk pertanyaan, lain yang berkaitan dengan perubahan operasi akan direkodkan dalam binlog), log geganti dan tiga utas (satu utas tuan dan dua utas hamba).
Pangkalan data utama (master) menyediakan perkhidmatan tambahan data luaran, pemadaman, pengubahsuaian dan pertanyaan Pengubahsuaian yang melibatkan data dalam pangkalan data induk akan ditulis dalam binlog Pangkalan data hamba (hamba) ialah. digunakan untuk penyegerakan data Dan sandaran data , melalui utas khusus untuk menyegerakkan pengubahsuaian yang berkaitan dengan pustaka utama dan data, kebenaran dan struktur jadual ke pustaka hamba daripada binlog dalam pustaka utama, yang setara kepada semua pengubahsuaian yang dibuat pada perpustakaan utama akan berlalu Mekanisme replikasi tuan-hamba terkandung dalam pangkalan data hamba.
Faedah replikasi tuan-hamba: Sandaran data, malah kami boleh membuat sandaran panas untuknya, iaitu melalui perisian tengah MySQLmycat
, yang boleh mencapai pemulihan bencana , pemulihan bencana juga mencerminkan ketersediaan tinggi.
Pemulihan bencana: Jika pangkalan data utama tidak berfungsi, ejen middleware mycat akan secara automatik memetakan permintaan perkhidmatan ke pangkalan data hamba, dan pangkalan data hamba akan terus menyediakan perkhidmatan kepada dunia luar, mencerminkan ketersediaan tinggi (perkhidmatan bahagian belakang Benarkan pengecualian tertentu berlaku, tetapi perkhidmatan seni bina bahagian belakang mestilah tahan terhadap kesalahan, mengendalikan ralat luar biasa ini dan menyediakan semula perkhidmatan biasa kepada dunia luar)
Pemisahan baca-tulis dilaksanakan berdasarkan replikasi tuan-hamba. Dalam persekitaran aplikasi sebenar, mesti terdapat banyak operasi baca Sama seperti apabila kita membeli sesuatu pada platform e-dagang, kita mungkin hanya membeli satu atau dua selepas melihat 100 item. Oleh itu, sentiasa terdapat lebih banyak operasi baca daripada operasi kemas kini tulis. Oleh itu, konfigurasi pemisahan baca-tulis kami berdasarkan replikasi master-slave bermakna pangkalan data induk dikhususkan untuk mengubah suai data Apabila menulis, ia ditulis secara eksklusif pada pangkalan data induk replikasi melalui binlog, maka permintaan pertanyaan pelanggan lain akhirnya akan dipetakan ke perpustakaan hamba, dan kami mempunyai satu perpustakaan utama dengan dua atau tiga perpustakaan hamba Pustaka utama digunakan khas untuk mengemas kini data (operasi tulis). dan perpustakaan hamba Perpustakaan digunakan khas untuk operasi membaca Dengan cara ini, tekanan membaca dan menulis boleh diagihkan dengan baik. Ia tidak perlu tertumpu pada perpustakaan utama Perkhidmatan Selain itu, ia mempunyai kapasiti ketersediaan yang tinggi Jika berlaku bencana, apabila pangkalan data utama gagal, pangkalan data hamba yang ditetapkan boleh diubah menjadi pangkalan data utama.
Binlog dalam gambar di atas, walaupun kita tidak mempunyai replikasi tuan-hamba, masih akan menulis binlog, tetapi replikasi tuan-hamba dilaksanakan melalui binlog .
2 Pustaka hamba
mempunyai. Daripada membaca kandungan binlog dalam perpustakaan utama dan melaksanakannya secara langsung, kelemahan pelaksanaan langsung ialah perpustakaan utama mungkin mempunyai banyak kandungan binlog, dan pelaksanaan kandungan binlog yang diterima dari perpustakaan hamba mungkin sangat perlahan, mengakibatkan kemas kini daripada perpustakaan hamba Jurang antara data dan pangkalan data utama akan menjadi lebih luas dan lebih luas. Replikasi data mungkin ketinggalan. relay log
Pustaka hamba juga akan memulakan benang SQL
semua SQL Laksanakan kesemuanya , dengan itu mencapai penyegerakan kandungan perpustakaan hamba dan kandungan perpustakaan induk 4. Proses replikasi tuan-hamba
Operasi kemas kini perpustakaan utama ditulis ke dalam log binari binlog
(pustaka utama perlu menghidupkan suis binlog)master Pelayan mencipta benang pembuangan binlog
dan menghantar kandungan log binari ke pelayan hambaMesin hamba melaksanakan perintah START SLAVE
untuk mencipta benang IO pada pelayan hamba, yang menerima log binari induk dan menyalinnya ke log gegantinya (dalam ingatan , cepat membaca dan menulis) . Mula-mula, hamba memulakan utas yang berfungsi (benang I/O) akan menyambung secara aktif kepada induk Kemudian perpustakaan utama akan memulakan benang buangan binlog tuan dan menghantarnya kepada hamba I/O, jika benang dump telah mengejar tuan (benang dump pada perpustakaan utama telah selesai menghantar kandungan binlog, dan binlog pada perpustakaan utama belum. menghasilkan lebih banyak kandungan), benang dump akan tidur dan menunggu binlog menjana baharu Peristiwa yang diterima oleh benang I/O hamba ditulis pada log geganti
hamba Benang SQL mengendalikan langkah terakhir proses dan urutan SQL bermula dari geganti. Baca peristiwa daripada log dan laksanakan peristiwa untuk mengemas kini data hamba supaya ia disegerakkan dengan data induk. Selagi benang SQL konsisten dengan benang I/O, log geganti biasanya akan terletak dalam cache os, jadi overhed log geganti adalah sangat kecil
Centos pada Linux digunakan sebagai perpustakaan utama dan pelayan mysql pada win10 digunakan sebagai perpustakaan hamba untuk menunjukkan:
Replikasi tuan-hamba ialah penyegerakan sehala , perubahan tuan disegerakkan kepada hamba. Apabila menyediakan replikasi tuan-hamba, data antara pangkalan data tuan dan hamba mungkin berbeza. Setelah konfigurasi selesai, semua perubahan pada pangkalan data induk akan disegerakkan ke pangkalan data hamba.
master mencipta pangkalan data mytest:
Semak hamba dan dapatkan mytest telah disegerakkan:
Tuan mencipta jadual pengguna, dan hamba juga menyegerakkan jadual pengguna:
MySQL (master) di bahagian Linux kini memadamkan perpustakaan mytest
Pada masa ini masa, mitos hamba tidak lagi wujud
show processlist
Anda boleh melihat benang kerja dalam persekitaran semasa tuan
Lihat benang kerja dalam persekitaran semasa hamba
Atas ialah kandungan terperinci Apakah prinsip replikasi tuan-hamba dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!