Halaman ini menunjukkan cara mengaktifkan dan menguji ketersediaan tinggi (HA) di
cluster database AlloyDB Omni berbasis Kubernetes. Untuk melakukan tugas yang didokumentasikan di sini, Anda memerlukan pengetahuan dasar tentang cara menerapkan file manifes Kubernetes dan menggunakan alat command line kubectl
.
Ringkasan
Anda dapat mengaktifkan HA di cluster database dengan mengarahkan Operator Kubernetes AlloyDB Omni untuk membuat replika standby dari instance database utama Anda. AlloyDB Omni Operator mengonfigurasi cluster database Anda untuk terus memperbarui data pada replika ini, yang mencocokkan semua perubahan pada data di instance utama Anda.
Mengaktifkan HA
Sebelum mengaktifkan HA di cluster database, pastikan cluster Kubernetes Anda memiliki hal berikut:
- Penyimpanan untuk dua salinan lengkap data Anda
- Resource komputasi untuk dua instance database yang berjalan secara paralel
Untuk mengaktifkan HA, ikuti langkah-langkah berikut:
Ubah manifes cluster database untuk menyertakan bagian
availability
di bagianspec
. Bagian ini menentukan jumlah standby yang ingin Anda tambahkan dengan menetapkan parameternumberOfStandbys
.spec: availability: numberOfStandbys: NUMBER_OF_STANDBYS
Ganti
NUMBER_OF_STANDBYS
dengan jumlah standby yang ingin Anda tambahkan. Nilai maksimumnya adalah5
. Jika Anda menyiapkan HA dan tidak yakin dengan jumlah standby yang diperlukan, mulailah dengan menetapkan nilai ke1
atau2
.Terapkan kembali manifes.
Menonaktifkan HA
Untuk menonaktifkan HA, ikuti langkah-langkah berikut:
Tetapkan
numberOfStandbys
ke0
di manifes cluster:spec: availability: numberOfStandbys: 0
Terapkan kembali manifes.
Memverifikasi HA di cluster database
Untuk melihat status HA saat ini dari cluster database, periksa kondisi HAReady
status cluster tersebut. Jika nilai ini memiliki status
yang ditetapkan ke True
,
HA akan disiapkan dan berfungsi di cluster database.
Untuk memeriksa nilai ini di command line, jalankan perintah berikut:
kubectl get dbcluster.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -o jsonpath={.status.conditions[?(@.type == \'HAReady\')]} -n NAMESPACE
Ganti kode berikut:
DB_CLUSTER_NAME
: nama cluster database.NAMESPACE
: namespace cluster database.
Melakukan failover ke instance standby
Jika instance utama Anda tidak tersedia selama lebih dari 90 detik, AlloyDB Omni Operator akan otomatis melakukan failover dari instance database utama ke instance standby.
Failover adalah opsi yang baik jika Anda ingin memulihkan dari kegagalan yang tidak terduga dengan cepat dan meminimalkan periode nonaktif, meskipun hal ini berpotensi kehilangan sejumlah kecil data, jika database utama tidak tersedia sebelum pencadangan diperbarui sepenuhnya.
Operator AlloyDB Omni mendukung failover otomatis dan manual. Failover otomatis diaktifkan secara default.
Failover menghasilkan urutan peristiwa berikut:
Operator AlloyDB Omni akan membuat instance database utama offline.
Operator AlloyDB Omni mempromosikan replika standby menjadi instance database utama baru.
Operator AlloyDB Omni menghapus instance database utama sebelumnya.
Operator AlloyDB Omni membuat replika standby baru.
Menonaktifkan failover otomatis
Failover otomatis diaktifkan secara default di cluster database.
Untuk menonaktifkan failover, ikuti langkah-langkah berikut:
Tetapkan
enableAutoFailover
kefalse
di manifes cluster:spec: availability: enableAutoFailover: false
Terapkan kembali manifes.
Memicu failover manual
Untuk memicu failover manual, buat dan terapkan manifes untuk resource failover baru:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: Failover
metadata:
name: FAILOVER_NAME
namespace: NAMESPACE
spec:
dbclusterRef: DB_CLUSTER_NAME
Ganti kode berikut:
FAILOVER_NAME
: nama untuk resource ini—misalnya,failover-1
.NAMESPACE
: namespace untuk resource failover ini, yang harus cocok dengan namespace cluster database yang berlaku.DB_CLUSTER_NAME
: nama cluster database yang akan gagal.
Untuk memantau failover, jalankan perintah berikut:
kubectl get failover FAILOVER_NAME -o jsonpath={.status.state} -n NAMESPACE
Ganti kode berikut:
FAILOVER_NAME
: nama yang Anda tetapkan untuk resource failover saat membuatnya.NAMESPACE
: namespace cluster database.
Perintah ini menampilkan Success
setelah instance database utama baru siap
digunakan. Untuk memantau status instance standby baru, lihat bagian berikutnya.
Beralih ke instance standby
Peralihan dilakukan saat Anda ingin menguji penyiapan disaster recovery atau aktivitas terencana lainnya yang memerlukan pengalihan peran database utama dan replika standby.
Setelah peralihan selesai, peran instance database utama dan replika standby akan dibalik bersama dengan arah replikasi. Anda harus memilih pengalihan jika menginginkan kontrol yang lebih baik atas proses pengujian penyiapan disaster recovery tanpa kehilangan data.
Operator AlloyDB Omni mendukung pengalihan manual.
Peralihan akan menghasilkan urutan peristiwa berikut:
Operator AlloyDB Omni akan membuat instance database utama offline.
Operator AlloyDB Omni mempromosikan replika standby menjadi instance database utama baru.
Operator AlloyDB Omni mengalihkan instance database utama sebelumnya ke replika standby.
Melakukan pengalihan
Sebelum melakukan pengalihan, pastikan hal berikut:
- Pastikan instance database utama dan replika standby Anda berada dalam status baik. Untuk informasi selengkapnya, lihat Mengelola dan memantau AlloyDB Omni.
- Verifikasi bahwa status HA saat ini dalam kondisi
HAReady
. Untuk mengetahui informasi selengkapnya, lihat Memverifikasi HA di cluster database.
Untuk melakukan pengalihan, buat dan terapkan manifes untuk resource pengalihan baru:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: Switchover
metadata:
name: SWITCHOVER_NAME
spec:
dbclusterRef: DB_CLUSTER_NAME
NewPrimary: STANBDY_REPLICA_NAME
Ganti kode berikut:
SWITCHOVER_NAME
: nama untuk resource pengalihan ini—misalnya,switchover-1
.DB_CLUSTER_NAME
: nama instance database utama yang menjadi sasaran operasi switchover.STANBDY_REPLICA_NAME
: nama instance database yang ingin Anda promosikan sebagai utama baru.Untuk mengidentifikasi nama replika standby, jalankan perintah berikut:
posix-terminal kubectl get instances.alloydbomni.internal.dbadmin.goog
Menggunakan replika standby sebagai instance hanya baca
Untuk menggunakan replika standby sebagai instance hanya baca, selesaikan langkah-langkah berikut:
Ubah manifes cluster database untuk menetapkan parameter
enableStandbyAsReadReplica
ketrue
.spec: availability: enableStandbyAsReadReplica: true
Terapkan kembali manifes.
Pastikan endpoint hanya baca dilaporkan di kolom
status
objekDBCluster
:kubectl describe dbcluster -n NAMESPACE DB_CLUSTER_NAME
Contoh respons berikut menunjukkan endpoint instance hanya baca:
Status: [...] Primary: [...] Endpoints: Name: Read-Write Value: 10.128.0.81:5432 Name: Read-Only Value: 10.128.0.82:5432