Utilizza il ripristino di emergenza avanzato (RE)

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

  • Il failover della replica consente di eseguire immediatamente il failover dell'istanza principale nella replica di RE in caso di errore a livello di regione.
  • Il commutazione consente di invertire i ruoli dell'istanza principale e della replica di RE designata senza perdita di dati. Puoi utilizzare il passaggio per ripristinare lo stato di deployment originale di un deployment dopo il failover della replica oppure puoi utilizzare lo switch per testare il RE.

Il RE avanzato è supportato solo sulle istanze della versione Cloud SQL Enterprise Plus.

Specifica una replica di RE

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

Prima di iniziare

Se prevedi di utilizzare Google Cloud SDK, devi utilizzare la versione 470.0.0 o successive e i comandi gcloud beta. Per controllare la versione di Google Cloud SDK, esegui gcloud --version. Per aggiornare Google Cloud SDK, esegui gcloud components update.

Per installare Google Cloud SDK, consulta Installare gcloud CLI.

Requisiti della replica di RE

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

  • Deve essere un'istanza della versione Cloud SQL Enterprise Plus
  • Deve essere la stessa versione principale e secondaria del database dell'istanza principale, con 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 RE non può avere nessuno dei seguenti flag configurati:
    • replicate_do_db
    • replicate_ignore_db
    • replicate_do_table
    • replicate_wild_do_table
    • replicate_ignore_table
    • replicate_wild_ignore_table
  • Deve archiviare i log delle transazioni utilizzati per il PITR in Cloud Storage
  • Non può essere una replica esterna

Suggerimenti per la replica di RE

Questa sezione fornisce suggerimenti per la replica di RE. I seguenti suggerimenti possono aiutarti a evitare problemi di prestazioni nel 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, abilita l'alta disponibilità anche nella replica di RE.
  • Utilizza una configurazione coerente della cache dei dati. Se abiliti la cache dei dati sull'istanza principale, abilita la cache dei dati anche nella replica di RE.
  • Configura eventuali flag di database appropriati per la replica di RE prima e dopo qualsiasi operazione di failover o di commutazione della replica.

Crea una replica per soddisfare i requisiti di replica di RE

Se l'istanza principale non ha una replica di lettura tra regioni che soddisfa i requisiti di replica di RE, 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 RE.
  6. Nel campo Versione database, è già selezionata MySQL 8.0.
  7. Nel campo Versione secondaria, lascia la versione secondaria preselezionata. La replica di RE e l'istanza principale devono condividere la stessa versione secondaria del database.
  8. Nella sezione Scegli una regione e una disponibilità a livello di zona della pagina, segui questi passaggi:
    • Seleziona una regione diversa da quella dell'istanza principale.
    • Facoltativo. Seleziona Più zone per la replica di RE.
    • Facoltativo. Seleziona le zone principali e secondarie per la replica di RE.
  9. Nella sezione Personalizza la tua istanza della pagina, puoi aggiornare le impostazioni per la replica di RE. Per maggiori dettagli su ciascuna impostazione, consulta la pagina Informazioni sulle impostazioni dell'istanza.
  10. Per Forme di macchina, seleziona lo stesso tipo di macchina dell'istanza principale.
  11. In Flag, configura tutti i flag richiesti per il tuo database.
  12. Fai clic su Crea replica.

Cloud SQL crea un backup dell'istanza principale e crea la replica. Tornerai alla pagina dell'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 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 uguali sia per la replica principale che per quella di RE.

  • MACHINE_TYPE: specifica lo stesso tipo di macchina dell'istanza principale. Ti consigliamo che il tipo di macchina corrisponda a quello dell'istanza principale.
  • AVAILABILITY_TYPE: se l'istanza principale è configurata per l'alta 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.
  • 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 uguali sia per la replica principale sia per quella di RE.
  • REPLICA_NAME: il nome dell'istanza di replica di RE che stai creando.
  • REPLICA_REGION: la regione dell'istanza della replica di RE. La regione della replica deve essere diversa da quella 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 abilitare 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, 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.
  • 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 uguali sia per la replica principale sia per quella di RE.
  • REPLICA_NAME: il nome dell'istanza di replica di RE che stai creando.
  • REPLICA_REGION: la regione dell'istanza della replica di RE. La regione della replica deve essere diversa da quella dell'istanza principale.
  • MACHINE_TYPE: specifica lo stesso tipo di macchina dell'istanza principale. Ti consigliamo che le dimensioni del disco corrispondano a quelle dell'istanza principale.
  • AVAILABILITY_TYPE: se l'istanza principale è configurata per l'alta disponibilità, ti consigliamo di specificare REGIONAL per abilitare 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:

Specifica la replica di RE per l'istanza principale

Le procedure seguenti descrivono come designare una delle repliche tra regioni di un'istanza principale come replica di RE per il passaggio a un'altra rete o il failover di replica.

Console

Per designare una 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, trova la replica di lettura tra regioni che vuoi designare come replica di RE.
  5. Per la replica, fai clic sul pulsante Azioni more_vert e seleziona Imposta come replica di RE.
  6. Fai clic su Conferma.

gcloud

Per designare una replica di RE in un'istanza principale, utilizza il comando seguente:

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

Sostituisci le seguenti variabili:

  • 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. Devi specificare l'ID progetto come parte della designazione.
  • REPLICA_NAME: il nome della replica di RE.

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. Devi specificare l'ID progetto come parte della designazione.
  • PRIMARY_INSTANCE_NAME: il nome dell'istanza principale.
  • REPLICA_NAME: il nome della replica di RE.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "replicationCluster": {
     "failoverDrReplicaName": "PROJECT_ID: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 dell'istanza principale e della replica di RE. Devi specificare l'ID progetto come parte della designazione.
  • PRIMARY_INSTANCE_NAME: il nome dell'istanza principale.
  • REPLICA_NAME: il nome della replica di RE.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Modifica la designazione della replica di RE

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

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, trova la replica di lettura tra regioni che vuoi designare come nuova replica di RE.
  5. Per la replica, fai clic sul pulsante Azioni more_vert e seleziona Imposta come replica di RE.

gcloud

Per modificare la replica di RE, esegui di nuovo il comando designate e specifica una replica di RE diversa.

REST

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

Visualizza la designazione della replica di RE

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

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

Console

Per scoprire quale replica di lettura è la replica di RE designata 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, verifica che MySQL disaster recovery replica venga visualizzato nella colonna Type (Tipo) per la replica di RE designata.

gcloud

Per scoprire quale istanza è la replica di RE 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 denominato failoverDrReplica che identifica la replica di RE 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 è una replica di RE, utilizza una delle procedure seguenti.

Console

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

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

    Vai a Istanze Cloud SQL

  2. Trova l'istanza di replica.
  3. Verifica che MySQL disaster recovery replica venga visualizzato nella colonna Type (Tipo) per la replica di RE designata.

gcloud

Per verificare se un'istanza di replica è una replica di RE, esegui questo comando:

gcloud beta sql instances describe REPLICA_NAME

Sostituisci la seguente variabile:

  • REPLICA_NAME: il nome della replica di lettura che vuoi controllare

Se la replica è una replica di RE, 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 di RE

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

Console

Per rimuovere una replica di RE designata 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 che vuoi rimuovere.
  5. Per la replica, fai clic sul pulsante Azioni more_vert e seleziona Rimuovi come replica di RE.
  6. Fai clic su Conferma.

gcloud

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

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 di RE 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 dell'istanza principale e della replica di RE.
  • PRIMARY_INSTANCE_NAME: il nome dell'istanza principale.
  • Imposta il campo failoverDrReplicaName su una stringa vuota.

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, effettua le seguenti sostituzioni:

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

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:

Eseguire un passaggio

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

  • L'istanza principale è in uso.
  • 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 passaggio, l'operazione esegue un backup della nuova istanza principale (la precedente replica di RE) non appena viene promossa la nuova istanza principale. Al termine del backup, il recupero point-in-time (PITR) è completamente abilitato nella nuova istanza principale. Questo backup può richiedere da 5 a 15 minuti, a seconda delle dimensioni del disco. La copertura PITR inizia solo al termine del backup. Per ulteriori informazioni sulle considerazioni relative all'utilizzo di PITR con il RE avanzato, consulta Utilizzare il PITR con il RE avanzato.

Al termine dell'operazione di commutazione, noterai che la direzione di replica è invertita.

Prima di iniziare

Prima di eseguire il passaggio:

  • Specifica una replica di RE. Puoi eseguire il passaggio 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 è una precauzione nel caso in cui sia necessario eseguire il ripristino da eventuali errori imprevisti.

Esecuzione dell'operazione di commutazione

Console

Per eseguire il passaggio:

  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 di RE. Viene visualizzata la pagina Panoramica per la replica di RE.
  4. Fai clic sul pulsante Passa a Pixel.
  5. Nella pagina Esegui il passaggio tra la replica di lettura principale e quella designata, inserisci il nome dell'istanza principale nel campo ID istanza.
  6. Fai clic su Passa a Pixel.

gcloud

Per eseguire il passaggio, esegui questo 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 i ruoli.
  • TIMEOUT_DURATION: facoltativo. Il periodo di timeout per consentire il completamento delle operazioni di database sull'istanza.
  • Se non specifichi questo parametro, l'operazione di commutazione 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 massimo 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 un massimo di 9 posizioni. Ad esempio, per 30,5 minuti, specifica 30.5m.

    Se non hai operazioni in attesa, puoi ridurre 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, 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/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 di replica

In caso di errore a livello di regione o di emergenza, puoi eseguire il ripristino di emergenza richiamando un'operazione di failover di replica alla replica di RE designata. Per eseguire un failover di replica, promuovi la replica di RE designata. Al contrario del passaggio, la promozione della replica di RE è immediata.

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

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

Quando l'istanza principale precedente torna online, il processo di failover della replica esegue un backup. Dopo l'esecuzione di questo backup, l'istanza principale precedente viene ricreata come replica di lettura della nuova istanza principale. In questo processo, l'istanza principale precedente perde tutti i log delle transazioni PITR precedenti non ancora salvati in Cloud Storage. Pertanto, il failover della replica non garantisce che tutti i log delle transazioni utilizzati per PITR nella vecchia istanza principale vengano conservati.

Per saperne di più sulle considerazioni relative all'utilizzo di PITR con il RE avanzato, consulta Utilizzare il PITR con il RE avanzato.

Prima di iniziare

Prima di poter eseguire un failover della replica:

  • Se non l'hai ancora fatto, specifica una replica di RE. Puoi eseguire un failover di replica solo tra l'istanza principale e la replica di RE designata.
  • Assicurati che la replica di RE sia online e integro.

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 di RE. Viene visualizzata la pagina Panoramica per la replica di RE.
  4. Fai clic sul pulsante Failover della replica.
  5. Nella pagina Esegui il failover di replica tra la replica di lettura principale e quella designata, 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 di replica.

gcloud

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

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, 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.
  • ENABLE_REPLICA_FAILOVER: impostato su true per utilizzare il failover della replica. Se imposti il valore false, l'API utilizza il metodo promoteReplica regolare 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, 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.
  • ENABLE_REPLICA_FAILOVER: impostato su true per utilizzare il failover della replica. Se imposti il valore false, l'API utilizza il metodo promoteReplica regolare 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:

Controlla lo stato di un failover della replica

Il failover della replica avviene in due fasi. La prima fase è la promozione della replica di RE. La seconda fase consiste nella ricreazione dell'istanza principale precedente come replica di lettura.

Per verificare lo stato del failover della replica, controlla lo stato di ogni fase.

  1. Controlla lo stato della prima fase.

    Console

    Per verificare se la replica di RE designata è stata promossa a 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 l'elemento MySQL 8.0 sia visualizzato nella colonna Tipo per la nuova istanza principale.

    gcloud

    Puoi controllare lo stato eseguendo questo comando:

    gcloud sql instances describe DR_REPLICA_NAME
    

    Sostituisci la seguente variabile:

    • DR_REPLICA_NAME: il nome della replica di RE promossa

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

    instanceType: CLOUD_SQL_INSTANCE
    

  2. Per verificare il completamento della seconda fase, controlla il log delle operazioni sull'istanza per vedere il messaggio RECONFIGURE_OLD_PRIMARY.

    L'aspetto di questo messaggio dipende da quando l'istanza principale precedente torna online, il che può richiedere minuti o giorni in caso di emergenza.

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

Utilizza PITR con RE avanzato

Con il failover sia di commutazione sia di replica, non appena la replica di RE viene promossa a istanza principale, si verificano le seguenti modifiche per supportare il backup e il PITR:

  • La configurazione di backup, inclusa qualsiasi pianificazione automatica dei backup, viene copiata dalla vecchia istanza principale alla nuova istanza principale.
  • Se disattivato, il flag di configurazione binlog viene attivato per abilitare il PITR.
  • Viene eseguito un nuovo backup per supportare il PITR nella nuova istanza principale.
  • Il criterio di conservazione dei log delle transazioni viene copiato dalla vecchia istanza principale alla nuova.

Sia per la configurazione di backup che per i criteri di conservazione dei log delle transazioni, ti 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 passaggio, Cloud SQL pianifica i backup automatici ed esegue il primo backup della nuova istanza principale. Se vuoi che la copertura PITR inizi prima, ti consigliamo di verificare che il primo backup sia andato a buon fine. L'istanza principale appena promossa ha una copertura PITR solo dopo che il primo backup automatico è stato completato correttamente.

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

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

Quando un'istanza partecipa a un'operazione di passaggio o di failover della replica, trascorre del tempo come replica di lettura. PITR non è supportato durante il periodo di tempo speso dall'istanza come replica di lettura. Se vuoi eseguire PITR fino a un momento precedente all'evento di passaggio, devi riportare l'istanza a un'istanza principale. Dopo che l'istanza è tornata a un'istanza principale, puoi eseguire il PITR con un intervallo di tempo precedente all'operazione di passaggio originale.

Se non riesci a eseguire il PITR perché l'istanza principale era una replica di lettura al momento dell'interesse, devi tentare la richiesta PITR sull'istanza che era come istanza principale attiva al momento dell'interesse. A questo scopo, passa a quell'istanza e prova il PITR.

Per determinare quale istanza utilizzare per la richiesta PITR, utilizza l'elenco delle operazioni. L'elenco delle operazioni per un'istanza può aiutare a determinare quando un'istanza è stata sottoposta a passaggio o repliche di operazioni di failover.

Eliminazione di backup e log delle transazioni sulle repliche

Se un'istanza principale abilitata con PITR e i backup diventano una replica di lettura, l'ultimo criterio di conservazione e di backup PITR relativo al periodo in cui è stata abilitata come istanza principale viene conservato e applicato durante il periodo di replica. Anche se la nuova istanza principale non esegue i backup, i log delle transazioni e dei backup precedenti utilizzati per PITR vengono eliminati nella replica di lettura in base all'ultimo criterio configurato.

Ad esempio, se l'istanza è configurata in modo da avere backup automatici giornalieri e conservare 7 backup con 7 giorni di log PITR, quando questa istanza diventa una replica di lettura, qualsiasi cosa precedente a 7 giorni venga eliminata una volta al giorno.

Se hai bisogno di eliminare i backup prima, puoi rimuoverli manualmente. Per ulteriori informazioni, consulta Eliminare un backup.

Limitazioni

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

Risolvere i problemi

Problema Risoluzione dei problemi
Operazione di passaggio non riuscita.
  • Assicurati che l'istanza soddisfi tutti i requisiti di replica di RE indicati.
  • Verifica il volume delle transazioni nel database. Il passaggio protegge i log binari dell'istanza principale in Cloud Storage prima che esegua il passaggio. Se il volume delle transazioni è elevato, l'operazione potrebbe scadere. Valuta la possibilità di riprovare quando il carico delle transazioni è inferiore.
L'operazione di passaggio non è riuscita e l'istanza principale è bloccata in modalità di sola lettura. Esegui il riavvio del database per riportare l'istanza principale in modalità di scrittura.
L'operazione di commutazione è stata completata, ma la console Google Cloud non mostra i nuovi ruoli invertiti per le istanze. Aggiorna il browser per mostrare la topologia aggiornata.
Operazione di failover della replica non riuscita.
  • Assicurati che una replica di RE sia designata per l'istanza principale e che sia online.
  • Se il failover alla replica di RE non va a buon fine, esegui la promozione a una replica di lettura normale (non di RE).
Impossibile capire se la replica non viene eseguita Connettiti alla replica e digita:
show slave status;
  • In caso di replica, la prima colonna "Slave_IO_State" mostra "Waiting for master to send event" e il campo "Last_IO_Error" è vuoto.
  • Se la replica non viene eseguita, 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 '[email protected]:3306".

Puoi visualizzare lo stato di replica delle repliche anche nella dashboard di monitoraggio di Cloud SQL. Per ulteriori informazioni, vedi Monitorare 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 PITR per un periodo di tempo in cui un'istanza è stata sottoposta a passaggio a una replica. I log PITR non sono disponibili per il periodo di tempo in cui l'istanza era una replica.

  • Esaminare l'elenco delle operazioni per determinare se l'istanza era una replica in quel momento
  • Utilizza l'elenco delle operazioni per determinare quale istanza era l'istanza 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 ancora cambiato la località di archiviazione dei log delle transazioni in Cloud Storage. Puoi riprovare dopo aver cambiato la località di archiviazione dei log delle transazioni oppure puoi provare a designare una replica di RE per un'istanza principale diversa.

Per saperne di più sullo spostamento della posizione di archiviazione dei log delle transazioni utilizzati per il PITR, consulta l'articolo sull'utilizzo del 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."

Assicurati di specificare un ID o un numero di progetto quando designi la replica di RE per l'istanza principale.

Per maggiori informazioni su come designare una replica di RE e la sintassi corretta del comando, consulta Specificare la replica di RE per l'istanza principale.

Passaggi successivi