Questa pagina descrive come configurare il server esterno per la replica in Cloud SQL, creare un'istanza di rappresentazione dell'origine su Cloud SQL e replicare i dati in Cloud SQL. Prima di procedere con i passaggi di replica, devi completare tutti i passaggi di questa pagina.
Un'alternativa ai passaggi descritti in questa pagina è Database Migration Service, che offre la replica continua o la migrazione una tantum del database da un server esterno a Cloud SQL.
Prima di iniziare
Terminologia
Server esterno. Il server MySQL esterno a Cloud SQL da cui vuoi replicare i dati. Viene anche chiamato database di origine o server di database esterno. Può essere un'altra istanza Cloud SQL o qualsiasi altro server di database, ad esempio on-premise, Amazon Relational Database Service (RDS) e così via.
Istanza di rappresentazione dell'origine. Una simulazione di un'istanza Cloud SQL che rappresenta il server esterno per la replica Cloud SQL. È visibile nella console Google Cloud e viene visualizzata come una normale istanza Cloud SQL, ma non contiene dati, non richiede configurazione o manutenzione e non influisce sulla fatturazione.
Replica Cloud SQL. L'istanza Cloud SQL che esegue la replica dal server esterno. Nota anche come replica di lettura primaria esterna.
Account utente di replica. L'account utente MySQL sul server esterno con autorizzazioni sufficienti per consentire la replica tra il server esterno e la replica Cloud SQL.
Importazione gestita. Il processo di importazione dei dati direttamente dal server esterno alla replica Cloud SQL. In questa situazione, Cloud SQL si connette al server esterno utilizzando l'account utente di replica ed esegue il dump dei dati direttamente sul server esterno per importare i dati nella replica Cloud SQL.
Configurare un progetto Google Cloud
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud SQL Admin API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud SQL Admin API.
-
Assicurati di disporre dei ruoli Amministratore Cloud SQL, Amministratore Storage e Visualizzatore Compute sul tuo account utente.
Assicurati che MySQL 5.7, 8.0 o 8.4 sia installato sul server esterno. Sono supportati MySQL Community Edition, Cloud SQL per MySQL, Amazon Aurora, MySQL su Amazon RDS e Microsoft Azure Database for MySQL Flexible Server.
- Devi utilizzare una versione principale di MySQL sulla replica Cloud SQL uguale o superiore alla versione di MySQL in esecuzione sul server esterno.
- Se sul server esterno è installato MySQL 5.5, GTID non è supportato.
Assicurati che i log binari siano abilitati e che:
- Il logging binario basato sulle righe viene utilizzato.
- I log binari vengono conservati per un periodo di tempo sufficientemente lungo da supportare la migrazione del database. In genere una settimana è sufficiente.
Prendi nota se il server esterno ha GTID abilitato. Ciò influisce sui passaggi da seguire per configurare la replica.
Prendi nota se il tuo server esterno dispone di autorizzazioni di blocco della lettura globale. Ciò influisce sui passaggi da seguire per configurare la replica.
Se la replica Cloud SQL è abilitata con un indirizzo IP privato perché l'indirizzo IP privato in uscita non è statico, configura il firewall del server esterno in modo da consentire l'intervallo IP interno allocato per l'accesso privato ai servizi della rete VPC utilizzata dalla replica Cloud SQL come rete privata.
Il firewall del server di database di origine deve essere configurato per consentire l'intero intervallo IP interno allocato per la connessione di servizio privato della rete VPC che l'istanza di destinazione Cloud SQL utilizza come campo privateNetwork delle impostazioni di ipConfiguration.
Per trovare l'intervallo IP interno:
Nella console Google Cloud , vai alla pagina Reti VPC.
Seleziona la rete VPC che vuoi utilizzare.
Fai clic sulla scheda Private service connection (Connessione privata ai servizi).
Se il tuo server esterno contiene clausole
DEFINER
(visualizzazioni, eventi, trigger o stored procedure), a seconda dell'ordine di esecuzione di queste istruzioni, la replica potrebbe non riuscire. Scopri di più sull'utilizzo diDEFINER
e sulle potenziali soluzioni alternative in Cloud SQL.InnoDB è l'unico motore di archiviazione supportato in Cloud SQL. La migrazione con MyISAM potrebbe causare incoerenza dei dati e richiede la convalida dei dati. Per maggiori informazioni, consulta Conversione delle tabelle da MyISAM a InnoDB nella documentazione di MySQL.
MySQL 5.7:
expire_logs_days
MySQL 8.0.x:
expire_logs_days
,binlog_expire_logs_seconds
MySQL 8.4:
binlog_expire_logs_seconds
Imposta
binlog_expire_logs_seconds
su un periodo di tempo sufficientemente lungo da supportare la migrazione del database.Per saperne di più, consulta Configurare i parametri del server in Azure Database for MySQL e il parametro
binlog_expire_logs_seconds
nella documentazione di Microsoft.Riavvia il server in modo che le modifiche effettuate vengano applicate.
SSL_OPTION_UNSPECIFIED:
il database di destinazione si connette al database di origine senza crittografia.DISABLED:
SSL viene disattivato quando la replica si connette al database di origine.REQUIRE:
SSL è necessario per la connessione della replica al database di origine.VERIFY_CA:
utilizza questo parametro per specificare se l'autenticazione solo server o l'autenticazione server-client viene utilizzata come parte della crittografia SSL/TLS per la connessione tra i database di origine e di destinazione.Per utilizzare l'autenticazione solo server, per la variabile
SOURCE_CERT
devi fornire il certificato x509 con codifica PEM dell'autorità di certificazione (CA) che ha firmato il certificato del server esterno.Per utilizzare l'autenticazione server-client, esegui le seguenti sostituzioni:
SOURCE_CERT:
fornisci il certificato della CA che ha firmato il certificato del server di database di origineCLIENT_CERT:
fornisci il certificato che il database di destinazione utilizza per l'autenticazione nel server di database di origineCLIENT_KEY:
fornisci la chiave privata associata al certificato client
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
Accanto all'indirizzo IP pubblico della replica Cloud SQL, tieni il puntatore sul suggerimento Più informazioni e recupera l'indirizzo IP in uscita.
Tieni presente che l'indirizzo IP in uscita non è l'indirizzo IP visualizzato nell'elenco principale della replica nella console Google Cloud .
- Il server esterno si trova dietro un firewall o un'altra restrizione di rete.
- La replica Cloud SQL utilizza un IP pubblico.
- L'host, la porta o l'IP del server esterno cambia.
- Vuoi utilizzare un altro utente di replica MySQL.
- La password dell'utente di replica MySQL cambia.
- I certificati SSL utilizzati per connettersi in modo sicuro al server esterno cambiano.
- Un'importazione gestita utilizza un servizio che estrae i dati dal server esterno e li importa direttamente nell'istanza Cloud SQL. Cloud SQL consiglia questa opzione. Devi utilizzare questa opzione se il server esterno non utilizza la replica dell'ID transazione globale (GTID). Per ulteriori informazioni, vedi Utilizzo di un'importazione gestita per configurare la replica da database esterni.
- Un file di dump richiede di creare un file di dump del server esterno, spostarlo in un bucket Cloud Storage e importarlo in Cloud SQL. Puoi utilizzare questa opzione solo se il server esterno utilizza la replica GTID. Per ulteriori informazioni, consulta Utilizzo di un file di dump per configurare la replica da database esterni.
- Un'importazione personalizzata richiede di creare un'istanza principale Cloud SQL, eseguire un'importazione personalizzata dei dati utilizzando gli strumenti che preferisci, eseguire il downgrade a una replica Cloud SQL e quindi configurare la replica del server esterno. Questo funziona meglio per le migrazioni di database di più TB, ma devi utilizzare la replica GTID. Per ulteriori informazioni, consulta Utilizzo di un'importazione personalizzata per configurare la replica da database esterni di grandi dimensioni.
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per MySQL 5.7 o versioni successive, attiva la replica.
- Fai clic sulla scheda Repliche per la replica che fungerà da elemento principale per la replica che vuoi creare.
- Fai clic su Crea replica.
- Nella pagina Crea replica di lettura, aggiorna l'ID istanza e qualsiasi altra opzione di configurazione, inclusi nome, regione e zona.
- Fai clic su Crea.
Cloud SQL crea una replica. Tornerai alla pagina dell'istanza della replica principale.
- Segui i passaggi 4-6 per ogni nuova replica in cascata che vuoi creare.
- Se utilizzi MySQL versione 5.7 o successive, attiva i binlog per il primario della nuova replica:
Sostituisci PARENT_REPLICA_NAME con il nome della replica principale.gcloud sql instances patch --enable-bin-log --project=cascade-replica PARENT_REPLICA_NAME
- Crea la nuova replica specificando la replica Cloud SQL come istanza principale utilizzando il flag
--master-instance-name
: - REPLICA_NAME: l'ID univoco della replica che stai creando
- PARENT_REPLICA_NAME: il nome della replica Cloud SQL
Una volta creata la replica, puoi notare che le modifiche apportate all'istanza principale vengono replicate in tutte le repliche della catena di repliche a cascata.
- Se utilizzi MySQL versione 5.7 o successive, abilita la registrazione binaria:
Per abilitare la registrazione binaria, salva il seguente JSON in un file denominato request.JSON, poi richiama il comando curl per abilitare la registrazione binaria.
{ "settings": { "backupConfiguration": { "enabled": false, "binaryLogEnabled": true } } }
- Per creare una replica nella replica principale, modifica il seguente esempio di codice JSON e salvalo in un file denominato
request.json
:{ "masterInstanceName": "EXTERNAL_SERVER_REPLICA_NAME", "project": "PROJECT_ID", "name": "REPLICA_NAME", "region": "REPLICA_REGION", "settings": { "tier": "MACHINE_TYPE", } }
- Esegui questo comando:
curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -d @request.json "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances"
- Promuovi la replica a istanza principale. Tieni presente che GTID e i log binari sono attivi e i backup pianificati sono abilitati sulla replica promossa.
- Aggiungi repliche di lettura all'istanza.
- (Facoltativo) Configura l'istanza per l'alta disponibilità (HA).
Per evitare tempi di inattività aggiuntivi, puoi attivare l'alta disponibilità durante la configurazione di una replica impostando
AVAILABILITY_TYPE
suREGIONAL
. - Scopri come utilizzare un'importazione personalizzata per configurare la replica da database esterni di grandi dimensioni.
- Scopri come utilizzare un file di dump per configurare la replica da database esterni.
- Scopri come utilizzare un'importazione gestita per configurare la replica da database esterni.
Installa l' Google Cloud SDK
Per configurare la replica, installa Google Cloud SDK per il server esterno. Ti consigliamo di installare l'SDK sul tuo server esterno, a meno che non sia già installato altrove.
Configura il server esterno per la replica
Elenco di controllo del server esterno
Configura la conservazione dei log binari
Devi configurare il server esterno in modo che conservi i log binari per almeno 24 ore.
Community MySQL
Se il tuo server esterno utilizza MySQL Community Edition, puoi utilizzare questi comandi MySQL per aggiornare le impostazioni di conservazione del log binario.
Cloud SQL per MySQL
Se il server esterno utilizza Cloud SQL per MySQL, per impostazione predefinita i log binari vengono conservati per sette giorni. Puoi modificare questa impostazione.
Amazon RDS e Aurora
Se il tuo server esterno è un'istanza Amazon RDS, puoi utilizzare questo comando per aggiornare le impostazioni di conservazione dei log binari:
call mysql.rds_set_configuration('binlog retention ', HOURS);
Proprietà | Descrizione |
---|---|
ORE | Il numero totale di ore di log binari che l'istanza Amazon RDS deve conservare. |
Per ulteriori informazioni, consulta mysql.rds_set_configuration.
Microsoft Azure
Per impostazione predefinita, il logging binario è attivato. Per saperne di più, consulta la documentazione di Microsoft.
Creare un account utente di replica
Sul server esterno deve esistere un account utente MySQL dedicato alla gestione della replica nella replica Cloud SQL. Questo account utente deve essere utilizzato solo per gestire la replica. A seconda dell'approccio di migrazione utilizzato, potresti dover concedere le autorizzazioni all'utente in un secondo momento.
Per aggiungere un account utente di replica, apri un terminale sul server esterno e inserisci questi comandi MySQL:
MySQL
CREATE USER 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD'; GRANT SELECT, SHOW VIEW ON *.* TO 'USERNAME'@'HOST'; FLUSH PRIVILEGES;
esempio
CREATE USER 'replicationUser'@'%' IDENTIFIED BY '8*&fwwd';
GRANT SELECT, SHOW VIEW ON *.* TO 'replicationUser'@'%';
FLUSH PRIVILEGES;
Proprietà | Descrizione |
---|---|
USERNAME | L'account utente di replica sul server esterno. |
PASSWORD | La password dell'account utente di replica. |
HOST | Imposta questo valore su % per accettare tutte le connessioni da qualsiasi host.
In un passaggio successivo, questa impostazione viene modificata in modo da accettare solo
le connessioni dalla replica Cloud SQL. |
Configurare un'istanza di rappresentazione dell'origine
L'istanza di rappresentazione dell'origine fa riferimento al server esterno. Contiene
solo i dati della richiesta provenienti dal server esterno. Crea i dati della richiesta
e utilizzali in un comando curl
che crea l'istanza di rappresentazione dell'origine
in Cloud SQL.
Crea i dati della richiesta
I dati della richiesta contengono informazioni di base sul tuo server esterno in formato JSON. I dati della richiesta possono essere configurati per una replica Cloud SQL su una rete pubblica o privata e devono contenere queste informazioni.
source.json
{ "name": "SOURCE_NAME", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "onPremisesConfiguration": { "hostPort": "SOURCE_HOST", "username": "USERNAME", "password": "PASSWORD", "caCertificate": "SOURCE_CERT", "clientCertificate": "CLIENT_CERT", "clientKey": "CLIENT_KEY", "sslOption": "SSL_OPTION" } }
esempio di importazione gestita
// example of source.json for external server that
// - initiates replication from a Cloud SQL managed import
// - doesn't use SSL/TLS
{
"name": "cloudsql-source-instance",
"region": "us-central1",
"databaseVersion": "MYSQL_5_7",
"onPremisesConfiguration": {
"hostPort": "192.0.2.0:3306",
"username": "replicationUser",
"password": "486#@%*@",
"sslOption": "REQUIRE"
}
}
esempio di file di dump
// example of source.json for external server that
// - initiates replication from a file
// - uses SSL/TLS
{
"name": "cloudsql-source-instance",
"region": "us-central1",
"databaseVersion": "MYSQL_5_7",
"onPremisesConfiguration": {
"hostPort": "192.0.2.0:"3306",
"username": "replicationUser",
"password": "486#@%*@",
"dumpFilePath": "gs://replica-bucket/source-database.sql.gz",
"caCertificate": "content of your certificate",
"clientCertificate": "content of your certificate",
"clientKey": "content of your client key",
"sslOption": "REQUIRE"
}
}
esempio di importazione personalizzata
// example of source.json for external server that
// - initiates replication from a Cloud SQL custom import
// - doesn't use SSL/TLS
{
"name": "cloudsql-source-instance",
"region": "us-central1",
"databaseVersion": "MYSQL_5_7",
"onPremisesConfiguration": {
"hostPort": "192.0.2.0:3306",
"username": "replicationUser",
"password": "486#@%*@",
"sslOption": "REQUIRE"
}
}
Proprietà | Descrizione |
---|---|
SOURCE_NAME | Il nome dell'istanza di rappresentazione dell'origine da creare. |
REGION | La regione in cui vuoi che risieda l'istanza di rappresentazione dell'origine. |
DATABASE_VERSION | La versione del database in esecuzione sul server esterno. Le opzioni sono MYSQL_5_7 , MYSQL_8_0 o MYSQL_8_4 . |
SOURCE HOST | L'indirizzo IPv4 e la porta del server esterno o l'indirizzo DNS
del server esterno. Se utilizzi un indirizzo DNS, può contenere fino a 60 caratteri. Se il server esterno è ospitato
su Cloud SQL, la porta è 3306 . |
USERNAME | L'account utente di replica sul server esterno. |
PASSWORD | La password dell'account utente di replica. |
BUCKET | Il nome del bucket che contiene il file di dump. Includi solo se stai configurando la replica con un file di dump esistente in un bucket Cloud Storage. |
DUMP_FILE | Un file nel bucket che contiene i dati del server esterno. |
CLIENT_CA_CERT | Il certificato CA sul server esterno. Includi solo se SSL/TLS è utilizzato sul server esterno. |
CLIENT_CERT | Il certificato client sul server esterno. Richiesto solo per l'autenticazione server-client. Includi solo se SSL/TLS viene utilizzato sul server esterno. |
CLIENT_KEY | Il file della chiave privata per il certificato client sul server esterno. Obbligatorio solo per l'autenticazione server-client. Includi solo se SSL/TLS viene utilizzato sul server esterno. |
SSL_OPTION | Indica se la crittografia SSL/TLS viene utilizzata per stabilire una connessione tra il database Microsoft Azure di origine e il database Cloud SQL di destinazione. Puoi specificare i seguenti valori per questo parametro: Il valore predefinito di questo parametro è |
Crea un'istanza di rappresentazione dell'origine
Prima di iniziare questo passaggio, crea un file JSON contenente i dati della richiesta di origine.
Poi, per creare l'istanza di rappresentazione dell'origine in Cloud SQL, apri un terminale ed esegui i seguenti comandi:
curl
gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data @JSON_PATH \ -X POST \ https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances
esempio
gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header 'Content-Type: application/json' \
--data @./source.json \
-X POST \
https://sqladmin.googleapis.com/sql/v1beta4/projects/MyProject/instances
Proprietà | Descrizione |
---|---|
PROJECT_ID | L'ID del tuo progetto in Google Cloud. |
JSON_PATH | Il percorso del file JSON che contiene
i dati della richiesta per il server esterno. |
Aggiorna un'istanza di rappresentazione dell'origine
Se aggiorni i dati della richiesta dal server esterno, puoi aggiornare l'istanza di rappresentazione dell'origine esistente in modo che utilizzi i valori modificati.
Modificare i dati della richiesta
Aggiorna i dati della richiesta in modo da includere tutti i campi modificati. Sono inclusi i campi hostPort
, username
, password
, caCertificate
, clientCertificate
e clientKey
. Dopo aver aggiornato i dati della richiesta, utilizzali in un comando
curl
per aggiornare l'istanza in Cloud SQL.
L'esempio seguente mostra l'aggiornamento dei campi username
e password
con un nome utente e una password diversi:
source.json
{ "name": "SOURCE_NAME", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "onPremisesConfiguration": { "username": "NEW_USERNAME", "password": "NEW_PASSWORD" } }
esempio di importazione gestita
// example of source.json for external server that
// - initiates replication from a Cloud SQL managed import
// - doesn't use SSL/TLS
{
"name": "cloudsql-source-instance",
"region": "us-central1",
"databaseVersion": "MYSQL_5_7",
"onPremisesConfiguration": {
"username": "newReplicationUser",
"password": "525#@%*@"
}
}
esempio di file di dump
// example of source.json for external server that
// - initiates replication from a file
// - uses SSL/TLS
{
"name": "cloudsql-source-instance",
"region": "us-central1",
"databaseVersion": "MYSQL_5_7",
"onPremisesConfiguration": {
"username": "newReplicationUser",
"password": "486#@%*@"
}
}
esempio di importazione personalizzata
// example of source.json for external server that
// - initiates replication from a Cloud SQL custom import
// - doesn't use SSL/TLS
{
"name": "cloudsql-source-instance",
"region": "us-central1",
"databaseVersion": "MYSQL_5_7",
"onPremisesConfiguration": {
"username": "newReplicationUser",
"password": "486#@%*@"
}
}
Proprietà | Descrizione |
---|---|
SOURCE_NAME | Il nome dell'istanza della rappresentazione dell'origine. |
REGION | La regione in cui risiede l'istanza di rappresentazione di origine. |
DATABASE_VERSION | La versione del database in esecuzione sul tuo
server esterno. Le opzioni sono
MYSQL_5_6 , MYSQL_5_7 , MYSQL_8_0 o MYSQL_8_4 .
|
NEW_USERNAME | Il nuovo account utente di replica sul server esterno. |
NEW_PASSWORD | La password del nuovo account. |
Modificare un'istanza di rappresentazione della fonte
Prima di iniziare questo passaggio, crea un file JSON contenente i dati della richiesta modificati.
Poi, per modificare l'istanza di rappresentazione dell'origine in Cloud SQL, apri un terminale ed esegui i seguenti comandi:
curl
gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data @JSON_PATH \ -X PATCH \ https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/SOURCE_NAME
esempio
gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header 'Content-Type: application/json' \
--data @./source.json \
-X PATCH \
https://sqladmin.googleapis.com/sql/v1beta4/projects/MyProject/instances/cloudsql-source-instance
Proprietà | Descrizione |
---|---|
PROJECT_ID | L'ID del tuo progetto in Google Cloud. |
JSON_PATH | Il percorso del file JSON che contiene
i dati della richiesta per il server esterno. |
SOURCE_NAME | Il nome dell'istanza della rappresentazione dell'origine. |
Configura una replica Cloud SQL
La replica Cloud SQL alla fine contiene i dati del server esterno. In questo passaggio, crei i dati della richiesta e li utilizzi in un comando curl
che crea la replica Cloud SQL in Cloud SQL.
Crea i dati della richiesta
I dati della richiesta contengono informazioni di base sul tuo server esterno e sulla replica Cloud SQL in formato JSON. I dati della richiesta possono essere configurati per una replica Cloud SQL su una rete pubblica o privata e devono contenere queste informazioni:
replica.json
{ "settings": { "tier": "TIER", "dataDiskSizeGb": "DISK_SIZE", "ipConfiguration": { "ipv4Enabled": "PUBLIC_IP_STATUS", "privateNetwork": "projects/PROJECT_ID/global/networks/NETWORK_NAME" }, "availabilityType": "AVAILABILITY_TYPE" }, "masterInstanceName": "SOURCE_REPRESENTATION_INSTANCE_NAME", "region": "SOURCE_REGION", "databaseVersion": "DATABASE_VERSION", "name": "REPLICA_NAME" }
esempio
{ "settings": { "tier": "db-custom-4-15360", "dataDiskSizeGb": "100" }, "masterInstanceName": "source-instance", "region": "us-central1", "databaseVersion": "MYSQL_8_0", "name": "replica-instance" }
Proprietà | Descrizione |
---|---|
TIER | Il tipo di macchina per ospitare l'istanza
replica. Se non sai quale tipo di macchina utilizzare,
inizia con db-custom-2-7680 . Se necessario, puoi
modificarne le dimensioni e altri valori supportati
in un secondo momento. |
DISK_SIZE | Le dimensioni dello spazio di archiviazione per la replica Cloud SQL, in GB. |
PUBLIC_IP_STATUS | Determina se all'istanza viene assegnato un indirizzo IP pubblico. Per impostazione predefinita, il valore di questa proprietà è true .
Per disattivare l'assegnazione di un indirizzo IP pubblico per la
replica, imposta il valore su false .
Se il tuo progetto ha
attivato il vincolo della policy dell'organizzazione, per creare la replica Cloud SQL devi impostare il valore della proprietà ipv4Enabled su false .constraints/sql.restrictPublicIp Per saperne di più
sulla disattivazione dell'assegnazione di indirizzi IP pubblici, consulta
Disabilita l'IP pubblico. |
PROJECT_ID | Se la replica Cloud SQL si trova su una rete privata,
includi la proprietà privateNetwork nel file
replica.json .
Per PROJECT_ID, specifica l'ID del tuo progetto in Google Cloud. |
NETWORK_NAME | Il nome della rete privata da utilizzare con la replica Cloud SQL. |
AVAILABILITY_TYPE | Il tipo di disponibilità della replica Cloud SQL. Per impostazione predefinita, il valore è ZONAL . Per rendere
la replica HA, imposta il valore su REGIONAL . Per
scoprire i valori consentiti,
consulta SqlAvailabilityType.
Dopo aver creato una replica HA del server esterno, non puoi modificarla in una replica non HA. Questo vale anche al contrario. Non puoi modificare una replica non HA di un server esterno in una replica HA. Il failover manuale potrebbe comportare una migrazione irrecuperabile se tentato quando l'istanza sta ancora caricando i dati iniziali o un tempo di inattività temporaneo se l'istanza sta già replicando dalla sorgente. Controlla lo stato della replica. |
SOURCE_REPRESENTATION_INSTANCE_NAME | Il nome dell'istanza della rappresentazione dell'origine. |
SOURCE_REGION | La regione assegnata all'istanza di rappresentazione dell'origine. |
DATABASE_VERSION | La versione del database da utilizzare con la replica Cloud SQL. Le opzioni per questa versione sono
MYSQL_5_6 , MYSQL_5_7 , MYSQL_8_0 o MYSQL_8_4 .
Corrisponda alla versione del database in esecuzione sul server esterno o imposta il valore su una versione successiva al massimo. |
REPLICA_NAME | Il nome della replica Cloud SQL da creare. |
crea la replica Cloud SQL
Prima di iniziare questo passaggio, crea un file JSON contenente i dati della richiesta di replica. Poi, per creare una replica Cloud SQL, apri un terminale Cloud Shell ed esegui questi comandi:
curl
gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data @JSON_PATH \ -X POST \ https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances
esempio
gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data @./replica.json \ -X POST \ https://sqladmin.googleapis.com/sql/v1beta4/projects/MyProject/instances
Proprietà | Descrizione |
---|---|
PROJECT_ID | L'ID del tuo progetto in Google Cloud, che deve essere uguale a quello dell'istanza di origine. |
JSON_PATH | Il percorso del file JSON contenente i dati della richiesta per la replica Cloud SQL. |
Verificare la configurazione
Per assicurarti che le istanze siano state configurate correttamente, vai alla pagina Istanze Cloud SQL.
Dovresti vedere l'istanza di rappresentazione dell'origine e la replica Cloud SQL in un elenco simile al seguente:
ID istanza | Tipo | IP pubblico |
---|---|---|
(-) source-representation-instance | Database esterno principale | 10.68.48.3:3306 |
replica-instance | Replica di lettura del database | 34.66.48.59 |
Assicurati inoltre di disporre dell'autorizzazione cloudsql.instances.migrate
sulla replica Cloud SQL. Questa autorizzazione è inclusa nei ruoli IAM cloudsql.admin
o cloudsql.editor
.
Aggiungere utenti alla replica Cloud SQL
Non puoi importare gli account utente del database dal server esterno, ma puoi crearli su una replica Cloud SQL. Esegui questa operazione prima di eseguire la replica dal server esterno.
Ottenere l'indirizzo IP in uscita della replica Cloud SQL
Puoi utilizzare l'indirizzo IP in uscita della replica Cloud SQL per creare una connessione sicura tra il server esterno e la replica Cloud SQL. Non ti verrà addebitato alcun costo per questo indirizzo IP.
Console
Per ottenere l'indirizzo IP in uscita per la replica:
gcloud
Per ottenere l'indirizzo IP in uscita per la replica, esegui questo comando:
gcloud sql instances describe REPLICA_NAME --format="default(ipAddresses)"
Proprietà | Descrizione |
---|---|
REPLICA_NAME | Il nome della replica Cloud SQL di cui vuoi recuperare l'indirizzo IP pubblico in uscita. |
Consenti le connessioni in entrata sul server esterno
Per la riuscita della replica, la replica Cloud SQL deve connettersi al server esterno. Devi configurare il firewall di rete per il server esterno in modo che accetti connessioni dall'indirizzo IP in uscita della replica Cloud SQL se si verificano le seguenti condizioni:
Per connetterti alla replica Cloud SQL, utilizza l'indirizzo IP principale della replica. Questo indirizzo IP viene visualizzato nella console Google Cloud .
Aggiorna l'istanza di rappresentazione dell'origine per consentire la replica nella replica Cloud SQL
Dopo aver configurato l'istanza di rappresentazione dell'origine per la replica Cloud SQL, potrebbe essere necessario aggiornare l'istanza di rappresentazione dell'origine. Ad esempio, questi scenari richiedono un aggiornamento delle configurazioni:
Inizializza la replica Cloud SQL
Esistono tre opzioni per eseguire il caricamento iniziale dei dati dal server esterno nella replica Cloud SQL:
Quale opzione è più adatta a te?
Monitora replica
Quando la replica Cloud SQL termina il caricamento iniziale dei dati, si connette al server esterno e applica tutti gli aggiornamenti apportati dopo l'operazione di esportazione. Conferma lo stato della replica.
È importante controllare lo stato della replica prima di promuovere la replica a un'istanza autonoma. Se la procedura di replica non viene completata correttamente, una replica promossa non contiene tutte le modifiche del server esterno.
Se il ritardo di replica non tende a 0,
intervieni per risolvere il problema.
Ti consigliamo di controllare queste metriche: /postgresql/external_sync/initial_sync_complete
,
postgresql/external_sync/max_replica_byte_lag
e
database/replication/state
. Visualizza l'elenco delle metriche Cloud SQL.
Dopo che la replica Cloud SQL ha recuperato il server esterno e non si verifica alcun ritardo di replica sulla replica Cloud SQL, connettiti al database. Esegui i comandi del database appropriati per assicurarti che i contenuti siano quelli previsti rispetto al server esterno. Conserva il server esterno fino al completamento delle convalide necessarie.
Configurare una replica a cascata
Dopo la migrazione, puoi creare repliche di lettura a cascata nella replica Cloud SQL prima di promuoverla.
Puoi creare repliche a cascata per l'istanza Cloud SQL solo se utilizzi la replica GTID.Per creare una replica in cascata, esegui questi comandi:
Console
gcloud
gcloud sql instances create REPLICA_NAME \ --master-instance-name=PARENT_REPLICA_NAME \
curl
Promuovi la replica
Promuovi la tua replica seguendo questi passaggi: