Utilizza ripristino di emergenza (RE) avanzato

In questa pagina viene descritto come utilizzare il ripristino di emergenza (RE) avanzato. La RE avanzata 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 cambio consente di invertire i ruoli dell'istanza principale e della replica di RE designata senza perdita di dati. Puoi utilizzare il cambio per ripristinare lo stato di deployment originale dopo il failover della replica oppure puoi utilizzare il cambio per testare RE.

La RE avanzata è supportata solo sulle istanze della versione Cloud SQL Enterprise Plus.

Specifica una replica RE

Per eseguire 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 dell'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 RE

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

  • Deve essere un'istanza della versione Cloud SQL Enterprise Plus
  • Deve avere 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 sulla replica di RE

Questa sezione fornisce suggerimenti per la replica di RE. I seguenti suggerimenti 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, abilita anche l'alta disponibilità sulla replica RE.
  • Utilizza una configurazione coerente della cache dei dati. Se abiliti la cache dei dati sull'istanza principale, attivala anche sulla replica di RE.
  • Configura eventuali flag di database appropriati per la replica di RE prima e dopo qualsiasi operazione di cambio 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 che soddisfa i requisiti della 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 RE.
  6. Nel campo Versione database, MySQL 8.0 è già selezionato.
  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 la 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 primarie 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 ulteriori dettagli su ciascuna impostazione, consulta la pagina Informazioni sulle impostazioni dell'istanza.
  10. Per Forme di macchine, seleziona lo stesso tipo di macchina dell'istanza principale.
  11. Per 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 la 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 che corrisponde alla versione principale e secondaria del database dell'istanza principale, ad esempio MYSQL_8_0_31.

    La versione principale e quella secondaria del database devono essere le stesse sia per la replica primaria sia per quella di RE.

  • 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 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 la 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 le stesse sia per la replica primaria sia per quella di RE.
  • 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 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 delle seguenti 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 la 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 le stesse sia per la replica primaria sia per quella di RE.
  • 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 da quella dell'istanza principale.
  • MACHINE_TYPE: specifica lo stesso tipo di macchina dell'istanza principale. 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 delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Specifica la replica di RE per l'istanza principale

Le seguenti procedure descrivono come designare una delle repliche tra regioni di un'istanza principale come replica di RE per il cambio o il failover della 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 per l'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 more_vert Azioni e seleziona Definisci come replica RE.
  6. Fai clic su Conferma.

gcloud

Per designare una replica di RE 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 di 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 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": "REPLICA_NAME"
   }
}

Per inviare la richiesta, espandi una delle seguenti 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.
  • 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": "REPLICA_NAME"
   }
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Modifica la designazione della replica RE

Se la replica soddisfa i requisiti, puoi designare una replica diversa come replica di RE. La replica RE precedente perde la designazione di replica 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 per l'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 more_vert Azioni e seleziona Definisci come replica RE.

gcloud

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

REST

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

Visualizza la designazione di replica RE

Puoi verificare quale replica di RE è assegnata all'istanza principale utilizzando gcloud CLI o l'API Cloud SQL Admin. Puoi anche verificare se una replica è designata per 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 di RE designata per un'istanza principale, segui questi passaggi:

  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 per 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 sia presente nella colonna Tipo per la replica di RE designata.

gcloud

Per scoprire quale istanza è la replica designata di RE 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 designata per 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 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 delle seguenti 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 delle seguenti 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 di replica è una replica RE, segui questi passaggi:

  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 compaia nella colonna Tipo per la replica di RE designata.

gcloud

Per verificare se un'istanza di replica è una replica 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 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 delle seguenti 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 delle seguenti 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 a un'istanza principale non viene assegnata alcuna replica di RE, non puoi eseguire il cambio 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 per l'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 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 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 designata 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 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 delle seguenti 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 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 delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Esegui un cambio

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

  • L'istanza principale è in uso attivamente.
  • Sono in corso le operazioni di amministrazione, come il backup automatico o l'abilitazione o la disabilitazione dell'alta disponibilità.

Per evitare un timeout, valuta la possibilità di eseguire il cambio 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 viene promossa la nuova istanza principale. Al termine del backup, il recupero point-in-time (PITR) viene completamente abilitato 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 del backup. Per ulteriori informazioni sulle considerazioni relative all'utilizzo del PITR con RE avanzata, consulta Utilizzare il PITR con RE avanzato.

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

Prima di iniziare

Prima di eseguire il cambio, segui questi passaggi:

  • Specificare una replica RE. Puoi effettuare il cambio solo tra l'istanza principale e la replica designata di RE.
  • 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 ripristinare gli errori imprevisti.

Esegui l'operazione di cambio

Console

Per eseguire il cambio, procedi nel seguente modo:

  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 Cambia.
  5. Nella pagina Esegui il cambio tra la replica di lettura principale e quella designata, inserisci il nome dell'istanza principale nel campo ID istanza.
  6. Fai clic su Cambia.

gcloud

Per effettuare il cambio, 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 ruolo.
  • 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 cambio 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 fino a nove cifre decimali. Ad esempio, per 30,5 minuti, specifica 30.5m.

    Se non ci sono 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 la 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 delle seguenti 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 la 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 delle seguenti 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 il ripristino di emergenza richiamando un'operazione di failover della replica alla replica di RE designata. Per eseguire un failover della replica, devi promuovere la replica designata di RE. A differenza del cambio, 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 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 della nuova istanza principale (la replica di RE precedente) subito dopo che la replica di RE diventa la 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 precedente) 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 ricreata come replica di lettura della nuova istanza principale. In questo processo, l'istanza principale precedente perde tutti i log delle transazioni PITR precedenti che non erano ancora stati salvati in Cloud Storage. Di conseguenza, il failover della replica non garantisce che tutti i log delle transazioni utilizzati per il PITR nell'istanza principale precedente vengano conservati.

Per ulteriori informazioni sulle considerazioni sull'utilizzo del PITR con RE avanzata, consulta Utilizzare il PITR con RE avanzato.

Prima di iniziare

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

  • Se non l'hai ancora fatto, designa una replica RE. Puoi eseguire un failover della 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 della replica tra la replica di lettura principale e quella designata, inserisci il nome dell'istanza principale nel campo ID istanza per confermare che vuoi 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, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID o il numero del progetto Google Cloud dell'istanza principale e la 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 metodo 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 delle seguenti 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 la 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 metodo 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 delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Controllare 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 è la ricreazione della vecchia istanza principale come replica di lettura.

Per controllare 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 designata di RE è 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 MySQL 8.0 sia visualizzato nella colonna Tipo per la nuova istanza principale.

    gcloud

    Puoi verificare 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 seguente campo 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 il messaggio RECONFIGURE_OLD_PRIMARY.

    L'aspetto di questo messaggio dipende da quando la vecchia istanza principale 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, consulta Visualizzare i log delle istanze.

Usa PITR con RE avanzata

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

  • La configurazione del backup, inclusa l'eventuale pianificazione automatica del backup, viene copiata dalla vecchia istanza principale alla nuova istanza principale.
  • Se disabilitato, il flag di configurazione binlog viene attivato per abilitare PITR.
  • Viene utilizzato un nuovo backup per supportare PITR sulla nuova istanza principale.
  • Il criterio di conservazione dei log delle transazioni viene copiato dall'istanza principale precedente alla nuova istanza principale.

Per quanto riguarda i criteri di conservazione dei log delle transazioni e della configurazione del backup, ti consigliamo di verificare che le impostazioni ereditate dall'istanza principale precedente siano corrette per la nuova istanza principale.

Inizio della copertura PITR

Al termine dell'operazione di cambio, Cloud SQL pianifica i backup automatici e utilizza il primo backup della nuova istanza principale. Se vuoi che la copertura PITR inizi prima di un giorno, ti consigliamo di verificare che il primo backup sia riuscito. L'istanza principale appena promossa ha la copertura PITR solo dopo il completamento corretto del primo backup automatico.

Per saperne di più su come visualizzare i backup disponibili per un'istanza, consulta Visualizzare un elenco dei 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 utilizza il tempo come replica di lettura. Il PITR e il ripristino di un backup sono supportati durante il periodo di tempo trascorso dall'istanza come replica di lettura. Se vuoi eseguire il PITR in un momento precedente alla verificarsi dell'evento di cambio, quando l'istanza era principale, puoi emettere il comando clone per scegliere come target il momento in cui l'istanza era un'istanza principale. Non puoi richiedere PITR in un momento in cui l'istanza era una replica di lettura.

Se non puoi 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.

Allo stesso modo, puoi ripristinare un backup eseguito in un momento in cui la replica era un'istanza principale. Mentre l'istanza è una replica, il comando di ripristino deve avere come target un'istanza autonoma diversa e non può essere ripristinato nella replica stessa.

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 operazioni di cambio o failover della replica.

Split-Brain durante il failover della replica

È possibile che si verifichi un caso di split-brain quando l'istanza principale continua ad accettare scritture mentre una replica viene promossa utilizzando il failover della replica. Dopo la promozione della replica, quando l'istanza principale precedente è di nuovo disponibile, questa viene ricreata come replica dell'istanza promossa e viene eseguito un backup finale. Questo backup può essere utilizzato per recuperare tutti i dati di split-brain che non sono stati scritti nella replica promossa.

Eliminazione di backup e log delle transazioni sulle repliche

Se un'istanza principale abilitata con PITR e backup diventa una replica di lettura, l'ultimo criterio di conservazione di backup e PITR del periodo come istanza principale viene conservato e applicato durante il periodo come replica. Anche se la nuova istanza principale non sta eseguendo 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 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, tutti i dati più vecchi di 7 giorni vengono eliminati una volta al giorno.

Se devi eliminare i backup prima, puoi rimuoverli manualmente. Per maggiori informazioni, consulta Eliminare un backup.

Limitazioni

  • Il ripristino di emergenza 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 log delle transazioni per il recupero point-in-time (PITR) su disco. Per verificare dove un'istanza archivia i suoi log per 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 cambio non riuscita.
  • Assicurati che l'istanza soddisfi tutti i requisiti di replica per RE dichiarati.
  • Controlla il volume delle transazioni nel database. Il cambio protegge i log binari dell'istanza principale in Cloud Storage prima di eseguire il cambio. Se il volume delle transazioni è elevato, l'operazione potrebbe scadere. Valuta la possibilità di riprovare l'operazione quando il carico delle transazioni è inferiore.
Il cambio non è riuscito e l'istanza principale è bloccata in modalità di sola lettura. Esegui un riavvio del database per riportare l'istanza principale in modalità di scrittura.
L'operazione di cambio è stata completata, ma la console Google Cloud non mostra i nuovi ruoli invertiti per le istanze. Aggiorna il browser per visualizzare la topologia aggiornata.
Failover della replica non riuscito.
  • Assicurati che sia designata una replica di RE per l'istanza principale e che sia online.
  • Se il failover alla replica di RE non è andato a buon fine, promuovi la connessione a una replica di lettura normale (non RE).
Impossibile capire se la replica non è in corso Connettiti alla replica e digita:
show slave status;
  • Se è in corso la 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 è in corso, 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 visualizzare lo stato della replica delle repliche anche nella dashboard di monitoraggio di Cloud SQL. Per saperne di più, consulta 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 quando un'istanza è stata sottoposta al passaggio a una replica. I log PITR non sono disponibili per il periodo in cui l'istanza era una replica.

  • Rivedi 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 l'istanza principale in quel momento.
  • Clonare 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 trasferito la località di archiviazione dei suoi log delle transazioni in Cloud Storage. Puoi riprovare di nuovo dopo aver cambiato la località di archiviazione per i log delle transazioni oppure puoi provare a designare una replica di RE per un'altra istanza principale.

Per ulteriori informazioni sullo spostamento della località di archiviazione dei log delle transazioni utilizzati per il PITR, consulta 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".

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

Passaggi successivi