Informazioni sul ripristino di emergenza (RE) in Cloud SQL

Questa pagina illustra il ripristino di emergenza in Cloud SQL.

Panoramica

In Google Cloud, il ripristino di emergenza (RE) dei database consiste nel fornire la continuità dell'elaborazione, in particolare quando una regione si arresta o diventa non disponibile. Cloud SQL è un servizio regionale (quando Cloud SQL è configurato per l'alta disponibilità (HA). Pertanto, se la regione Google Cloud che ospita un database Cloud SQL diventa non disponibile, anche il database Cloud SQL diventa non disponibile.

Per continuare l'elaborazione, devi rendere il database disponibile in una regione secondaria il prima possibile. Il piano di RE richiede la configurazione di un account tra regioni di lettura in Cloud SQL. Un failover basato su esportazione/importazione o backup/ripristino, ma questo approccio richiede più tempo, in particolare per database di grandi dimensioni.

I seguenti scenari aziendali sono esempi che richiedono una configurazione di failover tra regioni:

  • L'accordo sul livello del servizio dell'applicazione aziendale è superiore all'accordo sul livello del servizio Cloud SQL regionale (disponibilità del 99,99% a seconda della versione di Cloud SQL). Eseguendo il failover in un'altra regione, puoi attenuare un'interruzione.
  • Tutti i livelli dell'applicazione aziendale sono già multiregionali e possono continuare l'elaborazione in caso di interruzione del servizio in una regione. La configurazione del failover tra regioni garantisce la disponibilità continua di un database.
  • Il Recovery Time Objective (RTO) e il Recovery Point Objective richiesti (RPO) sono espresse in minuti anziché in ore. Il failover su un'altra regione è più veloce rispetto alla nuova creazione di un database.

In generale, il processo di RE ha due varianti:

  • Esegui il failover di un database in una regione secondaria. Una volta che il database è pronto e utilizzato da un'applicazione, diventa il nuovo database principale e rimane tale.
  • Un database esegue il failover su una regione secondaria, ma utilizza di nuovo principale dopo che quest'ultima è stata recuperata dall'errore.

Questa panoramica del ripristino di emergenza del database Google Cloud SQL descrive la seconda variante, ovvero quando un database con errori viene recuperato e passa alla regione principale. Questa variante del processo di DR è particolarmente pertinente per i database che devono essere eseguiti nella regione principale a causa della latenza della rete o perché alcune risorse sono disponibili solo nella regione principale. Con questa variante, il database viene eseguito nella regione secondaria solo per la durata dell'interruzione nella regione principale.

Architettura di ripristino di emergenza

Il seguente diagramma mostra l'architettura minima che supporta la RE del database per un'istanza Cloud SQL ad alta disponibilità:

Le istanze principale e in standby si trovano in una regione e la replica di lettura si trova in una seconda regione.

L'architettura funziona come segue:

  • Due istanze Cloud SQL (un'istanza principale e un'istanza di standby) si trovano in due zone distinte all'interno di un'unica regione (la regione principale). Le istanze vengono sincronizzate utilizzando i dischi permanenti regionali.
  • Un'istanza di Cloud SQL (la replica di lettura tra regioni) si trova in una seconda regione (la regione secondaria). Per RE, la risposta tra regioni la replica di lettura è configurata in modo da sincronizzare (utilizzando la replica asincrona) con l'istanza principale utilizzando una configurazione di replica di lettura.

Le istanze principali e in standby condividono lo stesso disco regionale, quindi sono identici.

Poiché questa configurazione utilizza la replica asincrona, è possibile che la replica di lettura tra regioni rimanga indietro rispetto all'istanza principale. Di conseguenza, quando un failover l'RPO della replica di lettura tra regioni probabilmente è diverso da zero.

Procedura di ripristino di emergenza (DR)

Il processo di ripristino di emergenza (DR) inizia quando la regione principale diventa disponibile. Per riprendere l'elaborazione in una regione secondaria, attivi un failover dell'istanza principale promuovendo una replica di lettura tra regioni. Il processo di RE prescribe i passaggi operativi che devono essere eseguiti, manualmente o automaticamente, per mitigare l'errore regionale e stabilire un'istanza principale in esecuzione in una regione secondaria.

Il seguente diagramma mostra la procedura di DR:

Quando la regione 1 non è più disponibile, la replica di lettura originale viene promossa a principale.

Il processo di RE prevede i seguenti passaggi:

  1. La regione principale (R1), in cui è in esecuzione l'istanza principale, diventa non disponibile.
  2. Il team operativo riconosce e riconosce formalmente il disastro e decide se è necessario un failover.
  3. Se è necessario un failover, puoi promuovere la replica di lettura tra regioni la regione secondaria (R2) come nuova istanza principale.
  4. Le connessioni client sono riconfigurate per riprendere l'elaborazione sul nuovo principale e accedere all'istanza principale in R2.

Questa procedura iniziale consente di stabilire di nuovo un database principale funzionante. Tuttavia, non stabilisce un'architettura di RE completa, in cui la nuova istanza principale ha un'istanza in standby e una replica di lettura tra regioni.

Una procedura di DR completa garantisce che la singola istanza, la nuova principale, sia attivata per l'HA e abbia una replica di lettura tra regioni. Un processo di RE completo fornisce un elemento di riserva al deployment originale nella regione principale originale.

Esecuzione del failover in una regione secondaria

Un processo di DR completo estende la procedura di DR di base aggiungendo passaggi per stabilire un'architettura di DR completa dopo il failover. Il seguente diagramma mostra un completa dell'architettura RE del database dopo il failover:

I client iniziano ad accedere alla nuova istanza principale e viene configurata una replica di lettura
in una terza regione.

La procedura completa di DR del database è costituita dai seguenti passaggi:

  1. La regione principale (R1), che esegue il database principale, diventa non disponibile.
  2. Il team operativo riconosce e conferma formalmente la catastrofe e decide se è necessario un failover.
  3. Se è necessario un failover, puoi promuovere la replica di lettura tra regioni in la regione secondaria (R2) come nuova istanza principale.
  4. Le connessioni client sono riconfigurate in modo da consentire l'accesso e l'elaborazione sul nuovo principale (R2).
  5. In R2 viene creata e avviata una nuova istanza in standby e aggiunta all'istanza principale. L'istanza di standby si trova in una zona diversa dall'istanza principale. L'istanza principale è ora ad alta disponibilità perché è stata creata un'istanza in standby.
  6. In una terza regione (R3), viene creata e collegata all'istanza principale una nuova replica di lettura tra regioni. A questo punto, viene ricreata e operativa un'architettura completa di ripristino di emergenza.

Se la regione principale originale (R1) diventa disponibile prima del passaggio 6 implementata, la replica di lettura tra regioni può essere posizionata nella regione R1, rispetto alla regione R3. In questo caso, il codice di riserva regione (R1) è meno complessa e richiede meno passaggi.

Evitare lo stato di "split-cervello"

Un errore nella regione principale (R1) non significa che l'istanza principale originale e la relativa istanza di standby vengano arrestate, rimosse o rese inaccessibili automaticamente quando R1 diventa di nuovo disponibile. Se R1 diventa disponibile, i client potrebbero leggere e scrivere dati (anche per errore) nell'istanza principale originale. In questo caso, può verificarsi una situazione di split-brain, in cui alcuni client accedono a dati obsoleti nel vecchio database principale e altri accedono a dati aggiornati nel nuovo database principale, causando problemi nella tua attività.

Per evitare una situazione di sdoppio, devi assicurarti che i clienti non possano più accedere all'istanza principale originale quando R1 diventa disponibile. L'ideale è dovrebbe rendere inaccessibile l'istanza principale prima che i clienti inizino a utilizzare la nuova principale, l'istanza principale originale viene eliminata subito dopo averla creata inaccessibili.

Definizione di un backup iniziale dopo il failover

Quando promuovi la replica di lettura tra regioni come nuova principale in un sistema di failover, le transazioni nella nuova principale potrebbero non essere completamente sincronizzate con le transazioni della principale originale. Pertanto, tali transazioni vengono non è disponibile nella nuova istanza.

Come best practice, ti consigliamo di eseguire immediatamente il backup della nuova all'inizio del failover e prima che i client accedano al database. Questo backup rappresenta uno stato coerente e noto al momento del failover. Questi backup possono essere importanti per scopi normativi o per ripristinare uno stato conosciuto se i client riscontrano problemi di accesso al nuovo principale.

Visualizzazione della regione principale originale

Come descritto in precedenza, questo documento illustra i passaggi per eseguire il fallback alla regione originale (R1). Esistono due versioni diverse e il processo di sviluppo.

  • Se hai creato la nuova replica di lettura tra regioni in una regione terziaria (R3), devi creare un'altra (seconda) replica di lettura tra regioni regione principale (R1).
  • Se hai creato la nuova replica di lettura tra regioni nella regione principale (R1), non devi creare un'altra replica di lettura tra regioni in R1.

Una volta esistente la replica di lettura tra regioni in R1, può ricorrere a R1. Poiché questo piano di riserva viene attivato manualmente e non si basa su un'interruzione, puoi scegliere un giorno e un'ora appropriati per questa attività di manutenzione.

Pertanto, per ottenere un DR completo con una replica di lettura principale, di riserva e tra regioni, sono necessari due failover. Il primo failover viene attivato (un vero failover) e il secondo failover ripristina la configurazione iniziale un deployment (un fallback).

Il fallback alla regione principale originale (R1) prevede i seguenti passaggi:

  1. Promuovi la replica tra regioni appena creata nella regione principale originale (R1).
  2. Se l'istanza promossa non è stata creata originariamente come replica HA, attiva l'HA sull'istanza per proteggerla dai guasti zonali.
  3. Riconfigura le applicazioni in modo che si connettano alla nuova istanza principale.
  4. Crea una replica tra regioni per la nuova istanza principale nella regione di DR (R2).
  5. (Facoltativo) Per evitare di eseguire più istanze principali indipendenti, ripulisci l'istanza principale nella regione di ripristino di emergenza (R2).

Passaggi successivi

  • Esplora architetture di riferimento, diagrammi, tutorial e best practice su Google Cloud. Consulta il nostro Cloud Architecture Center.