Configurazione legacy per l'alta disponibilità

Questa pagina descrive la configurazione precedente per un'istanza MySQL per l'alta disponibilità (HA).

In una configurazione HA precedente, un'istanza Cloud SQL per MySQL utilizza una replica di failover per aggiungere l'alta disponibilità all'istanza. Questa funzionalità non è disponibile nella console Google Cloud. La configurazione consigliata non utilizza le repliche di failover. Utilizza invece i dischi permanenti regionali di Google, che replicano in modo sincrono i dati a livello di blocco tra due zone in una regione.

Per ulteriori informazioni sull'attuale configurazione dell'alta disponibilità, consulta Panoramica della configurazione dell'alta disponibilità.

Aggiorna un'istanza da alta disponibilità legacy a attuale

Aggiornare l'istanza dalla versione precedente alla nuova ad alta disponibilità. segui questi passaggi:

  1. Elimina la replica di failover sulle istanze MySQL che vuoi aggiornare. Per ulteriori informazioni, consulta la sezione Disattivare la disponibilità elevata su un'istanza.
  2. Configura l'istanza in modo che utilizzi la versione corrente dell'alta disponibilità. Per ulteriori informazioni, consulta Configurare un'istanza esistente per l'alta disponibilità.

Configurazione precedente: crea una nuova istanza configurata per l'alta disponibilità

Quando crei un'istanza, puoi configurarla per l'alta disponibilità. Cloud SQL crea la replica di failover contemporaneamente alla creazione dell'istanza principale. La funzionalità precedente non è disponibile nella console Google Cloud. Utilizza invece i comandi gcloud CLI o cURL.

Per creare un'istanza configurata per l'alta disponibilità:

gcloud

  1. Crea l'istanza principale e la rispettiva replica di failover:
    gcloud sql instances create PRIMARY_INSTANCE_NAME \
    --backup-start-time=BACKUP_WINDOW_START_TIME \
    --failover-replica-name=FAILOVER_REPLICA_NAME \
    --cpu=CPU \
    --database-version=DATABASE_VERSION \
    --memory=MEMORY \
    --enable-bin-log

    L'ora di inizio della finestra di backup è nel formato HH:MM.

    Assicurati di sostituire il segnaposto DATABASE_VERSION con MySQL 5.6 o MySQL 5.7 (--database-version=MYSQL_5_6 o
    --database-version=MYSQL_5_7).

    Se non specifichi una versione per il parametro database-version, viene selezionato MySQL 8.0, per impostazione predefinita. La configurazione legacy per la disponibilità per MySQL non supporta la versione 8.0.

    Per un elenco completo dei parametri disponibili, vedi gcloud sql instances create pagina di riferimento.

  2. Configura l'utente root nell'istanza principale:
    gcloud sql users set-password root --host=% \
    --instance PRIMARY_INSTANCE_NAME \
    --password PASSWORD

    La replica di failover viene creata con le stesse risorse CPU e MEMORIA dell'istanza principale. Puoi modificare CPU e MEMORIA della replica di failover in un secondo momento, ma deve essere almeno grande quanto l'istanza principale.

curl

  1. Crea l'istanza principale e la rispettiva replica di failover:
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name":"PRIMARY_INSTANCE_NAME", "region":"REGION",
                  "settings": {
                               "tier":"MACHINE_TYPE",
                               "backupConfiguration": {"binaryLogEnabled": true, "enabled": true}},
                               "failoverReplica": {"name": "FAILOVER_REPLICA_NAME"}}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances
    Per l'elenco completo dei parametri per la richiesta, vedi instances:insert.
  2. Al termine dell'inizializzazione dell'istanza principale, aggiorna la password di root sull'istanza principale:
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name": "root", "host": "%", "password": "ROOT_PASSWORD"}' \
         'https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_NAME/users?host=%25&name=root'
    Questa modifica viene propagata automaticamente alla replica.

Configurazione legacy: configura un'istanza esistente per l'alta disponibilità

La configurazione dell'alta disponibilità per un'istanza esistente causa alcuni minuti di inattività mentre l'istanza viene riconfigurata.

Per configurare un'istanza esistente per l'alta disponibilità:

gcloud

  1. Controlla lo stato dell'istanza principale:
    gcloud sql instances describe PRIMARY_INSTANCE_NAME

    Se la proprietà databaseReplicationEnabled è true, l'istanza è una replica; non puoi creare una replica di failover per una replica.

  2. Se la proprietà enabled in backupConfiguration è false, abilita i backup per l'istanza principale ora:
    gcloud sql instances patch PRIMARY_INSTANCE_NAME \
    --backup-start-time HH:MM

    Il parametro backup-start-time viene specificato in 24 ore nel fuso orario UTC±00 e specifica l'inizio di una sessione finestra di backup. I backup possono essere avviati in qualsiasi momento durante la finestra di backup.

  3. Se la proprietà binaryLogEnabled è false, attiva i log binari:
    gcloud sql instances patch PRIMARY_INSTANCE_NAME \
    --enable-bin-log

    L'abilitazione dei log binari comporta il riavvio dell'istanza.

  4. Crea la replica:
    gcloud sql instances create FAILOVER_REPLICA_NAME \
    --master-instance-name=PRIMARY_INSTANCE_NAME \
    --replica-type=FAILOVER

curl

  1. Controlla lo stato dell'istanza principale:
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         -X GET \
         https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME?fields=settings

    L'output conterrà backupConfiguration, ad esempio:

    "backupConfiguration": {
        "kind": "sql#backupConfiguration",
        "startTime": "12:00",
        "enabled": true,
        "binaryLogEnabled": true
    }
    
  2. Se enabled o binaryLogEnabled sono false, utilizza patch della risorsa istanze per abilitarle entrambe. Specifica le proprietà della configurazione di backup che vuoi mantenere invariate e quelle che vuoi modificare.

    Per attivare i backup, imposta enabled su true e startTime su un valore che corrisponde all'inizio della finestra di backup. Per abilitare il logging binario, imposta binaryLogEnabled a true.

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"settings" : {"backupConfiguration" : {"startTime": "HH:MM", "enabled": true, "binaryLogEnabled": true}}}' \
         -X PATCH \
         https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME/
  3. Utilizza il metodo insert della risorsa instances per creare la replica di failover.

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name": "REPLICA_NAME", "masterInstanceName": "PRIMARY_INSTANCE_NAME",
                  "region": "PRIMARY_IMSTANCE_REGION", "databaseVersion": "PRIMARY_DATABASE_VERSION",
                  "replicaConfiguration": {"failoverTarget": true},
                  "settings": {"tier":"MACHINE_TYPE"}}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances

    MACHINE_TYPE deve essere grande almeno quanto il tipo di macchina dell'istanza principale.

Avvia failover

Il test del failover è facoltativo, ma è consigliato per consentirti di vedere come dell'applicazione risponde in caso di failover.

Per saperne di più sui failover, consulta Panoramica del failover.

gcloud

Avvia il failover:

gcloud sql instances failover PRIMARY_INSTANCE_NAME

curl

  1. Descrivi l'istanza principale per ottenere il valore del campo settingsVersion.
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         -X GET \
         https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME
  2. Avvia il failover:
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"failoverContext":{"settingsVersion":"SETTINGS_VERSION"}}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME/failover

L'istanza esegue il failover e non è disponibile per il servizio dati per alcuni minuti.

Configurazione precedente: crea un avviso per il ritardo nella replica

Il tempo necessario per un'operazione di failover dipende dalla quantità di replica all'avvio del failover. Puoi utilizzare Cloud Monitoring nella console Google Cloud per ricevere un avviso quando il ritardo nella replica supera una soglia.

Per ulteriori informazioni sul ritardo della replica, cerca "seconds_behind_master" il Sintassi SHOW SLAVE STATUS pagina nella documentazione di MySQL.

Per ulteriori informazioni su Cloud Monitoring, consulta la documentazione di Cloud Monitoring.

Configurazione precedente: imposta un avviso per una replica di failover specifica

  1. Nel pannello di navigazione della console Google Cloud, seleziona Monitoraggio e poi Avvisi.
  2. Fai clic su Crea criterio di avviso.
  3. Inserisci un nome descrittivo per l'avviso.
  4. Seleziona Soglia metrica e fai clic su Avanti per aprire la scheda Target.
  5. In Tipo di risorsa, seleziona Cloud SQL.
  6. In Si applica a, seleziona Singolo, quindi seleziona la tua replica di failover.
  7. Fai clic su Avanti per aprire la scheda Configurazione.
  8. Inserisci i seguenti valori:

    Campo Valore
    Se metrica Secondi dietro il master
    Condizione oltre
    Soglie 120 (o il valore appropriato per il tuo ambiente)
    Per 3 minuti

  9. Seleziona i metodi di notifica e fai clic su Salva condizione.

Configurazione precedente: imposta un avviso per un gruppo di repliche di failover

Se prevedi di creare più repliche di failover nello stesso progetto, semplifica l'impostazione dell'avviso per l'intero gruppo, anziché per ogni failover di replicare singolarmente. Per creare un gruppo per il monitoraggio, utilizza un suffisso per il delle repliche di failover come "-failover". Assicurati di non utilizzare questo sufisso per altri tipi di istanze Cloud SQL.

Crea il gruppo di repliche di failover:

  1. Nella console Google Cloud, vai alla pagina Monitoring.

    Vai a Monitoring

  2. Nella barra dei menu in alto, seleziona Gruppi > Crea...
  3. Inserisci un nome che descriva il gruppo.
  4. Lascia selezionati Nome e Contiene e inserisci la sottostringa del nome.
  5. Fai clic su Salva gruppo. Viene visualizzata la pagina di riepilogo del nuovo gruppo.
  6. Verifica che le istanze previste siano incluse nel gruppo.

Crea l'avviso per il gruppo di repliche di failover:

  1. Nel pannello di navigazione della console Google Cloud, seleziona Monitoring e poi Avvisi.
  2. Fai clic su Crea criterio di avviso.
  3. Inserisci un nome descrittivo per l'avviso di gruppo.
  4. Seleziona Soglia della metrica e fai clic su Avanti per aprire la scheda Target.
  5. In Tipo di risorsa, seleziona Cloud SQL.
  6. Per Si applica a, seleziona Gruppo, quindi seleziona il gruppo di failover.
  7. Lascia selezionata l'opzione Qualsiasi membro in violazione e fai clic su Avanti per aprire lo Configurazione.
  8. Inserisci i seguenti valori:

    Campo Valore
    Se metrica Secondi dietro il master
    Condizione oltre
    Soglie 120 (o il valore appropriato per il tuo ambiente)
    Per 3 minuti

  9. Seleziona i metodi di notifica che preferisci e fai clic su Salva condizione.

Configurazione precedente: disabilita l'alta disponibilità in un'istanza

Devi eliminare l'istanza della replica di failover per rimuovere l'alta disponibilità dell'istanza principale.

Prima di eseguire questa procedura, assicurati che non siano in esecuzione operazioni sull'istanza principale.

Per disattivare l'alta disponibilità:

Console

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

    Vai a Istanze Cloud SQL

  2. Seleziona l'istanza di failover associata all'istanza che vuoi l'opzione disabilita l'alta disponibilità.
  3. Nella pagina Dettagli istanza, fai clic su Elimina.
  4. Nella finestra Elimina replica, digita nuovamente il nome del failover in esecuzione in un'istanza Compute Engine.
  5. Fai clic su Elimina. La configurazione dell'istanza originale cambia a livello di zona.

gcloud

Per informazioni di riferimento, consulta gcloud sql instances delete.
gcloud sql instances delete FAILOVER_REPLICA_NAME

curl

La seguente richiesta utilizza il metodo instances:delete per eliminare l'istanza.
gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json'\
      -X DELETE\
https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_NAME

Passaggi successivi