Dalam penyiapan ketersediaan tinggi (HA) sumber-replika sumber MySQL, penting untuk terus memantau kesehatan sumber dan server replika sehingga Anda dapat mendeteksi potensi masalah dan mengambil tindakan korektif . Dalam posting blog ini, kami menjelaskan beberapa pemeriksaan kesehatan dasar yang dapat Anda lakukan pada sumber MySQL dan node replika untuk memastikan pengaturan Anda sehat. Program atau skrip pemantauan harus mengingatkan kerangka ketersediaan tinggi jika ada pemeriksaan kesehatan yang gagal, memungkinkan kerangka ketersediaan tinggi untuk mengambil tindakan korektif untuk memastikan ketersediaan layanan.
Pemeriksaan Kesehatan Server Sumber MySQL
Kami menyarankan agar program atau skrip pemantauan sumber MySQL Anda berjalan pada interval yang sering. Dengan asumsi bahwa skrip pemantauan berjalan di server yang sama dengan server MySQL Anda, Anda dapat memeriksa hal berikut:
-
Pastikan layanan MySQL berjalan
Ini dapat dilakukan dengan menggunakan perintah sederhana seperti:
> pgrep mysqld
ATAU
>service mysqld status
-
Pastikan Anda dapat terhubung ke MySQL dan melakukan kueri sederhana
Kami merekomendasikan untuk memiliki waktu tunggu singkat untuk perintah ini sehingga Anda dapat dengan cepat mendeteksi jika MySQL tidak responsif. Ini dapat dicapai dari panggilan seperti:
/usr/bin/timeout 5 mysql -u testuser -ptestpswd -e 'select * from mysql.test’
Pastikan untuk memeriksa nilai keluar dari perintah di atas:
Keluar nilai=0 Berhasil
Nilai keluar=1 Kegagalan
Exit-value=124 Timeout
Jika waktu perintah habis, berarti layanan MySQL tidak cukup responsif. Kami menyarankan Anda mencoba lagi setelah beberapa waktu untuk menghindari hasil negatif palsu. Jika kode keluar menunjukkan kegagalan, kode pengembalian dari MySQL akan memberi tahu kami alasan kegagalan. Salah satu contoh kegagalan adalah kesalahan 'Terlalu banyak koneksi' dari MySQL yang terjadi jika jumlah koneksi ke server melebihi nilai konfigurasi 'max_connections' Anda.
-
Pastikan sumber MySQL berjalan dalam mode baca-tulis
Anda dapat menggunakan perintah berikut untuk memastikan sumber MySQL berjalan dalam mode baca-tulis:
/usr/bin/timeout 5 mysql -u testuser -ptestpswd -e "SELECT @@global.read_only"
Sumber diharapkan selalu berjalan dalam mode baca-tulis, dan karenanya, nilai read_only harus 'OFF'.
Dimungkinkan juga untuk menggabungkan langkah ini dengan langkah 2, dan alih-alih melakukan kueri pengujian 'select * from mysql.test, kita bisa melakukan kueri untuk mendapatkan read_only nilai.
Pemeriksaan Kesehatan Server Replika MySQL
Anda dapat menjalankan pemantauan untuk replika MySQL Anda pada frekuensi yang lebih rendah dibandingkan dengan sumbernya, karena replika tersebut tidak menangani penulisan data. 3 langkah pertama untuk health check replika Anda bisa sama dengan yang ada di sumber, kecuali bahwa kita perlu memastikan replika berjalan dalam mode hanya-baca - nilai variabel read_only harus 'ON' di langkah-3 .
Selain itu, kami dapat melakukan lebih banyak pemeriksaan pada replika untuk memastikan status replikasinya sehat, seperti:
Replika dikonfigurasi untuk mereplikasi dari sumber yang tepat.
Koneksi replika ke sumbernya sehat.
Replika dapat menerapkan peristiwa sumber yang diterimanya.
Anda dapat memeriksa semua hal di atas menggunakan perintah 'tampilkan status replika'. Misalnya:
mysql> show replica status \G; *************************** 1. row *************************** Replica_IO_State: Waiting for source to send event Source_Host: 172.31.17.43 Source_User: repl_user Source_Port: 3306 Connect_Retry: 10 Source_Log_File: mysql-bin.000001 Read_Source_Log_Pos: 7510 Relay_Log_File: relay-log.000006 Relay_Log_Pos: 414 Relay_Source_Log_File: mysql-bin.000001 Replica_IO_Running: Yes Replica_SQL_Running: Yes ******************Truncated*********************************
Nilai Source_Host menunjukkan server sumber dikonfigurasi untuk replikasi.
Untuk nilai Replica_IO_Running, “Ya” menunjukkan bahwa replika telah terhubung ke sumber dan menerima aliran replikasi.
Untuk nilai Replica_SQL_Running, “Ya” menunjukkan bahwa applier replika sedang berjalan dan dapat menerapkan semua peristiwa yang diterima dari sumber.
Dalam posting blog ini, kami membahas beberapa pemeriksaan sederhana yang dapat mendeteksi jika ada masalah dasar di server replika dan sumber MySQL Anda. Secara umum, mekanisme deteksi kegagalan dalam penyiapan ketersediaan tinggi adalah subjek yang kompleks dan memerlukan kerangka kerja ketersediaan tinggi yang kuat untuk menerapkan pemantauan health check. Anda dapat mempelajari lebih lanjut tentang detail kerangka ketersediaan tinggi kami di Penjelasan Kerangka Ketersediaan Tinggi MySQL – Bagian I:entri blog Pendahuluan.