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:
GDC mette offline l'istanza principale.
GDC trasforma la replica in standby nel nuovo cluster di database attivo.
GDC elimina il cluster di database attivo precedente.
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
Nel menu di navigazione, seleziona Database Service.
Nell'elenco dei cluster di database, fai clic sul cluster di database da aggiornare.
Seleziona Modifica Modifica nella sezione Alta affidabilità.

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.
Fai clic su Salva.
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
Aggiorna la configurazione ad alta affidabilità del cluster di database:
gdcloud database clusters update CLUSTER_NAME \ --availability-type HA_TYPESostituisci quanto segue:
CLUSTER_NAME: il nome del cluster di database.HA_TYPE: il livello di alta affidabilità per il cluster di database. Puoi impostarezonalozonal_ha. Il valore dizonalè impostato per impostazione predefinita.
Verifica che il cluster di database rifletta l'aggiornamento dell'alta affidabilità:
gdcloud database clusters list
API
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=mergeSostituisci 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 impostaretrueofalse. Il valore difalseè impostato per impostazione predefinita.
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:
- Verifica con l'operatore dell'infrastruttura che il tuo ambiente GDC sia aggiornato alla versione 1.15.1 o successive.
- Disattiva l'alta affidabilità sul cluster di database. Attendi che la condizione
HAReadyscompaia, quindi riattiva l'alta affidabilità. - Dopo aver visualizzato
HAReady in progressoHAReady setup complete, controlla la RP del cluster di database per l'annotazionedbcluster.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
Nel menu di navigazione, seleziona Database Service.
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.
Fai clic su Failover.
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_NAMESostituisci
CLUSTER_NAMEcon 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 esempiofailover-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 impostaretrueofalse. Il valore ditrueè impostato per impostazione predefinita.