Mengonfigurasi ketersediaan tinggi

Tujuan konfigurasi ketersediaan tinggi adalah untuk mengurangi periode nonaktif saat instance cluster database menjadi tidak tersedia. Hal ini dapat terjadi saat instance kehabisan memori. Dengan ketersediaan tinggi, data Anda akan tetap tersedia untuk aplikasi klien.

Dalam situs, konfigurasi terdiri dari instance utama dan replika standby. Semua penulisan yang dibuat ke instance utama direplikasi ke replika standby sebelum transaksi dilaporkan sudah di-commit. Jika instance utama Anda tidak tersedia, GDC akan otomatis mempromosikan replika standby untuk bertindak sebagai instance utama baru. Traffic aplikasi kemudian dialihkan ke instance utama baru. Proses ini disebut failover.

Failover otomatis dimulai setelah 3 kegagalan health check berturut-turut pada instance utama, yang masing-masing berjarak 30 detik.

GDC mendukung failover otomatis dan manual. Failover otomatis diaktifkan secara default, dan Anda dapat menonaktifkan failover otomatis jika diperlukan. Anda juga dapat memicu failover secara manual kapan saja untuk memulihkan dari kegagalan yang tidak terduga dan meminimalkan periode nonaktif.

Failover melibatkan proses berikut, secara berurutan:

  1. GDC membuat instance utama offline.

  2. GDC mengubah replika standby menjadi cluster database aktif yang baru.

  3. GDC akan menghapus cluster database aktif sebelumnya.

  4. GDC membuat replika standby baru.

Mengupdate cluster yang ada

Anda dapat memperbarui setelan ketersediaan tinggi untuk cluster database yang ada:

Konsol

  1. Di menu navigasi, pilih Database Service.

  2. Dari daftar cluster database, klik cluster database yang akan diupdate.

  3. Pilih edit Edit di bagian ketersediaan tinggi.

    Mengedit setelan ketersediaan tinggi cluster database.

  4. Pilih Enable same zone standby untuk mengaktifkan atau menonaktifkan ketersediaan instance standby di zona yang sama dengan cluster database utama Anda.

  5. Klik Simpan.

  6. Pastikan cluster database Anda mencerminkan update ketersediaan tinggi dengan melihat statusnya di kolom High availability pada daftar cluster database.

gdcloud

  1. Perbarui konfigurasi ketersediaan tinggi cluster database Anda:

    gdcloud database clusters update CLUSTER_NAME \
        --availability-type HA_TYPE
    

    Ganti kode berikut:

    • CLUSTER_NAME: nama cluster database.
    • HA_TYPE: tingkat ketersediaan tinggi untuk cluster database. Anda dapat menetapkan zonal atau zonal_ha. Nilai zonal ditetapkan secara default.
  2. Pastikan cluster database Anda mencerminkan update ketersediaan tinggi:

    gdcloud database clusters list
    

API

  1. Perbarui konfigurasi ketersediaan tinggi cluster database Anda:

      kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME \
        -n USER_PROJECT \
        -p '{"spec": {"availability": {"enableHighAvailability": HA_ENABLED}}}' \
        --type=merge
    

    Ganti variabel berikut:

    • DBCLUSTER_NAME: nama cluster database.
    • USER_PROJECT: nama project pengguna tempat cluster database dibuat.
    • HA_ENABLED: tingkat ketersediaan tinggi untuk cluster database. Anda dapat menetapkan true atau false. Nilai false ditetapkan secara default.
  2. Pastikan cluster database Anda mencerminkan update ketersediaan tinggi:

    kubectl get dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME \
      -n USER_PROJECT \
      -o yaml
    

Bermigrasi ke implementasi ketersediaan tinggi terbaru

Untuk memverifikasi bahwa cluster database ketersediaan tinggi Anda menggunakan implementasi terbaru, periksa apakah anotasi dbcluster.dbadmin.goog/raasEnabled ada di CR cluster database ketersediaan tinggi Anda. Anotasi ini hanya akan muncul di cluster yang menggunakan implementasi baru. Jika tidak memiliki anotasi ini, Anda dapat mengaktifkannya dan memigrasikan cluster dengan langkah-langkah berikut:

  1. Tanyakan kepada Operator Infrastruktur Anda apakah lingkungan GDC Anda telah diupgrade ke versi 1.15.1 atau yang lebih baru.
  2. Nonaktifkan ketersediaan tinggi di cluster database Anda. Tunggu hingga kondisi HAReady hilang, lalu aktifkan kembali ketersediaan tinggi.
  3. Setelah Anda melihat HAReady in progress atau HAReady setup complete, periksa CR cluster database Anda untuk anotasi dbcluster.dbadmin.goog/raasEnabled. Jika muncul, berarti cluster database Anda telah berhasil dimigrasikan.

Memicu failover

Jika telah mengonfigurasi ketersediaan tinggi untuk cluster database, Anda dapat memicu failover. Untuk memicu failover, selesaikan langkah-langkah berikut:

Konsol

  1. Di menu navigasi, pilih Database Service.

  2. Dari daftar cluster database, klik cluster database untuk memicu failover. Cluster database Anda harus mengaktifkan ketersediaan tinggi agar memenuhi syarat untuk failover.

  3. Klik Failover.

  4. Ketik ID cluster untuk frasa konfirmasi, lalu klik Failover untuk memicu proses failover.

gdcloud

Picu failover untuk cluster database:

gdcloud database clusters failover CLUSTER_NAME

Ganti CLUSTER_NAME dengan nama cluster database.

API

  apiVersion: fleet.dbadmin.gdc.goog/v1
  kind: Failover
  metadata:
    name: FAILOVER_NAME
    namespace: USER_PROJECT
  spec:
    dbclusterRef: DBCLUSTER_NAME

Ganti variabel berikut:

  • DBCLUSTER_NAME, nama cluster database.
  • USER_PROJECT: nama project pengguna tempat cluster database dibuat.
  • FAILOVER_NAME, nama unik failover, misalnya failover-sample.

Menonaktifkan failover otomatis

Failover otomatis diaktifkan secara default di cluster database dengan ketersediaan tinggi.

Untuk menonaktifkan failover otomatis, tetapkan enableAutoFailover ke false dalam manifes cluster database:

spec:
  availability:
    enableAutoFailover: false

Untuk memperbarui konfigurasi failover otomatis untuk cluster database yang ada menggunakan API, jalankan perintah berikut:

kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME \
  -n USER_PROJECT \
  -p '{"spec": {"availability": {"enableAutoFailover": AUTO_FAILOVER_ENABLED}}}' \
  --type=merge

Ganti variabel berikut:

  • DBCLUSTER_NAME: nama cluster database.
  • USER_PROJECT: nama project pengguna tempat cluster database dibuat.
  • AUTO_FAILOVER_ENABLED: setelan failover otomatis untuk cluster database. Anda dapat menetapkan true atau false. Nilai true ditetapkan secara default.