In questa pagina viene descritto come recuperare o ripristinare Cassandra in più regioni.
In un deployment multi-regione, Apigee Hybrid viene implementato in più località geografiche in diversi data center. Se una o più regioni non funzionano, ma rimangono regioni in stato integro, puoi utilizzare una regione in stato integro per ripristinare le regioni Cassandra non funzionanti con i dati più recenti.
In caso di errore catastrofico di tutte le regioni ibride, Cassandra può essere ripristinato. È importante notare che, se nel deployment sono presenti più organizzazioni Apigee, Il processo di ripristino ripristina i dati per tutte le organizzazioni. In una configurazione multi-organizzazione, il ripristino di un'organizzazione specifica non è supportato.
Questo argomento descrive entrambi gli approcci per recuperare le regioni non riuscite:
- Recupero delle regioni non riuscite: descrive i passaggi per recuperare le regioni non riuscite in base a una regione sana.
- Ripristina le regioni non riuscite: descrive i passaggi per ripristinare le regioni non riuscite da un backup. Questo approccio è necessario solo se sono interessate tutte le regioni ibride.
Recupera le regioni non riuscite
Per recuperare le regioni non riuscite da una regione funzionante:
- Reindirizza il traffico API dalle regioni interessate alla regione funzionante. Pianifica la capacità in modo da supportare il traffico deviato dalle regioni in cui si sono verificati errori.
- Esegui la dismissione della regione interessata. Per ogni regione interessata, segui i passaggi descritti in Dismissione di un'area geografica ibrida. Attendi il completamento del ritiro prima di procedere al passaggio successivo.
- Ripristina la regione interessata. Per eseguire il ripristino, crea una nuova regione, come descritto in Deployment multiregionale su GKE, GKE On-Prem e AKS.
Ripristino da un backup
Il backup di Cassandra può trovarsi su Cloud Storage o su un server remoto in base alla configurazione. Per ripristinare Cassandra da un backup, segui questi passaggi:
- Apri il file delle sostituzioni per la regione che vuoi ripristinare.
- Imposta
cassandra:hostNetwork
sufalse
. - Applica il file delle sostituzioni:
Helm
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ -f OVERRIDES_FILE
apigeectl
$APIGEECTL_HOME/apigeectl apply -f YOUR_OVERRIDES_FILE.yaml
- Prima di continuare, verifica che
hostNetwork
sia impostato sufalse
:kubectl -n apigee get apigeeds -o=jsonpath='{.items[].spec.components.cassandra.hostNetwork}'
- Elimina l'istanza ibrida dalla regione di cui stai eseguendo il ripristino:
Helm
helm delete DATASTORE_RELEASE_NAME \ --namespace apigee
dove DATASTORE_RELEASE_NAME è il nome della release del datastore in cui hai installato Cassandra nella regione, ad esempio
datastore-region1
.apigeectl
$APIGEECTL_HOME/apigeectl delete -f YOUR_OVERRIDES_FILE.yaml
-
Ripristina la regione che ti interessa da un backup. Per ulteriori informazioni, consulta Ripristinare una regione da un backup.
- Rimuovi i riferimenti alle regioni eliminate e aggiungi i riferimenti alle regioni ripristinate nei metadati
KeySpaces
. - Ottieni il nome del data center Cassandra utilizzando l'opzione
nodetool status
.kubectl exec -n apigee -it apigee-cassandra-default-0 -- bash nodetool -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD status |grep -i Datacenter
dove:
- APIGEE_JMX_USER è il nome utente dell'utente delle operazioni JMX di Cassandra. Utilizzato
per autenticarsi e comunicare con l'interfaccia JMX di Cassandra. Consulta
cassandra:auth:jmx:username
. - APIGEE_JMX_PASSWORD è la password per l'utente delle operazioni JMX di Cassandra.
Consulta
cassandra:auth:jmx:password
.
- APIGEE_JMX_USER è il nome utente dell'utente delle operazioni JMX di Cassandra. Utilizzato
per autenticarsi e comunicare con l'interfaccia JMX di Cassandra. Consulta
- Aggiorna la replica di
KeySpaces
.- Crea un contenitore client e connettiti al cluster Cassandra tramite l'interfaccia CQL.
- Recupera l'elenco degli spazi chiavi utente dall'interfaccia CQL:
cqlsh CASSANDRA_SEED_HOST -u APIGEE_DDL_USER -p APIGEE_DDL_PASSWORD --ssl -e "select keyspace_name from system_schema.keyspaces;"|grep -v system
dove:
- CASSANDRA_SEED_HOST è l'host originale di Cassandra per più regioni. Per la maggior parte delle installazioni con più regioni, utilizza l'indirizzo IP di un host nella prima regione. Consulta:
Configura Apigee
ibrido per più regioni e
cassandra:externalSeedHost
- APIGEE_DDL_USER e APIGEE_DDL_PASSWORD sono il nome utente e la password
dell'amministratore per l'utente Cassandra Data Definition Language (DDL). I valori predefiniti sono "
ddl_user
" e "iloveapis123
".Consulta
cassandra.auth.ddl.password
nel riferimento per le proprietà di configurazione e Opzioni della riga di comando nella documentazione di cqlsh di Apache Cassandra.
- CASSANDRA_SEED_HOST è l'host originale di Cassandra per più regioni. Per la maggior parte delle installazioni con più regioni, utilizza l'indirizzo IP di un host nella prima regione. Consulta:
Configura Apigee
ibrido per più regioni e
- Per ogni spazio delle chiavi, esegui questo comando dall'interfaccia CQL per aggiornare le impostazioni di replica:
ALTER KEYSPACE KEYSPACE_NAME WITH replication = {'class': 'NetworkTopologyStrategy', 'DATACENTER_NAME':3};
dove:
- KEYSPACE_NAME è il nome dello spazio delle chiavi elencato nell'output del passaggio precedente.
- DATACENTER_NAME è il nome del data center Cassandra ottenuto con
l'opzione
nodetool status
nel passaggio 8.