Utilizza ripristino di emergenza (RE) avanzato

In questa pagina viene descritto come utilizzare ripristino di emergenza (RE) avanzato. RE avanzata offre due funzionalità principali:

  • Il failover della replica consente di eseguire il failover dell'istanza principale alla replica di DR immediatamente in caso di guasto regionale.
  • Il cambio ti consente di invertire i ruoli dell'istanza principale e di una replica di DR senza perdita di dati. Puoi utilizzare lo switchover per ripristinare lo stato di deployment originale di un deployment dopo il failover della replica oppure per testare il DR.

Il DR avanzato è supportato solo nelle istanze della versione Cloud SQL Enterprise Plus.

Prima di iniziare

Se prevedi di utilizzare Google Cloud SDK, devi utilizzare la versione 470.0.0 oppure in un secondo momento Comandi gcloud beta. Per verificare la versione Google Cloud SDK, esegui gcloud --version. Per aggiornare Google Cloud SDK, esegui gcloud components update.

Per installare Google Cloud SDK, consulta Installa gcloud CLI.

Specifica una replica RE

Per eseguire RE avanzato, devi prima designare una replica di RE tra regioni.

Requisiti della replica RE

La replica di lettura di RE designata deve soddisfare i seguenti requisiti:

  • Deve essere un'istanza Cloud SQL Enterprise Plus
  • Deve essere la stessa versione maggiore e minore del database dell'istanza principale, che esegue MySQL 8.0.31 o versioni successive
  • Deve trovarsi in una regione separata dall'istanza principale
  • Deve essere una replica di lettura diretta. non può essere una replica a cascata
  • Oltre a utilizzare i valori predefiniti, la replica di DR non può avere configurato nessuno dei seguenti flag:
    • replicate_do_db
    • replicate_ignore_db
    • replicate_do_table
    • replicate_wild_do_table
    • replicate_ignore_table
    • replicate_wild_ignore_table
  • Devi archiviare i log delle transazioni utilizzati per la PITR in Cloud Storage
  • Non può essere una replica esterna

Suggerimenti sulla replica di RE

Questa sezione fornisce suggerimenti per la replica di RE. Le seguenti possono aiutarti a evitare problemi di prestazioni del deployment:

  • Utilizza le stesse dimensioni del disco dell'istanza principale o abilita la crescita automatica.
  • Utilizza una configurazione ad alta disponibilità coerente. Se abiliti l'alta disponibilità sull'istanza principale abilitazione dell'alta disponibilità sulla replica di RE.
  • Utilizza una configurazione della cache dei dati coerente. Se attivi la cache dei dati sull'istanza principale, attivala anche sulla replica di DR.
  • Configura i flag di database appropriati per la replica di DR prima e dopo eventuali operazioni di switchover o failover della replica.

Crea una replica per soddisfare i requisiti della replica di RE

Se l'istanza principale non ha già una replica di lettura tra regioni chesoddisfa i requisiti delle repliche di ripristino di emergenza, creane una.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Trova l'istanza principale.
  3. Nella colonna Azioni, fai clic sul menu Altre azioni.
  4. Seleziona Crea replica di lettura.
  5. Nel campo ID istanza, inserisci un nome per la replica di DR.
  6. Nel campo Versione database, MySQL 8.0 è già selezionato.
  7. Nel campo Versione secondaria, lascia la versione secondaria preselezionata. La replica DR e l'istanza principale devono condividere la stessa versione secondaria del database.
  8. Nella sezione Scegli la disponibilità per regione e zona della pagina, procedi nel seguente modo:
    • Seleziona una regione diversa da quella dell'istanza principale.
    • Facoltativo. Seleziona Più zone per la replica di DR.
    • Facoltativo. Seleziona le zone principali e secondarie per la replica di ripristino di emergenza.
  9. Nella sezione Personalizza l'istanza della pagina, puoi aggiornare le impostazioni della replica di DR. Per ulteriori dettagli su ciascuna impostazione, consulta la pagina Informazioni sulle impostazioni delle istanze.
  10. Per Forme macchina, seleziona lo stesso tipo di macchina dell'istanza principale.
  11. In Flag, configura tutti i flag necessari per il tuo database.
  12. Fai clic su Crea replica.

Cloud SQL crea un backup dell'istanza principale e crea replica. Tornerai alla pagina dell'istanza per l'istanza principale.

gcloud

Per creare una replica che soddisfi i requisiti di una replica di RE, esegui questo comando:

gcloud sql instances create REPLICA_NAME \
   --master-instance-name=PRIMARY_INSTANCE_NAME \
   --region=REPLICA_REGION_NAME \
   --database-version=DATABASE_VERSION \
   --tier=MACHINE_TYPE \
   --availability-type=AVAILABILITY_TYPE
   --edition="ENTERPRISE_PLUS"

Sostituisci le seguenti variabili:

  • REPLICA_NAME: il nome della replica di RE.
  • PRIMARY_INSTANCE_NAME: il nome dell'istanza principale.
  • REPLICA_REGION_NAME: specifica una regione diversa da quella dell'istanza principale.
  • DATABASE_VERSION: specifica la stringa di versione corrispondente alla versione principale e secondaria del database dell'istanza principale, ad esempio MYSQL_8_0_31.

    Le versioni principali e secondarie del database devono essere uguali sia per la replica principale sia per quella di DR.

  • MACHINE_TYPE: specifica lo stesso tipo di macchina dell'istanza principale. Consigliamo che il tipo di macchina corrisponda a quello dell'istanza principale.
  • AVAILABILITY_TYPE: se l'istanza principale è configurata per livello elevato per la disponibilità, ti consigliamo di specificare REGIONAL per abilitare l'alta disponibilità.
  • EDITION: specifica ENTERPRISE_PLUS.

REST v1

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PRIMARY_INSTANCE_NAME: il nome dell'istanza principale.
  • PROJECT_ID: l'ID o il numero del progetto Google Cloud dell'istanza principale e della replica di RE.
  • La stringa di versione DATABASE_VERSION: che corrisponde alla versione principale e secondaria del database dell'istanza principale, ad esempio MYSQL_8_0_31. Le versioni principali e secondarie del database devono essere le stesse sia per la replica principale sia per la replica di DR.
  • REPLICA_NAME: il nome dell'istanza di replica di RE che stai creando.
  • REPLICA_REGION: la regione dell'istanza di replica di RE. La regione della replica deve essere diversa dalla regione dell'istanza principale.
  • MACHINE_TYPE: specifica lo stesso tipo di macchina dell'istanza principale. Ti consigliamo di selezionare lo stesso tipo di macchina dell'istanza principale.
  • AVAILABILITY_TYPE: se l'istanza principale è configurata per l'alta disponibilità, ti consigliamo di specificare REGIONAL per attivare l'alta disponibilità.

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

Corpo JSON della richiesta:

{
  "masterInstanceName": "PRIMARY_INSTANCE_NAME",
  "project": "PROJECT_ID",
  "databaseVersion": "DATABASE_VERSION",
  "name": "REPLICA_NAME",
  "region": "REPLICA_REGION",
  "settings":
  {
    "tier": "MACHINE_TYPE",
    "availabilityType": "AVAILABILITY_TYPE",
    "settingsVersion": 0,
    "replicationType": "ASYNCHRONOUS",
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PRIMARY_INSTANCE_NAME: il nome dell'istanza principale.
  • PROJECT_ID: l'ID o il numero del progetto Google Cloud dell'istanza principale e della replica di RE.
  • La stringa di versione DATABASE_VERSION: che corrisponde alla versione principale e secondaria del database dell'istanza principale, ad esempio MYSQL_8_0_31. Le versioni principali e secondarie del database devono essere le stesse sia per la replica principale sia per la replica di DR.
  • REPLICA_NAME: il nome dell'istanza di replica RE che stai creando.
  • REPLICA_REGION: la regione dell'istanza di replica di RE. La regione della replica deve essere diversa dalla regione dell'istanza principale.
  • MACHINE_TYPE: specifica lo stesso tipo di macchina dell'istanza principale. Ti consigliamo di scegliere una dimensione del disco corrispondente a quella dell'istanza principale.
  • AVAILABILITY_TYPE: se l'istanza principale è configurata per l'alta disponibilità, ti consigliamo di specificare REGIONAL per attivare l'alta disponibilità.

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances

Corpo JSON della richiesta:

{
  "masterInstanceName": "PRIMARY_INSTANCE_NAME",
  "project": "PROJECT_ID",
  "databaseVersion": "DATABASE_VERSION",
  "name": "REPLICA_NAME",
  "region": "REPLICA_REGION",
  "settings":
  {
    "tier": "MACHINE_TYPE",
    "availabilityType": "AVAILABILITY_TYPE",
    "settingsVersion": 0,
    "replicationType": "ASYNCHRONOUS",
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Designa la replica RE per l'istanza principale

Le procedure riportate di seguito descrivono come designare una delle repliche tra regioni di un'istanza principale come replica di DR per lo switchover o il failover della replica.

Console

Per designare una replica DR per un'istanza principale:

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Trova e seleziona l'istanza principale. Viene visualizzata la pagina Panoramica dell'istanza principale.
  3. Nel menu di navigazione, fai clic su Repliche.
  4. Nell'elenco delle repliche di lettura, trova la replica di lettura tra regioni che vuoi designare come replica di DR.
  5. Per la replica, fai clic sul pulsante more_vert Azioni e seleziona Definisci come replica RE.
  6. Fai clic su Conferma.

gcloud

Per designare una replica DR per un'istanza principale, utilizza il seguente comando:

gcloud beta sql instances patch PRIMARY_INSTANCE_NAME \
   --failover-dr-replica-name=REPLICA_NAME

Sostituisci le seguenti variabili:

  • PRIMARY_INSTANCE_NAME: il nome dell'istanza principale.
  • REPLICA_NAME: il nome della replica RE.

REST v1

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PRIMARY_INSTANCE_NAME: il nome dell'istanza principale.
  • REPLICA_NAME: il nome della replica RE.

Metodo HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME

Corpo JSON della richiesta:

{
  "replicationCluster": {
     "failoverDrReplicaName": "REPLICA_NAME"
   }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PRIMARY_INSTANCE_NAME: il nome dell'istanza principale.
  • REPLICA_NAME: il nome della replica RE.

Metodo HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME

Corpo JSON della richiesta:

{
  "replicationCluster": {
     "failoverDrReplicaName": "REPLICA_NAME"
   }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Modificare la designazione della replica RE

Se la replica soddisfa i requisiti, puoi designare come replica di RE. La replica RE precedente perde la replica RE designazione.

Console

Per modificare la replica di RE per un'istanza principale:

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Trova e seleziona l'istanza principale. Viene visualizzata la pagina Panoramica dell'istanza principale.
  3. Nel menu di navigazione, fai clic su Repliche.
  4. Nell'elenco delle repliche di lettura, individua la replica di lettura tra regioni che vuoi designare come nuova replica di DR.
  5. Per la replica, fai clic sul pulsante more_vert Azioni e seleziona Designa come replica di DR.

gcloud

Per modificare la replica di RE, esegui di nuovo il comando designato, e specificare una replica di RE diversa.

REST

Per modificare la replica di DR, effettua di nuovo la richiesta dell'API designata e specifica una replica di DR diversa.

Visualizza la designazione di replica RE

Puoi verificare quale replica di RE è assegnata all'istanza principale utilizzando il metodo gcloud CLI o l'API Cloud SQL Admin. Puoi anche controllare se una replica è designata come replica RE.

Per scoprire quale replica di RE è designata per un'istanza principale, utilizza la procedura seguente.

Console

Per scoprire quale replica di lettura è la replica designata per RE per un'istanza procedi nel seguente modo:

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Trova e seleziona l'istanza principale. Nella pagina Panoramica relativa ai e l'istanza principale.
  3. Nel menu di navigazione, fai clic su Repliche.
  4. Nell'elenco delle repliche di lettura, verifica che MySQL disaster recovery replica venga visualizzato nella colonna Tipo per la replica DR designata.

gcloud

Per scoprire quale istanza è la replica DR designata di un'istanza principale, utilizza il seguente comando:

gcloud beta sql instances describe PRIMARY_INSTANCE_NAME

Sostituisci la seguente variabile:

  • PRIMARY_INSTANCE_NAME: il nome dell'istanza principale

L'output di questo comando contiene il campo failoverDrReplica che identifica la replica DR designata.

REST v1

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID o il numero del progetto Google Cloud che contiene l'istanza.
  • PRIMARY_INSTANCE_NAME: il nome dell'istanza principale.

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID o il numero del progetto Google Cloud che contiene l'istanza.
  • PRIMARY_INSTANCE_NAME: il nome dell'istanza principale.

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Per verificare se una replica è di RE, utilizza una delle seguenti procedure.

Console

Per verificare se un'istanza replica è una replica di DR:

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Individua l'istanza replica.
  3. Verifica che MySQL disaster recovery replica venga visualizzato nella colonna Tipo per la replica DR designata.

gcloud

Per verificare se un'istanza replica è una replica di DR, esegui il seguente comando:

gcloud beta sql instances describe REPLICA_NAME

Sostituisci la seguente variabile:

  • REPLICA_NAME: il nome della replica di lettura da controllare

Se la replica è una replica DR, l'output del comando contiene il campo drReplica=true.

REST v1

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID o il numero del progetto Google Cloud che contiene l'istanza.
  • REPLICA_NAME: il nome della replica.

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_NAME

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID o il numero del progetto Google Cloud che contiene l'istanza.
  • REPLICA_NAME: il nome della replica.

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/REPLICA_NAME

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Rimuovi la replica RE

Puoi cancellare la designazione della replica RE da un'istanza principale. Tuttavia, se non è assegnata alcuna replica di RE a un'istanza principale, non puoi eseguire lo switchover o il failover della replica.

Console

Per rimuovere una replica designata di RE da un'istanza principale:

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Trova e seleziona l'istanza principale. Viene visualizzata la pagina Panoramica dell'istanza principale.
  3. Nel menu di navigazione, fai clic su Repliche.
  4. Nell'elenco delle repliche di lettura, trova la replica di lettura tra regioni da rimuovere.
  5. Per la replica, fai clic sul pulsante more_vert Azioni e seleziona Rimuovi come replica RE.
  6. Fai clic su Conferma.

gcloud

Per rimuovere la designazione di replica RE, esegui questo comando sull'istanza principale istanza:

gcloud beta sql instances patch PRIMARY_INSTANCE_NAME \
  --clear-failover-dr-replica-name

Sostituisci la seguente variabile:

  • PRIMARY_INSTANCE_NAME: il nome dell'istanza principale da cui vuoi rimuovere la replica designata di RE

REST v1

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID o il numero del progetto Google Cloud del principale e la replica di RE.
  • PRIMARY_INSTANCE_NAME: il nome dell'istanza principale.
  • Imposta una stringa vuota per il campo failoverDrReplicaName.

Metodo HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME

Corpo JSON della richiesta:

{
  "replicationCluster": {
     "failoverDrReplicaName": ""
   }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID o il numero del progetto Google Cloud del principale e la replica di RE.
  • PRIMARY_INSTANCE_NAME: il nome dell'istanza principale.
  • Imposta una stringa vuota per il campo failoverDrReplicaName.

Metodo HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME

Corpo JSON della richiesta:

{
  "replicationCluster": {
     "failoverDrReplicaName": ""
   }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Esegui il cambio

Dopo aver designato una replica di RE, puoi eseguire l'operazione di cambio. Tuttavia, come best practice, evita di eseguire l'operazione di passaggio nelle seguenti circostanze:

  • L'istanza principale è in uso attivo.
  • Sono in corso operazioni di amministrazione, come il backup automatico o l'attivazione o la disattivazione dell'alta disponibilità (HA).

Per evitare un timeout, valuta la possibilità di eseguire il passaggio quando il volume delle transazioni è basso.

Al termine del cambio, l'operazione esegue un backup della nuova istanza principale (la precedente replica di RE) non appena la nuova istanza principale viene promosso. Al termine del backup, il recupero point-in-time (PITR) viene attivato completamente sulla nuova istanza principale. Il completamento del backup può richiedere da 5 a 15 minuti, a seconda delle dimensioni del disco. La copertura PITR inizia solo al termine di questo backup. Per ulteriori informazioni sulle considerazioni relative all'utilizzo del PITR con il DR avanzato, consulta Utilizzare il PITR con il DR avanzato.

Terminata l'operazione di commutazione, noterai che la direzione la replica è invertita.

Prima di iniziare

Prima di eseguire il cambio, segui questi passaggi:

  • Specificare una replica RE. Puoi eseguire un cambio solo tra l'istanza principale e la replica di RE designata.
  • Verifica che l'istanza principale e la replica di RE siano online.
  • Esegui un backup on demand dell'istanza principale. Questo backup è un nel caso in cui sia necessario ripristinare gli account in seguito a errori imprevisti.

Esegui l'operazione di switchover

Console

Per eseguire l'operazione di passaggio:

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Trova la replica RE designata dell'istanza principale.
  3. Fai clic sull'istanza della replica di RE. Viene visualizzata la pagina Panoramica della replica di DR.
  4. Fai clic sul pulsante Cambia.
  5. Nella sezione Esegui il cambio tra la replica principale e quella di RE inserisci il nome dell'istanza principale nel campo ID istanza.
  6. Fai clic su Cambia.

gcloud

Per eseguire l'operazione di passaggio, esegui il seguente comando:

gcloud beta sql instances switchover REPLICA_NAME
   [--db-timeout=TIMEOUT_DURATION ]

Sostituisci le seguenti variabili:

  • REPLICA_NAME: il nome della replica di RE designata con cui vuoi che l'istanza principale cambi ruolo.
  • TIMEOUT_DURATION: facoltativo. Il periodo di timeout per consentire il completamento delle operazioni di database nell'istanza.
  • Se non specifichi questo parametro, l'operazione di switchover include un timeout di 10 minuti.

    Puoi aumentare il valore di questo timeout specificando il parametro --db-timeout. Sostituisci TIMEOUT_DURATION con un periodo di tempo di durata massima di 24 ore, inclusa una notazione iniziale per il formato. Ad esempio, per 30 secondi, specifica 30s. Per 24 ore, specifica 24h. Puoi anche specificare unità frazionarie del periodo di tempo utilizzando decimali fino a 9 cifre. Ad esempio, per 30,5 minuti, specificare 30.5m.

    Se non hai operazioni in attesa, puoi diminuire il valore di questo timeout.

REST v1

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID o il numero del progetto Google Cloud dell'istanza principale e della replica di RE.
  • REPLICA_NAME: il nome della replica di RE.

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_NAME/switchover

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID o il numero del progetto Google Cloud dell'istanza principale e della replica di RE.
  • REPLICA_NAME: il nome della replica di RE.

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_NAME/switchover

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Esegui RE richiamando un failover della replica

In caso di errore a livello di regione o di emergenza, puoi eseguire RE di richiamare un'operazione di failover della replica sulla replica di RE designata. Per eseguire un failover della replica, promuovi la replica RE designata. A differenza del cambio, la promozione della replica di RE è nell'immediato.

Poiché la replica di RE assume immediatamente il ruolo di istanza principale, è possibile che la replica non abbia tutti i dati a causa del ritardo della replica. Per questo motivo, un failover della replica può comportare la perdita di dati.

Nell'ambito del processo di promozione, il failover della replica esegue un backup del nuovo principale (la precedente replica di RE) subito dopo che la replica di RE diventa nuova istanza principale. Al termine del backup, il recupero point-in-time (PITR) è completamente abilitato sulla nuova istanza principale. Il completamento del backup può richiedere da 5 a 15 minuti, a seconda delle dimensioni del disco della nuova (e della vecchia) istanza principale. Durante questo periodo di backup, il PITR non è disponibile.

Quando la vecchia istanza principale torna online, il processo di failover della replica esegue un backup. Una volta eseguito il backup, la vecchia istanza principale viene viene ricreata come replica di lettura della nuova istanza principale. In questo processo, la vecchia istanza principale perde i log delle transazioni PITR precedenti che non sono ancora stati salvati in Cloud Storage. Pertanto, il failover della replica non garantisce che tutti i log delle transazioni utilizzati per il PITR sulla vecchia istanza principale vengano conservati.

Per ulteriori informazioni sulle considerazioni sull'uso del PITR con RE avanzata, vedi Usa il PITR con RE avanzato.

Importante: dopo aver richiamato l'operazione di failover della replica, puntare le applicazioni in modo che usi l'indirizzo IP della nuova istanza principale.

Prima di iniziare

Prima di eseguire il failover della replica, segui questi passaggi:

  • Se non lo hai ancora fatto, designa una replica di DR. Puoi eseguire un failover della replica solo tra l'istanza principale e la replica di DR designata.
  • Assicurati che la replica di DR sia online e funzionante.

Esegui l'operazione di failover della replica

Console

Per eseguire l'operazione di failover della replica:

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Trova la replica di RE designata dell'istanza principale.
  3. Fai clic sull'istanza della replica RE. Nella pagina Panoramica relativa ai viene visualizzata la replica RE.
  4. Fai clic sul pulsante Failover replica.
  5. Nella pagina Esegui il failover della replica tra la l'istanza principale e la replica di DR, inserisci il nome dell'istanza principale nel campo ID istanza per confermare di voler procedere con l'operazione.
  6. Per avviare il failover della replica, fai clic su Failover della replica.

gcloud

Per richiamare un failover della replica nella replica di RE, utilizza il seguente comando:

gcloud beta sql instances promote-replica \
   REPLICA_NAME --failover

Sostituisci la seguente variabile:

  • REPLICA_NAME: il nome della replica di RE

REST v1

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID o il numero del progetto Google Cloud dell'istanza principale e della replica di RE.
  • REPLICA_NAME: il nome della replica di RE.
  • ENABLE_REPLICA_FAILOVER: imposta su true per utilizzare il failover della replica. Se imposti false, l'API utilizza il normale valore promoteReplica senza failover della replica.

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_NAME/promoteReplica?failover=ENABLE_REPLICA_FAILOVER

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID o il numero del progetto Google Cloud dell'istanza principale e della replica di RE.
  • REPLICA_NAME: il nome della replica di RE.
  • ENABLE_REPLICA_FAILOVER: imposta su true per utilizzare il failover della replica. Se imposti false, l'API utilizza il normale valore promoteReplica senza failover della replica.

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/REPLICA_NAME/promoteReplica?failover=ENABLE_REPLICA_FAILOVER

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Controllare lo stato del failover di una replica

Il failover della replica avviene in due fasi. La prima fase è la promozione della replica di RE. La seconda fase è la ricreazione la vecchia istanza principale come replica di lettura.

Per controllare lo stato del failover della replica, controlla lo stato di ogni durante la fase di sviluppo.

  1. Controlla lo stato della prima fase.

    Console

    Per verificare se la replica di DR è stata promossa a un'istanza autonoma:

    1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

      Vai a Istanze Cloud SQL

    2. Trova il nome della replica di RE che hai promosso.
    3. Verifica che MySQL 8.0 appare in Colonna Tipo per la nuova istanza principale.

    gcloud

    Per controllare lo stato, esegui il seguente comando:

    gcloud sql instances describe DR_REPLICA_NAME

    Sostituisci la seguente variabile:

    • DR_REPLICA_NAME: il nome della replica RE promossa

    Nell'output, verifica che venga visualizzato il seguente campo e è diventata un'istanza Cloud SQL principale autonoma:

    instanceType: CLOUD_SQL_INSTANCE
    

  2. Per verificare il completamento della seconda fase, controlla il messaggio RECONFIGURE_OLD_PRIMARY nel log delle operazioni dell'istanza.

    L'aspetto di questo messaggio dipende da quando il vecchio principale restituisce online, il che può richiedere minuti giorni in caso di disastro.

    Per saperne di più su come controllare i log delle operazioni su un'istanza, consulta Visualizzare i log delle istanze.

Utilizzare il recupero point-in-time con il ripristino dei dati di emergenza avanzato

Con il cambio e il failover della replica, non appena la replica di RE viene promosso a istanza principale, vengono apportate le seguenti modifiche per supportare il backup e PITR:

  • La configurazione del backup, inclusa la pianificazione dei backup automatici, viene copiata dalla vecchia istanza principale alla nuova istanza principale.
  • Se è disattivato, il flag di configurazione del log bin viene attivato per abilitare la PITR.
  • Viene utilizzato un nuovo backup per supportare PITR sulla nuova istanza principale.
  • Il criterio di conservazione del log delle transazioni è stato copiato dalla precedente istanza principale alla nuova istanza principale.

Sia per la configurazione del backup sia per i criteri di conservazione dei log delle transazioni, consigliamo di verificare che le impostazioni ereditate dalla vecchia istanza principale siano corrette per la nuova istanza principale.

Inizio della copertura PITR

Al termine dell'operazione di switchover, Cloud SQL pianifica i backup automatici e esegue il primo backup della nuova istanza principale. Se vuoi che la copertura PITR inizi prima del previsto, ti consigliamo di verificare che il primo backup sia riuscito. L'istanza principale appena promossa ha la copertura PITR solo dopo il primo backup automatico è stato completato correttamente.

Per ulteriori informazioni su come visualizzare i backup disponibili per un'istanza, consulta Visualizzare un elenco di backup.

Copertura PITR per le istanze durante il cambio e il failover della replica

Quando un'istanza partecipa a un'operazione di cambio o failover della replica, l'istanza trascorre del tempo come replica di lettura. Il PITR e il ripristino di un backup sono supportati durante il periodo di tempo in cui l'istanza viene utilizzata come replica di lettura. Se vuoi eseguire il PITR in un momento precedente all'evento di cambio (quando l'istanza era primaria), puoi inviare il comando clone avere come target l'ora in cui l'istanza è stata un'istanza principale. Non puoi richiedere il PITR per un momento in cui l'istanza era una replica di lettura.

Se non riesci a eseguire il PITR perché l'istanza principale era una replica di lettura al momento in questione, devi tentare la richiesta PITR sull'istanza che era l'istanza principale attiva al momento in questione.

Analogamente, puoi ripristinare un backup eseguito quando la replica era un'istanza principale. Poiché l'istanza è una replica, il comando di ripristino deve avere come target un'altra istanza autonoma e non può essere ripristinato sulla replica stessa.

Per determinare quale istanza usare per la richiesta PITR, utilizza le operazioni dall'elenco di lettura. L'elenco delle operazioni per un'istanza può aiutarti a determinare quando un'istanza è stata sottoposta a operazioni di switchover o failover della replica.

Stato di split-brain durante il failover della replica

È possibile che si verifichi la situazione di split-brain quando l'istanza principale continua ad accettare le scritture mentre una replica viene promossa utilizzando il failover della replica. Dopo la promozione della replica, quando la vecchia istanza principale è di nuovo disponibile, viene ricostruita come replica dell'istanza promossa e viene eseguito un backup finale. Questo il backup può essere usato per recuperare dati di tipo split-brain che non sono stati scritti replica promossa.

Eliminazione di backup e log delle transazioni sulle repliche

Se un'istanza principale che è stata abilitata con PITR e i backup diventa una risorsa automaticamente la replica, l'ultimo backup e criterio di conservazione PITR del periodo mentre l'istanza principale viene conservata e applicata durante il periodo come replica. Anche se la nuova istanza principale non esegue i backup, i vecchi backup e i log delle transazioni utilizzati per il PITR vengono eliminati nella replica di lettura in base all'ultimo criterio configurato.

Ad esempio, se l'istanza è configurata per avere backup automatici giornalieri e conservare 7 backup con 7 giorni di log PITR, quando questa istanza diventa una replica di lettura, tutti gli elementi precedenti a 7 giorni vengono eliminati una volta al giorno.

Se devi eliminare i backup prima, puoi rimuoverli manualmente. Per ulteriori informazioni, vedi Eliminare un backup.

Limitazioni

  • La RE avanzata non è supportata per le istanze Cloud SQL che utilizzano Private Service Connect.
  • Non puoi specificare una replica di lettura per la versione Cloud SQL Enterprise Plus istanza come replica RE se l'istanza principale archivia i propri log delle transazioni per il recupero point-in-time (PITR) su disco. Per verificare dove si trova un'istanza archivia i propri log per PITR, Controlla la posizione di archiviazione dei log delle transazioni utilizzati per il PITR.
  • Non puoi designare una replica esterna come replica di RE.

Risoluzione dei problemi

Problema Risoluzione dei problemi
L'operazione di switchover non è riuscita.
  • Assicurati che l'istanza soddisfi tutti i requisiti di replica per RE dichiarati.
  • Controlla il volume delle transazioni nel database. Lo switchover protegge i log binari dell'istanza principale in Cloud Storage prima di eseguire lo switchover. Se il volume delle transazioni è elevato, l'operazione potrebbe scadere. Valuta la possibilità di riprovare l'operazione quando il carico delle transazioni è più basso.
Il cambio non è riuscito e l'istanza principale è bloccata modalità di sola lettura. Esegui un riavvio del database per ripristinare l'istanza principale modalità di scrittura.
L'operazione di cambio è stata completata, ma la console Google Cloud non mostra nuovi ruoli invertiti per le istanze. Aggiorna il browser per visualizzare la topologia aggiornata.
L'operazione di failover della replica non è riuscita.
  • Assicurati che sia designata una replica di RE per l'istanza principale ed è online.
  • Se il failover alla replica di DR non è riuscito, esegui la promozione a una replica di lettura normale (non DR).
Non è possibile capire se la replica non viene eseguita Connettiti alla replica e digita:
show slave status;
  • Se la replica è in corso, la prima colonna "Slave_IO_State" mostra "Waiting for master to send event" e il campo "Last_IO_Error" è vuoto.
  • Se la replica non avviene, la prima colonna "Slave_IO_State" mostra "Connecting to master". e il campo "Last_IO_Error" mostra un errore simile a "error connecting to master 'cloudsqlreplica@x.x.x.x:3306".

Puoi anche visualizzare lo stato della replica delle repliche nel Dashboard di monitoraggio di Cloud SQL. Per ulteriori informazioni, consulta Monitora le istanze Cloud SQL.

Hai ricevuto il seguente messaggio di errore:

"Instance was converted into a replica between the target PITR time and the last available base backup. PITR logs are not available for the period instance was a replica. Please clone from the instance that was primary at time %s"

Non puoi eseguire il recupero point-in-time per un periodo di tempo in cui un'istanza è stata sottoposta a un cambio a una replica. I log PITR non sono disponibili per il momento in cui l'istanza era una replica.

  • Esamina l'elenco delle operazioni per l'istanza per determinare se l'istanza era una replica in quel momento
  • Utilizza l'elenco delle operazioni per determinare quale istanza era principale in quel momento.
  • Clona l'istanza per eseguire il PITR.

Hai ricevuto il seguente messaggio di errore:

"You can only designate a disaster recovery (DR) replica for primary instances that are storing their PITR logs in Cloud Storage. PITR logs of the instance %s are not stored in Cloud Storage"

L'istanza principale non ha cambiato la posizione di archiviazione dell'istanza dei log delle transazioni in Cloud Storage. Puoi riprovare una volta modificata la posizione di archiviazione per i log delle transazioni, oppure puoi provare a designare una replica di RE per un'istanza principale diversa.

Per ulteriori informazioni sullo spostamento della posizione di archiviazione log delle transazioni utilizzati per il PITR, consulta Utilizzare recupero point-in-time (PITR).

Hai ricevuto il seguente messaggio di errore:

"The specified failover dr replica name REPLICA_NAME must be one of the replicas of the primary instance INSTANCE_NAME."

Per ulteriori informazioni su come designare una replica di RE e la sintassi del comando corretta, vedi Specifica la replica di RE per l'istanza principale.

Passaggi successivi