Sebagai pangkalan data hubungan yang berkuasa, MySQL telah digunakan secara meluas dalam banyak senario aplikasi. Dalam sesetengah sistem aplikasi berskala besar, data MySQL perlu direplikasi untuk mencapai penyegerakan data antara berbilang nod, dengan itu meningkatkan ketersediaan data dan memastikan ketersediaan sistem yang tinggi. Artikel ini akan memperkenalkan cara menggunakan teknologi replikasi data MySQL untuk mencapai replikasi data tepat pada masanya merentas berbilang nod MySQL yang diedarkan.
1. Prinsip replikasi data MySQL
Replikasi data MySQL merujuk kepada proses menyalin data dalam satu contoh MySQL ke contoh MySQL yang lain. Dalam seni bina replikasi data MySQL, terdapat dua peranan iaitu pangkalan data induk dan pangkalan data hamba.
Pustaka utama: Pustaka utama ialah nod yang bertanggungjawab untuk operasi tulis, iaitu, nod sumber data. Komponen binlog dikonfigurasikan pada pangkalan data utama, yang bertanggungjawab untuk merekod semua pernyataan SQL yang mengubah suai data.
Pustaka hamba: Pustaka hamba ialah nod yang bertanggungjawab untuk operasi baca, iaitu, nod salin data. Pustaka hamba mengemas kini data tempatan dengan membaca fail log binlog pustaka induk untuk mencapai penyegerakan data.
Aliran kerja replikasi MySQL adalah seperti berikut:
1 Apabila perpustakaan utama melakukan operasi tulis, ia merekodkan pernyataan SQL yang diubah suai ke dalam fail log binlog.
2. Mulakan urutan I/O dari pustaka hamba, tarik fail log binlog dari pustaka utama dan simpannya secara setempat.
3 Mulakan urutan SQL dari pangkalan data, dan mainkan semula pernyataan SQL yang disimpan dalam fail log binlog tempatan pada pangkalan data hamba untuk pelaksanaan, dengan itu mencapai penyegerakan data.
2. Pelaksanaan replikasi data MySQL
Dalam replikasi data MySQL, konfigurasi berikut diperlukan:
1 Dalam pustaka, anda perlu mendayakan komponen binlog, dayakan mod baris dan merekodkan pernyataan SQL semua operasi.
Buka fail konfigurasi my.cnf dan tambah item konfigurasi berikut di bawah nod [mysqld]:
log-bin=mysql-bin binlog-format=ROW
Antaranya, item konfigurasi log-bin menentukan di mana fail log binlog berada disimpan, binlog-format Item konfigurasi menentukan penggunaan mod ROW untuk merekod log binlog.
2. Konfigurasi perpustakaan hamba
Dalam perpustakaan hamba, perpustakaan utama perlu disalin, dan konfigurasi berikut perlu dilakukan:
Buka my.cnf fail konfigurasi, dalam [mysqld ] Tambah konfigurasi berikut di bawah nod:
server-id=101 #指定从库的唯一标识,要求唯一 replicate-do-db=test_db #指定要复制的数据库 log-slave-updates #记录从库上执行的SQL语句写入binlog文件
Antaranya, item konfigurasi server-id menentukan pengecam unik pangkalan data hamba, item konfigurasi replicate-do-db menentukan pangkalan data untuk direplikasi, dan item konfigurasi log-slave-update menentukan rekod penyata SQL yang dilaksanakan daripada perpustakaan ditulis ke fail binlog.
Mulakan semula perkhidmatan MySQL Apabila perpustakaan hamba bermula, ia akan secara automatik menarik fail log binlog dari pustaka utama dan memainkan semula pernyataan SQL pada dirinya untuk penyegerakan data.
3. Ketersediaan tinggi replikasi data MySQL
Replikasi data MySQL boleh menyediakan ketersediaan yang tinggi, tetapi pada masa yang sama, kebolehpercayaan dan ketekalan data perlu dipastikan. Semasa proses replikasi data MySQL, pangkalan data utama mungkin tidak berfungsi, pangkalan data hamba mungkin tidak dikemas kini dalam masa, dan lain-lain, mengakibatkan ketidakkonsistenan antara data tuan dan hamba.
Untuk memastikan ketersediaan tinggi replikasi data MySQL, kami boleh menggunakan langkah-langkah berikut:
1 Replikasi berbilang induk: konfigurasikan log binlog dalam berbilang perpustakaan induk dan perpustakaan hamba daripada berbilang perpustakaan induk Tarik log binlog daripada pangkalan data untuk menyalin data. Dengan cara ini, walaupun satu pangkalan data utama rosak, pangkalan data utama lain masih boleh menyediakan perkhidmatan untuk memastikan ketersediaan sistem yang tinggi.
2. Pensuisan Master-slave: Apabila pangkalan data utama turun, ia perlu menukar dengan cepat ke pangkalan data utama lain untuk menyediakan perkhidmatan. Anda boleh bertukar antara pangkalan data induk dan pangkalan data hamba melalui ejen pangkalan data untuk mencapai operasi penukaran induk-hamba yang lebih pantas.
3. Pemisahan baca dan tulis: Untuk mengurangkan tekanan pada perpustakaan utama, operasi baca boleh dibahagikan kepada berbilang perpustakaan hamba. Pada masa ini, perhatian perlu diberikan kepada ketepatan masa kemas kini data daripada pangkalan data untuk memastikan kebolehpercayaan data.
Ringkasan:
Replikasi data MySQL boleh mencapai penyegerakan data berbilang nod MySQL yang diedarkan, meningkatkan ketersediaan data dan ketersediaan tinggi sistem. Melalui konfigurasi yang munasabah dan langkah ketersediaan yang tinggi, kebolehpercayaan dan ketekalan data boleh dijamin untuk memenuhi keperluan sistem aplikasi berskala besar.
Atas ialah kandungan terperinci Replikasi data MySql: Bagaimana untuk mencapai replikasi data tepat pada masanya merentas berbilang nod MySQL yang diedarkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!