Configura l'alta affidabilità

Lo scopo di una configurazione ad alta affidabilità è ridurre i tempi di inattività quando un'istanza del cluster di database non è disponibile. Ciò può accadere quando un'istanza esaurisce la memoria. Con l'alta affidabilità, i tuoi dati continuano a essere disponibili per le applicazioni client.

All'interno di un sito, la configurazione include un'istanza principale e una replica in standby. Tutte le scritture effettuate nell'istanza principale vengono replicate nella replica di standby prima che venga confermato il commit di una transazione. Se l'istanza principale non è disponibile, GDC promuove automaticamente la replica di standby in modo che funga da nuova istanza principale. Il traffico dell'applicazione viene quindi reindirizzato alla nuova istanza principale. Questo processo è chiamato failover.

Un failover automatico viene avviato dopo 3 errori consecutivi del controllo di integrità sull'istanza primaria, ciascuno a distanza di 30 secondi.

GDC supporta il failover automatico e manuale. Il failover automatico è abilitato per impostazione predefinita e puoi disattivarlo se necessario. Puoi anche attivare manualmente un failover in qualsiasi momento per eseguire il ripristino in caso di errore imprevisto e ridurre al minimo i tempi di inattività.

Il failover prevede la seguente procedura, in ordine:

  1. GDC mette offline l'istanza principale.

  2. GDC trasforma la replica in standby nel nuovo cluster di database attivo.

  3. GDC elimina il cluster di database attivo precedente.

  4. GDC crea una nuova replica di standby.

Aggiornare un cluster esistente

Puoi aggiornare le impostazioni di alta affidabilità per un cluster di database esistente:

Console

  1. Nel menu di navigazione, seleziona Database Service.

  2. Nell'elenco dei cluster di database, fai clic sul cluster di database da aggiornare.

  3. Seleziona Modifica Modifica nella sezione Alta affidabilità.

    Modifica le impostazioni di alta affidabilità di un cluster di database.

  4. Seleziona Abilita istanza in standby nella stessa zona per attivare o disattivare la disponibilità di un'istanza in standby nella stessa zona del cluster di database principale.

  5. Fai clic su Salva.

  6. Verifica che il cluster di database rifletta l'aggiornamento dell'alta affidabilità visualizzando il suo stato nella colonna Alta affidabilità dell'elenco dei cluster di database.

gdcloud

  1. Aggiorna la configurazione ad alta affidabilità del cluster di database:

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

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del cluster di database.
    • HA_TYPE: il livello di alta affidabilità per il cluster di database. Puoi impostare zonal o zonal_ha. Il valore di zonal è impostato per impostazione predefinita.
  2. Verifica che il cluster di database rifletta l'aggiornamento dell'alta affidabilità:

    gdcloud database clusters list
    

API

  1. Aggiorna la configurazione ad alta affidabilità del cluster di database:

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

    Sostituisci le seguenti variabili:

    • DBCLUSTER_NAME: il nome del cluster di database.
    • USER_PROJECT: il nome del progetto utente in cui è stato creato il cluster di database.
    • HA_ENABLED: il livello di alta affidabilità per il cluster di database. Puoi impostare true o false. Il valore di false è impostato per impostazione predefinita.
  2. Verifica che il cluster di database rifletta l'aggiornamento dell'alta affidabilità:

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

Esegui la migrazione all'ultima implementazione di alta affidabilità

Per verificare che il cluster di database ad alta affidabilità utilizzi l'ultima implementazione, controlla se l'annotazione dbcluster.dbadmin.goog/raasEnabled esiste nella CR del cluster di database ad alta affidabilità. Questa annotazione verrà visualizzata solo sui cluster che utilizzano la nuova implementazione. Se non hai questa annotazione, puoi attivarla e migrare il cluster seguendo questi passaggi:

  1. Verifica con l'operatore dell'infrastruttura che il tuo ambiente GDC sia aggiornato alla versione 1.15.1 o successive.
  2. Disattiva l'alta affidabilità sul cluster di database. Attendi che la condizione HAReady scompaia, quindi riattiva l'alta affidabilità.
  3. Dopo aver visualizzato HAReady in progress o HAReady setup complete, controlla la RP del cluster di database per l'annotazione dbcluster.dbadmin.goog/raasEnabled. Se viene visualizzato, il cluster di database è stato migrato correttamente.

Attivare un failover

Se hai configurato l'alta affidabilità per il cluster di database, puoi attivare un failover. Per attivare un failover, completa i seguenti passaggi:

Console

  1. Nel menu di navigazione, seleziona Database Service.

  2. Nell'elenco dei cluster di database, fai clic sul cluster di database per attivare un failover. Per essere idoneo a un failover, il cluster di database deve avere l'alta affidabilità abilitata.

  3. Fai clic su Failover.

  4. Digita l'ID del cluster per la frase di conferma e fai clic su Failover per attivare la procedura di failover.

gdcloud

  • Attiva il failover per il cluster di database:

    gdcloud database clusters failover CLUSTER_NAME
    

    Sostituisci CLUSTER_NAME con il nome del cluster di database.

API

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

Sostituisci le seguenti variabili:

  • DBCLUSTER_NAME, il nome del cluster di database.
  • USER_PROJECT: il nome del progetto utente in cui è stato creato il cluster di database.
  • FAILOVER_NAME, il nome univoco del failover, ad esempio failover-sample.

Disattivare il failover automatico

Il failover automatico è abilitato per impostazione predefinita nei cluster di database ad alta affidabilità.

Per disattivare il failover automatico, imposta enableAutoFailover su false nel manifest del cluster di database:

spec:
  availability:
    enableAutoFailover: false

Per aggiornare la configurazione del failover automatico per un cluster di database esistente utilizzando l'API, esegui questo comando:

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

Sostituisci le seguenti variabili:

  • DBCLUSTER_NAME: il nome del cluster di database.
  • USER_PROJECT: il nome del progetto utente in cui è stato creato il cluster di database.
  • AUTO_FAILOVER_ENABLED: l'impostazione di failover automatico per il cluster di database. Puoi impostare true o false. Il valore di true è impostato per impostazione predefinita.