kubectl
.
Panoramica
Puoi abilitare l'alta affidabilità nel cluster di database indirizzando l'operatore AlloyDB Omni Kubernetes a creare repliche di standby dell'istanza di database principale. L'operatore AlloyDB Omni configura il cluster di database in modo da aggiornare continuamente i dati su questa replica, in modo che corrispondano a tutte le modifiche ai dati sull'istanza principale.
Abilita alta disponibilità
Prima di abilitare l'alta disponibilità nel cluster di database, assicurati che il cluster Kubernetes disponga di quanto segue:
- Spazio di archiviazione per due copie complete dei tuoi dati
- Risorse di computing per due istanze di database in esecuzione in parallelo
Per attivare l'alta disponibilità:
Modifica il file manifest del cluster di database in modo da includere una sezione
availability
nella sezionespec
. Questa sezione definisce il numero di standby che vuoi aggiungere impostando il parametronumberOfStandbys
.spec: availability: numberOfStandbys: NUMBER_OF_STANDBYS
Sostituisci
NUMBER_OF_STANDBYS
con il numero di standby che vuoi aggiungere. Il valore massimo è5
. Se stai configurando l'alta affidabilità e non sai quanti standby ti servono, inizia impostando il valore su1
o2
.Applica di nuovo il manifest.
Disabilita HA
Per disattivare l'HA:
Imposta
numberOfStandbys
su0
nel manifest del cluster:spec: availability: numberOfStandbys: 0
Applica di nuovo il manifest.
Verificare l'alta disponibilità su un cluster di database
Per visualizzare lo stato HA attuale di un cluster di database, controlla la condizione HAReady
dello stato del cluster. Se questo valore ha status
impostato su True
,
allora l'alta disponibilità è configurata e funziona sul cluster di database.
Per controllare questo valore nella riga di comando, esegui questo comando:
kubectl get dbcluster.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -o jsonpath={.status.conditions[?(@.type == \'HAReady\')]} -n NAMESPACE
Sostituisci quanto segue:
DB_CLUSTER_NAME
: il nome del cluster di database.NAMESPACE
: lo spazio dei nomi del cluster di database.
Eseguire il failover su un'istanza di standby
Se l'istanza principale non è disponibile per più di 90 secondi, l'operatore AlloyDB Omni esegue automaticamente il failover dall'istanza del database principale all'istanza di standby.
I failover sono una buona opzione quando vuoi ripristinare rapidamente un errore imprevisto e ridurre al minimo i tempi di inattività, anche se ciò significa potenzialmente perdere una piccola quantità di dati, se il database principale non è disponibile prima che il backup venga aggiornato completamente.
AlloyDB Omni Operator supporta il failover automatico e manuale. Il failover automatico è abilitato per impostazione predefinita.
Il failover comporta la seguente sequenza di eventi:
L'operatore AlloyDB Omni mette offline l'istanza del database principale.
L'operatore AlloyDB Omni promuove la replica di standby a nuova istanza di database principale.
L'operatore AlloyDB Omni elimina l'istanza del database principale precedente.
L'operatore AlloyDB Omni crea una nuova replica di standby.
Disattivare il failover automatico
I failover automatici sono abilitati per impostazione predefinita nei cluster di database.
Per disattivare un failover:
Imposta
enableAutoFailover
sufalse
nel manifest del cluster:spec: availability: enableAutoFailover: false
Applica di nuovo il manifest.
Attivare un failover manuale
Per attivare un failover manuale, crea e applica un manifest per una nuova risorsa di failover:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: Failover
metadata:
name: FAILOVER_NAME
namespace: NAMESPACE
spec:
dbclusterRef: DB_CLUSTER_NAME
Sostituisci quanto segue:
FAILOVER_NAME
: un nome per questa risorsa, ad esempiofailover-1
.NAMESPACE
: lo spazio dei nomi di questa risorsa di failover, che deve corrispondere allo spazio dei nomi del cluster di database a cui si applica.DB_CLUSTER_NAME
: il nome del cluster di database di cui eseguire il failover.
Per monitorare il failover, esegui questo comando:
kubectl get failover FAILOVER_NAME -o jsonpath={.status.state} -n NAMESPACE
Sostituisci quanto segue:
FAILOVER_NAME
: il nome che hai assegnato alla risorsa di failover quando l'hai creata.NAMESPACE
: lo spazio dei nomi del cluster di database.
Il comando restituisce Success
dopo che la nuova istanza del database primario è pronta
per l'uso. Per monitorare lo stato della nuova istanza di standby, consulta la sezione successiva.
Failover a un'istanza in standby
Il cambio di ruolo viene eseguito quando vuoi testare la configurazione di ripristino di emergenza o qualsiasi altra attività pianificata che richieda di invertire i ruoli del database principale e della replica di standby.
Al termine dello switchover, i ruoli dell'istanza del database principale e della replica di standby vengono invertiti insieme alla direzione della replica. Devi optare per i cambi di ruolo se vuoi un controllo migliore del processo di test della configurazione di ripristino di emergenza senza perdita di dati.
L'operatore AlloyDB Omni supporta il failover manuale.
Il cambio comporta la seguente sequenza di eventi:
L'operatore AlloyDB Omni mette offline l'istanza del database principale.
L'operatore AlloyDB Omni promuove la replica di standby a nuova istanza di database principale.
L'operatore AlloyDB Omni converte l'istanza del database principale precedente in una replica di standby.
Eseguire un cambio
Prima di eseguire un failover, assicurati di quanto segue:
- Verifica che sia l'istanza di database primaria che la replica in standby siano in stato integro. Per saperne di più, consulta Gestire e monitorare AlloyDB Omni.
- Verifica che lo stato HA attuale sia
HAReady
. Per saperne di più, vedi Verificare l'alta disponibilità su un cluster di database.
Per eseguire un failover, crea e applica un manifest per una nuova risorsa di failover:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: Switchover
metadata:
name: SWITCHOVER_NAME
spec:
dbclusterRef: DB_CLUSTER_NAME
NewPrimary: STANDBY_REPLICA_NAME
Sostituisci quanto segue:
SWITCHOVER_NAME
: un nome per questa risorsa di failover, ad esempioswitchover-1
.DB_CLUSTER_NAME
: il nome dell'istanza del database principale a cui si applica l'operazione di switchover.STANDBY_REPLICA_NAME
: il nome dell'istanza del database che vuoi promuovere come nuova istanza primaria.Per identificare il nome della replica di standby, esegui questo comando:
posix-terminal kubectl get instances.alloydbomni.internal.dbadmin.goog
Utilizzare la replica di standby come istanza di sola lettura
Per utilizzare una replica di standby come istanza di sola lettura, completa i seguenti passaggi:
Modifica il manifest del cluster di database per impostare il parametro
enableStandbyAsReadReplica
sutrue
.spec: availability: enableStandbyAsReadReplica: true
Applica di nuovo il manifest.
Verifica che l'endpoint di sola lettura sia riportato nel campo
status
dell'oggettoDBCluster
:kubectl describe dbcluster -n NAMESPACE DB_CLUSTER_NAME
La seguente risposta di esempio mostra l'endpoint dell'istanza di sola lettura:
Status: [...] Primary: [...] Endpoints: Name: Read-Write Value: 10.128.0.81:5432 Name: Read-Only Value: 10.128.0.82:5432