Saat terjadi kegagalan sistem, kluster PolarDB secara otomatis melakukan failover antara node primary dan node read-only. Anda juga dapat melakukan failover secara manual untuk mempromosikan node read-only menjadi node primary.
Peringatan
Selama proses failover—baik otomatis maupun manual—koneksi akan terputus sementara selama sekitar 20 hingga 30 detik jika hot standby tidak diaktifkan pada node read-only. Pastikan aplikasi Anda mampu terhubung kembali secara otomatis ke kluster. Jika hot standby diaktifkan pada node read-only, failover selesai dalam waktu 5 hingga 10 detik. Untuk informasi tentang cara mengaktifkan hot standby pada node read-only, lihat Configure hot replica nodes.
Dalam beberapa skenario ekstrem, durasi pemutusan koneksi sementara selama failover dapat meningkat, tetapi tidak melebihi 3 menit.
Failover otomatis
Kluster PolarDB menggunakan arsitektur ketersediaan tinggi aktif-aktif. Saat terjadi kegagalan sistem, failover otomatis dilakukan antara node primary yang dapat ditulis dan node read-only, serta sistem secara otomatis memilih node primary baru.
Setiap node dalam kluster memiliki prioritas failover yang menentukan probabilitasnya dipilih sebagai node primary selama failover. Jika beberapa node memiliki prioritas yang sama, probabilitas mereka untuk dipilih sebagai node primary setara.
Pemilihan otomatis node primary mengikuti langkah-langkah berikut:
-
Sistem mengidentifikasi semua node read-only yang memenuhi syarat untuk dipilih.
-
Satu atau lebih node read-only dengan prioritas tertinggi dipilih.
-
Jika failover ke node pertama gagal (misalnya karena masalah jaringan atau pengecualian status replikasi), sistem mencoba melakukan failover ke node berikutnya hingga proses berhasil.
Anda dapat melihat dan mengonfigurasi prioritas failover setiap node dalam kluster pada halaman Basic Information di bagian Database Nodes.
-
Jika hot standby tidak diaktifkan pada node read-only, koneksi akan terputus sementara selama sekitar 20 hingga 30 detik selama failover. Pastikan aplikasi Anda mampu terhubung kembali secara otomatis ke kluster.
-
Jika hot standby diaktifkan pada node read-only, failover selesai dalam waktu 5 hingga 10 detik.
-
Dalam beberapa skenario ekstrem, durasi pemutusan koneksi sementara selama failover dapat meningkat, tetapi tidak melebihi 3 menit.
Failover manual
Anda juga dapat melakukan failover secara manual untuk mempromosikan node read-only menjadi node primary. Failover manual cocok untuk simulasi ketersediaan tinggi atau skenario di mana Anda perlu mempromosikan node tertentu menjadi node primary.
-
Masuk ke PolarDB console.
-
Di pojok kiri atas, pilih wilayah tempat kluster dideploy.
-
Temukan kluster target dan klik ID-nya.
-
Pada halaman Basic Information di bagian Database Nodes, klik ikon
di pojok kanan atas untuk mengganti tampilan. -
Klik Fail Over.
-
Pada kotak dialog yang muncul, pilih new primary node dan klik OK untuk memulai failover.
Catatan-
Jika node primary baru adalah node read-only dengan hot standby dinonaktifkan, koneksi akan terputus sementara selama sekitar 20 hingga 30 detik selama failover. Pastikan aplikasi Anda mampu terhubung kembali secara otomatis ke kluster.
-
Jika node primary baru adalah node read-only dengan hot standby diaktifkan, failover selesai dalam waktu 5 hingga 10 detik.
-
Dalam beberapa skenario ekstrem, durasi pemutusan koneksi sementara selama failover dapat meningkat, tetapi tidak melebihi 3 menit.
-
FAQ
-
T: Setelah failover, status kluster tidak kembali ke Running setelah lebih dari 10 menit. Apa penyebabnya dan bagaimana cara mengatasinya?
-
J: Saat failover ketersediaan tinggi dipicu, koneksi persisten di sisi aplikasi mungkin tidak mendeteksi perubahan status koneksi. Jika timeout soket tidak dikonfigurasi, aplikasi akan terus menunggu respons dari database. Biasanya, koneksi tidak terputus hingga beberapa ratus detik kemudian. Selama periode ini, beberapa koneksi database tidak berfungsi dengan baik dan terjadi banyak error eksekusi SQL.
Untuk menghindari koneksi yang tidak valid, kami menyarankan Anda mengonfigurasi parameter connectTimeout dan socketTimeout pada driver MySQL secara tepat guna mencegah penantian tanpa batas saat terjadi error jaringan dan memperpendek durasi gangguan.
Nilai kedua parameter tersebut harus dievaluasi berdasarkan beban kerja dan pola penggunaan bisnis Anda. Untuk skenario transaksi online, nilai yang direkomendasikan adalah sebagai berikut:
-
connectTimeout: Kami menyarankan Anda mengatur parameter ini menjadi 1 hingga 2 detik.
-
socketTimeout: Untuk lingkungan jaringan internal, kami menyarankan Anda mengatur parameter ini menjadi 10 hingga 15 detik. Untuk lingkungan jaringan publik, kami menyarankan Anda mengatur parameter ini menjadi 60 hingga 90 detik.
CatatanNilai rekomendasi di atas hanya bersifat referensi.
-
-
T: Setelah failover, mengapa metrik TPS/MPS muncul di node read-only awal alih-alih di node primary awal?
-
J: Setelah failover, node read-only awal dipilih sebagai node primary baru, sedangkan node primary awal diturunkan menjadi node read-only. Metrik TPS/MPS muncul di node primary baru (node read-only awal), sementara node primary awal (sekarang menjadi node read-only) hanya menampilkan QPS. Ini merupakan perilaku normal akibat pertukaran role setelah failover.
Jika traffic tidak kembali ke node read-only setelah pemulihan kesalahan, periksa konfigurasi node layanan pada titik akhir kluster. Jika node read-only dihapus secara manual, tambahkan kembali untuk memulihkan distribusi traffic.
Operasi terkait
|
Operasi API |
Deskripsi |
|
Secara manual melakukan failover pada kluster PolarDB. Anda dapat menentukan node read-only sebagai node primary baru. |