Rumah > Tutorial sistem > LINUX > teks badan

Bagaimana untuk menyelesaikan kelewatan master-slave mysql

PHPz
Lepaskan: 2024-03-19 09:28:24
ke hadapan
1098 orang telah melayarinya

Bagaimana untuk menyelesaikan kelewatan master-slave mysql

Keupayaan replikasi terbina dalam MySQL adalah asas untuk membina aplikasi berprestasi tinggi yang besar. Mengedarkan data MySQL kepada berbilang sistem Mekanisme yang diedarkan ini dicapai dengan menyalin data hos MySQL tertentu kepada hamba hos yang lain dan melaksanakannya semula.
Semasa replikasi, satu pelayan bertindak sebagai tuan dan satu atau lebih pelayan lain bertindak sebagai hamba. Master menulis kemas kini kepada fail log binari dan mengekalkan indeks fail untuk menjejaki putaran log. Log ini merekodkan kemas kini yang dihantar kepada pelayan hamba. Apabila hamba menyambung kepada tuan, ia memberitahu tuan lokasi kemas kini berjaya terakhir yang dibaca hamba dalam log. Pelayan hamba menerima sebarang kemas kini yang telah berlaku sejak itu, kemudian menyekat dan menunggu pelayan induk memberitahu mereka tentang kemas kini.
Masalah dengan replikasi master-slave mysql:

  • Selepas pangkalan data utama dimatikan, data mungkin hilang
  • Pustaka hamba hanya mempunyai satu Thread sql, dan perpustakaan utama berada di bawah tekanan penulisan yang berat, dan replikasi mungkin akan ditangguhkan
Berikut ialah empat cara mudah untuk menyelesaikan kelewatan master-slave mysql
1. Prinsip kelewatan induk-hamba pangkalan data MySQL.

Jawapan: Apabila bercakap tentang prinsip kelewatan penyegerakan master-slave dalam pangkalan data MySQL, kita harus bermula dengan prinsip replikasi master-slave pangkalan data mysql ialah operasi berbenang tunggal untuk semua DDL dan DML Binlog adalah penulisan urutan, jadi kecekapan sangat tinggi, benang Slave_IO_Running hamba akan pergi ke perpustakaan utama untuk mendapatkan log, dan kecekapannya akan menjadi agak tinggi Operasi DDL dan DML perpustakaan utama pada hamba. Operasi IO DML dan DDL adalah rawak, bukan berurutan, jadi kosnya akan menjadi sangat tinggi pada hamba juga boleh menyebabkan pertikaian kunci Memandangkan Slave_SQL_Running juga berutas tunggal, induk kad DDL perlu melaksanakan 10 kali. minit, kemudian semua DDL berikutnya akan menunggu DDL ini selesai melaksanakan sebelum meneruskan, yang mengakibatkan kelewatan. Sesetengah rakan akan bertanya: "DDL yang sama pada perpustakaan utama juga perlu dilaksanakan selama 10 minit. Mengapa hamba ditangguhkan?"

2. Bagaimanakah kelewatan penyegerakan tuan-hamba dalam pangkalan data MySQL berlaku?

Jawapan: Apabila konkurensi TPS perpustakaan utama adalah tinggi dan bilangan DDL yang dijana melebihi apa yang boleh ditanggung oleh satu benang SQL hamba, penangguhan akan berlaku .

3.Penyelesaian kelewatan penyegerakan tuan-hamba pangkalan data MySQL

Jawapan: Penyelesaian paling mudah untuk mengurangkan kelewatan penyegerakan hamba adalah dengan mengoptimumkan seni bina dan cuba menjadikan DDL perpustakaan utama dilaksanakan dengan cepat. Terdapat juga fakta bahawa perpustakaan utama ditulis dan mempunyai keselamatan data yang tinggi, seperti sync_binlog=1, innodb_flush_log_at_trx_commit = 1 dan tetapan lain Hamba tidak memerlukan keselamatan data yang tinggi Anda boleh menetapkan sync_binlog kepada 0 atau mematikan binlog . innodb_flushlog juga boleh ditetapkan kepada 0 untuk meningkatkan kecekapan pelaksanaan SQL. Yang lain adalah menggunakan peranti perkakasan yang lebih baik daripada perpustakaan utama sebagai hamba.

4. Faktor yang menyebabkan kelewatan penyegerakan tuan-hamba dalam pangkalan data MySQL.

1. Kelewatan rangkaian
2. beban induk
3. beban hamba
Pendekatan umum ialah menggunakan berbilang hamba untuk mengedarkan permintaan baca, dan kemudian menggunakan pelayan khusus daripada hamba ini sahaja untuk sandaran tanpa sebarang operasi lain, supaya keperluan 'masa nyata' dapat dicapai pada tahap maksimum

Selain itu, mari perkenalkan 2 lagi parameter yang boleh mengurangkan kelewatan
–hamba-net-masa tamat=saat
Makna parameter: Apabila hamba gagal membaca data log dari pangkalan data utama, berapa lama menunggu untuk mewujudkan semula sambungan dan mendapatkan data
Unit slave_net_timeout ialah saat. Tetapan lalai ialah 3600 saat
|.hamba_net_masa tamat | –master-connect-retry=saat
Makna parameter: Apabila mewujudkan semula sambungan tuan-hamba, jika sambungan gagal diwujudkan, berapa lama masa yang diperlukan untuk mencuba semula. Unit master-connect-retry ialah saat Tetapan lalai ialah 60 saat Biasanya mengkonfigurasi 2 parameter di atas boleh mengurangkan kelewatan penyegerakan data master-slave yang disebabkan oleh masalah rangkaian

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan kelewatan master-slave mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:linuxprobe.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan