Halaman ini menjelaskan apa yang terjadi selama eksperimen dengan jenis kesalahan Cloud SQL Failover.
Cara kerja kesalahan Cloud SQL Failover
Kesalahan Cloud SQL Failover memicu failover ketersediaan tinggi (HA) untuk instance Cloud SQL dengan memanggil metode failover di Cloud SQL Admin API. Tujuan kesalahan ini adalah untuk memungkinkan Anda menguji perilaku dan ketahanan layanan saat instance Cloud SQL utama bertransisi ke instance standby di zona lain dalam region yang sama.
Target untuk kesalahan ini adalah instance Cloud SQL.
Yang terjadi selama eksekusi eksperimen
Saat eksperimen berlangsung melalui status, resource yang terlibat akan mengalami perubahan berikut.
Resource |
|
|
|
Instance |
Tidak ada |
Promosikan instance standby HA |
Tidak berlaku |
Validasi dan percobaan ulang failover HA
Backend Pengujian Injeksi Kesalahan melakukan pemeriksaan validasi sebelum memulai failover untuk memastikan lingkungan sesuai. Proses ini terjadi selama tahap INJECTING, sebelum mengirimkan panggilan API sqladmin.instances.failover ke bidang kontrol Cloud SQL:
- Sistem memeriksa apakah status instance Cloud SQL adalah
RUNNABLE. Jika instance berada dalam status lain selama eksperimen berjalan, Pengujian Injeksi Kesalahan akan memberi tahu Anda. - Sistem memverifikasi bahwa metrik
cloudsql.googleapis.com/database/available_for_failoveradalahTRUE.
Jika kondisi ini tidak terpenuhi, permintaan failover akan dimasukkan ke dalam antrean untuk dicoba lagi.
Menangani kegagalan
Jika failover sudah berlangsung atau mengalami error:
- Selama injeksi: Jika panggilan failover ditolak oleh bidang kontrol Cloud SQL (misalnya, jika instance standby tidak sehat), eksperimen akan berpindah ke status
STOPPING. - Pemantauan pasca-failover: Jika operasi failover tidak mencapai status
DONEdalam durasi 10 menit yang telah ditentukan, backend Pengujian Injeksi Kesalahan akan mengkueri error operasi, memindahkan eksperimen ke statusSTOPPING, dan menandai eksperimen sebagai mengalami error.
Pengujian Injeksi Kesalahan mengandalkan bidang kontrol Cloud SQL sebagai sumber kebenaran. Bidang kontrol menolak upaya failover jika instance standby tidak sehat. Pengujian Injeksi Kesalahan menggunakan pemeriksaan pra-penerbangan dan pemantauan status untuk menghindari atau melaporkan kegagalan ini, bukan mencoba percobaan ulang otomatis setelah penolakan.
Failback manual
Karena failover adalah perubahan stateful, menghentikan eksperimen tidak otomatis melakukan failback ke instance utama asli (seperti yang ditunjukkan oleh 'Tidak berlaku' di tahap REVERTING). Database akan terus berjalan di zona sekunder.
Untuk mengembalikan instance ke zona aslinya setelah eksperimen selesai, Anda
harus memulai failover lain secara manual menggunakan Google Cloud konsol atau
gcloud CLI.