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:
- Elimina la replica di failover sulle istanze MySQL che vuoi aggiornare. Per ulteriori informazioni, consulta la sezione Disattivare la disponibilità elevata su un'istanza.
- 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
- 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.
- 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
- Crea l'istanza principale e la rispettiva replica di failover:
Per l'elenco completo dei parametri per la richiesta, vedi instances:insert.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
-
Al termine dell'inizializzazione dell'istanza principale, aggiorna la password di root sull'istanza principale:
Questa modifica viene propagata automaticamente alla replica.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'
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
- 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. - Se la proprietà
enabled
inbackupConfiguration
è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. - 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.
- Crea la replica:
gcloud sql instances create FAILOVER_REPLICA_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME \ --replica-type=FAILOVER
curl
- 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 }
- Se
enabled
obinaryLogEnabled
sonofalse
, utilizzapatch
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
sutrue
estartTime
su un valore che corrisponde all'inizio della finestra di backup. Per abilitare il logging binario, impostabinaryLogEnabled
atrue
.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/
-
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
- 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
- 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
- Nel pannello di navigazione della console Google Cloud, seleziona Monitoraggio e poi Avvisi.
- Fai clic su Crea criterio di avviso.
- Inserisci un nome descrittivo per l'avviso.
- Seleziona Soglia metrica e fai clic su Avanti per aprire la scheda Target.
- In Tipo di risorsa, seleziona Cloud SQL.
- In Si applica a, seleziona Singolo, quindi seleziona la tua replica di failover.
- Fai clic su Avanti per aprire la scheda Configurazione.
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 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:
-
Nella console Google Cloud, vai alla pagina Monitoring.
- Nella barra dei menu in alto, seleziona Gruppi > Crea...
- Inserisci un nome che descriva il gruppo.
- Lascia selezionati Nome e Contiene e inserisci la sottostringa del nome.
- Fai clic su Salva gruppo. Viene visualizzata la pagina di riepilogo del nuovo gruppo.
- Verifica che le istanze previste siano incluse nel gruppo.
Crea l'avviso per il gruppo di repliche di failover:
- Nel pannello di navigazione della console Google Cloud, seleziona Monitoring e poi Avvisi.
- Fai clic su Crea criterio di avviso.
- Inserisci un nome descrittivo per l'avviso di gruppo.
- Seleziona Soglia della metrica e fai clic su Avanti per aprire la scheda Target.
- In Tipo di risorsa, seleziona Cloud SQL.
- Per Si applica a, seleziona Gruppo, quindi seleziona il gruppo di failover.
- Lascia selezionata l'opzione Qualsiasi membro in violazione e fai clic su Avanti per aprire lo Configurazione.
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 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
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Seleziona l'istanza di failover associata all'istanza che vuoi l'opzione disabilita l'alta disponibilità.
- Nella pagina Dettagli istanza, fai clic su Elimina.
- Nella finestra Elimina replica, digita nuovamente il nome del failover in esecuzione in un'istanza Compute Engine.
- Fai clic su Elimina. La configurazione dell'istanza originale cambia a livello di zona.
gcloud
Per informazioni di riferimento, consultagcloud sql instances delete
.
gcloud sql instances delete FAILOVER_REPLICA_NAME
curl
La seguente richiesta utilizza il metodoinstances: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
- Scopri di più su come funziona la configurazione per l'alta disponibilità.
- Testa la risposta dell'applicazione alle connessioni perse riavviando l'istanza.
- Scopri di più sulla gestione delle connessioni ai database.
- Scopri di più su Cloud Monitoring.
- Crea repliche di lettura per l'istanza.