Ini kejadian udah sering banget tapi masih banyak yang nanya recovery node yang rusak pada cluster gimana ? klo kenanya di master node gimana ?… itulah latar belakang saya nulis artikel ini dan saya akan jelaskan tahapan untuk recovery node tersebut

- Gambar diatas merupakan basic architecture untuk kita bisa pahami bahwa galera bersifat aktif – aktif dan saling mereplikasi data.
- Disini kita asumsikan node pertama yang paling kiri yang juga merupakan master node dalam keadaan crash, service mysql / mariadb dan ga bisa naik servicenya, untuk 2 node lainnya tetap aktif
- Dari kondisi diatas kita tau, ada 1 node rusak (crash) dan ada 2 node yang sehat
- Tahap selanjutnya stop semua node mariadb / mysql
systemctl stop mariadb - setelah semua node mati yang perlu kita pastikan adalah file
/var/lib/mysql/grastate.datdi dalam file tersebut yang kita perlu perhatikan adalahseqnopada setiap node. node yangseqnonya paling tinggi, dari seqno tersebut kita bisa memiilih node tersebut untuk menjadi master node baru dan kita set menjadisafe_to_bootstrapmenjadi 1 - INGAT node rusak tidak boleh di
safe_to_bootstrap - lakukan
mvatau backup/var/lib/mysqlnode yang rusak dengan perintah#cp -a /var/lib/mysql /var/lib/mysql.bad.$(date +%s)
atau#mv /var/lib/mysql /var/lib/mysql.bad.$(date +%s) - jika sudah selesai di backup mari kita delete folder mysql di node yang rusak dan buat kembali folder tersebut dan pastikan ownership dan group nya adalah mysql
#rm -rf /var/lib/mysql
#mkdir /var/lib/mysql
#chown mysql:mysql /var/lib/mysql - setelah selesai mari kita nyalakan master node yang baru dengan perintah
galera_new_cluster - lanjut dengan node kedua yang sehat
systemctl start mariadb - lanjut lagi dengan node yang ketiga atau node yang rusak tadi dengan perintah yang sama
systemctl start mariadbpada proses ini biasanya akan sangat lama ada yang 10 menit 20 menit 1 jam bahkan lebih dari 1 jam, ini di karenakan node rusak ini akan menerima data dari node donor dari master node dan node kedua - Tunggu sampai selesai.. klo selesai alhamdulillah tapi biasanya anda akan kaget ketika proses tiba – tiba exit dan keluar seperti ini
#systemctl start mariadb
Job for mariadb.service failed because a fatal signal was delivered to the control process. See "systemctl status mariadb.service" and "journalctl -xe" for details. - padaha tahapan ini cukup check
systemctl status mariadb.servicedan lihat statusnya kloactivatingini tinggal nunggu aja sampai status menjadiactiveini biasanya dikarenakan rsync selesai, dan galera perlu mempersiapkan galera.cache,grastate.dat, mysql.ibd, redo log, dan validasi InnoDB lainnya - jika sudah selesai pasti statusnya akan menjadi
activenamun klofailedmaka check kembali di log, paling simple cek dijournalctl -xeapa penyebabnya
semoga artikel ini bermanfaat untuk mengguna mysql dan mariadb yang menggunakan gelera cluster yang mengalami kesulitan dalam recovery node yang crash
