Lo scopo di una configurazione ad alta affidabilità è ridurre i tempi di inattività quando un'istanza del cluster di database non è disponibile. Questo potrebbe 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 è costituita da un'istanza principale e da 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 in standby in modo che agisca come nuova istanza principale. Il traffico dell'applicazione viene quindi reindirizzato alla nuova istanza principale. Questo processo è noto come failover.
Un failover automatico viene avviato dopo tre errori consecutivi del controllo di integrità sull'istanza principale, a distanza di 30 secondi l'uno dall'altro.
GDC supporta il failover sia automatico che manuale. Il failover automatico è abilitato per impostazione predefinita, ma puoi disabilitarlo se necessario. Puoi anche attivare manualmente un failover in qualsiasi momento per eseguire il recupero da un errore imprevisto e ridurre al minimo i tempi di inattività.
Il failover prevede il seguente processo, nell'ordine:
GDC porta l'istanza principale offline.
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 in standby.
Aggiorna un cluster esistente
Puoi aggiornare le impostazioni di alta affidabilità per un cluster di database esistente:
Console
Nel menu di navigazione, seleziona Servizio di database.
Nell'elenco dei cluster di database, fai clic sul cluster di database da aggiornare.
Seleziona edit Modifica nella sezione Alta affidabilità.

Seleziona Abilita standby nella stessa zona per attivare o disattivare la disponibilità di un'istanza in standby nella stessa zona del cluster di database primario.
Fai clic su Salva.
Verifica che il cluster di database rifletta l'aggiornamento dell'alta affidabilità visualizzando lo 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 valorezonalè 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à del cluster di database. Puoi impostaretrueofalse. Il valorefalseè 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'implementazione dell'alta affidabilità più recente
Per verificare che il cluster di database ad alta affidabilità utilizzi l'implementazione più recente, 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 ed eseguire la migrazione del cluster seguendo questi passaggi:
- Verifica con l'operatore dell'infrastruttura che l'ambiente GDC sia stato 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 CR del cluster di database per l'annotazionedbcluster.dbadmin.goog/raasEnabled. Se viene visualizzato, la migrazione del cluster di database è stata eseguita correttamente.
Attiva 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 Servizio di database.
Nell'elenco dei cluster di database, fai clic sul cluster di database per attivare un failover. Per essere idoneo al 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 il processo 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 esempiofailover-sample.
Disattiva il failover automatico
Il failover automatico è abilitato per impostazione predefinita sui 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 valoretrueè impostato per impostazione predefinita.