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 di una regione.
Per ulteriori informazioni sull'attuale configurazione dell'alta disponibilità, consulta Panoramica della configurazione dell'alta disponibilità.
Aggiornare un'istanza dalla disponibilità elevata precedente a quella attuale
Per aggiornare l'istanza dalla configurazione precedente a quella nuova ad alta disponibilità:
- 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 gcloud CLI o i comandi cURL.
Per creare un'istanza configurata per l'alta disponibilità:
gcloud
- Crea l'istanza principale e la relativa 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
, per impostazione predefinita viene selezionata MySQL 8.0. La configurazione precedente per l'alta disponibilità per MySQL non supporta la versione 8.0.Per un elenco completo dei parametri disponibili, consulta la pagina di riferimento di gcloud sql instances create.
- 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 la CPU e la MEMORIA della replica di failover in un secondo momento, ma devono essere almeno uguali a quelle dell'istanza principale.
curl
- Crea l'istanza principale e la relativa replica di failover:
Per l'elenco completo dei parametri per la richiesta, consulta la pagina 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 precedente: configura un'istanza esistente per l'alta disponibilità
La configurazione di un'istanza esistente per l'alta disponibilità causa alcuni minuti di tempo di inattività durante la riconfigurazione dell'istanza.
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 subito i backup per l'istanza principale:gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --backup-start-time HH:MM
Il parametro
backup-start-time
è specificato in ora su 24 ore nel fuso orario UTC±00 e specifica l'inizio di una finestra di backup di 4 ore. 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 provoca 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
, utilizza il metodopatch
della risorsa istanze per attivarli entrambi. 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 attivare il logging binario, impostabinaryLogEnabled
sutrue
.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 almeno uguale al tipo di macchina dell'istanza principale.
Avvia il failover
Il test del failover è facoltativo, ma consigliato per verificare la risposta dell'applicazione in caso di failover.
Per scoprire di più sui failover, consulta la 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 ritardo della replica al momento dell'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 nella replica, cerca "seconds_behind_master" nella pagina Sintassi di SHOW SLAVE STATUS della documentazione di MySQL.
Per ulteriori informazioni su Cloud Monitoring, consulta la documentazione di Cloud Monitoring.
Configurazione precedente: impostare 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 Singola, quindi seleziona la 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: impostare un avviso per un gruppo di repliche di failover
Se prevedi di creare più repliche di failover nello stesso progetto, potrebbe essere più facile impostare l'avviso per l'intero gruppo anziché per ogni replica di failover singolarmente. Per creare un gruppo per il monitoraggio, utilizza un suffisso per i nomi delle repliche di failover, ad esempio "-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 descrittivo per 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 Monitoraggio e poi Avvisi.
- Fai clic su Crea criterio di avviso.
- Inserisci un nome descrittivo per l'avviso di gruppo.
- Seleziona Soglia 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 viola e 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 che preferisci e fai clic su Salva condizione.
Configurazione precedente: disabilita l'alta disponibilità su un'istanza
Devi eliminare l'istanza della replica di failover per rimuovere la disponibilità elevata dall'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 su cui vuoi disabilitare la disponibilità elevata.
- Nella pagina Dettagli istanza, fai clic su Elimina.
- Nella finestra Elimina replica, digita di nuovo il nome dell'istanza di failover.
- Fai clic su Elimina. La configurazione dell'istanza originale diventa zonale.
gcloud
Per informazioni di riferimento, consultagcloud sql instances delete
.
gcloud sql instances delete FAILOVER_REPLICA_NAME
curl
La richiesta seguente 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 dell'alta disponibilità.
- Testa la risposta dell'applicazione alle connessioni perse riavviando l'istanza.
- Scopri di più sulla gestione delle connessioni al database.
- Scopri di più su Cloud Monitoring.
- Crea repliche di lettura per la tua istanza.