In questa pagina viene descritto come configurare il server esterno per la replica Cloud SQL, creare un'istanza di rappresentazione dell'origine su Cloud SQL e di replicare i dati in Cloud SQL. Devi seguire tutti i passaggi su questa pagina prima di procedere con i passaggi di replica.
Un'alternativa alla procedura descritta in questa pagina è la Database Migration Service, che offre replica continua o migrazione dei database una tantum da un ambiente a Cloud SQL.
Prima di iniziare
Terminologia
Server esterno. Il server MySQL esterno a Cloud SQL da cui vuoi replicare i dati. È denominata anche fonte o il server di database esterno. Può essere un altro Cloud SQL o qualsiasi altro server di database, come server on-premise, Amazon Relational Database Service (RDS) e così via.
Istanza di rappresentazione dell'origine. Simulazione di un'istanza Cloud SQL che rappresenta il server esterno alla replica di Cloud SQL. È visibile nella console Google Cloud e ha l'aspetto di una un'istanza Cloud SQL, ma non contiene dati, richiede configurazione o manutenzione, né influire sulla fatturazione.
Replica Cloud SQL. L'istanza Cloud SQL che replica dal server esterno. Chiamato anche primario esterno di lettura.
Account utente di replica. L'account utente MySQL sull'interfaccia utente con autorizzazioni sufficienti per consentire la replica tra un server esterno e la replica Cloud SQL.
Importazione gestita. La procedura di importazione dei dati direttamente dall'istanza il server web alla replica Cloud SQL. In questa situazione, Cloud SQL si connette al server esterno utilizzando l'account utente di replica esegue il dump direttamente sul server esterno per importare i dati replica Cloud SQL.
Configura un progetto Google Cloud
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Attiva l'API Cloud SQL Admin.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Attiva l'API Cloud SQL Admin.
-
Assicurati di avere i ruoli Amministratore Cloud SQL, Amministratore Storage e con i ruoli di Visualizzatore Compute per il tuo account utente.
Installa Google Cloud SDK
Per configurare la replica, installa Google Cloud SDK per il server esterno. Ti consigliamo di installare l'SDK a meno che non sia già installato altrove.
Configura il server esterno per la replica
Elenco di controllo per il server esterno
Assicurati che MySQL 5.5, 5.6, 5.7 o 8.0 sia installato sul server esterno. MySQL Community Edition, Cloud SQL per MySQL, Amazon Aurora e MySQL su Amazon RDS.
- Devi utilizzare una versione principale di MySQL sulla tua replica Cloud SQL uguale o superiore alla versione di MySQL in esecuzione sul tuo a un server esterno.
- Se MySQL 5.5 è installato sul server esterno, GTID non è supportato.
Assicurati che i log binari siano abilitati e che:
- Logging binario basato su riga .
- I log binari vengono conservati per un periodo sufficientemente lungo da supportare la migrazione del database. Generalmente una settimana è sufficiente.
Controlla se il server esterno ha GTID abilitato. Questo influisce sulla passaggi da seguire per configurare la replica.
Prendi nota se il server esterno dispone del blocco di lettura globale autorizzazioni aggiuntive. Questa operazione influisce sui passaggi da seguire per configurare la replica dei dati.
Se la replica Cloud SQL è abilitata con un indirizzo IP privato perché in uscita privata L'indirizzo IP non è statico, configura il firewall del server esterno in modo da consentire intervallo IP interno allocato per l'accesso privato ai servizi della rete VPC che Cloud SQL utilizzata dalla replica come rete privata.
Il firewall del server di database di origine deve essere configurato in modo da consentire l'intera intervallo IP interno allocato per la connessione privata ai servizi della rete VPC che l'istanza di destinazione Cloud SQL utilizza come Campo privateNetwork delle sue impostazioni 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 Connessione privata ai servizi.
Se il server esterno contiene clausole
DEFINER
(viste, eventi, trigger o stored procedure), a seconda dell'ordine di quando eseguite queste istruzioni, la replica potrebbe non riuscire. Impara scopri di più suDEFINER
utilizzo e potenziali soluzioni alternative in Cloud SQL.InnoDB è l'unico motore di archiviazione supportato in Cloud SQL. Migrazione in corso con MyISAM potrebbe causare incoerenze nei dati e richiedere la convalida dei dati. Per Per saperne di più, consulta Convertire tabelle da MyISAM a InnoDB nella documentazione di MySQL.
Configura la conservazione dei log binari
Devi configurare il server esterno in modo da conservare i log binari per almeno 24 ore.
Community MySQL
Se il tuo server esterno utilizza MySQL Community Edition, puoi utilizza questi comandi MySQL per aggiornare le impostazioni di conservazione dei log binari.
MySQL 5.5 - 5.7:
expire_logs_days
MySQL 8.0:
expire_logs_days
binlog_expire_logs_seconds
Cloud SQL per MySQL
Se il tuo server esterno utilizza Cloud SQL per MySQL, per impostazione predefinita, i log binari vengono conservati per sette giorni. Puoi modifica questa impostazione.
Amazon RDS e Aurora
Se il server esterno è un'istanza Amazon RDS, puoi utilizzare questo per aggiornare le impostazioni di conservazione dei log binari:
call mysql.rds_set_configuration('binlog retention ', HOURS);
Proprietà | Descrizione |
---|---|
ORE | Numero totale di ore di log binari per Amazon RDS dell'istanza da conservare. |
Per ulteriori informazioni, consulta mysql.rds_set_configuration.
Crea un account utente di replica
Un account utente MySQL dedicato alla gestione della replica su Cloud SQL sul server esterno. Questo account utente deve per gestire la replica. A seconda dell'approccio alla migrazione che utilizzi, potrebbe dover concedere le autorizzazioni all'utente in un secondo momento.
Per aggiungere un account utente di replica, apri un 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 per l'account utente di replica. |
HOST | Imposta l'opzione su % per accettare tutte le connessioni da qualsiasi host.
In un passaggio successivo, questa impostazione verrà modificata per accettare solo
dalla replica Cloud SQL. |
configura un'istanza di rappresentazione dell'origine
L'istanza di rappresentazione dell'origine fa riferimento al server esterno. it
contiene solo i dati della richiesta dal server esterno. Crea i dati della richiesta
e utilizzarlo in un comando curl
che crea l'istanza di rappresentazione di origine
in Cloud SQL.
Crea i dati della richiesta
I dati della richiesta contengono informazioni di base sul server esterno in formato JSON. I dati della richiesta possono essere configurati Replica Cloud SQL su una rete pubblica o privata e deve 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" } }
esempio di importazione gestita
// example of source.json for external server that
// - initiates replication from a Cloud SQL managed import
// - doesn't use SSL/TSL
{
"name": "cloudsql-source-instance",
"region": "us-central1",
"databaseVersion": "MYSQL_5_7",
"onPremisesConfiguration": {
"hostPort": "192.0.2.0:3306",
"username": "replicationUser",
"password": "486#@%*@"
}
}
esempio di file di dump
// example of source.json for external server that
// - initiates replication from a file
// - uses SSL/TSL
{
"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"
}
}
esempio di importazione personalizzata
// example of source.json for external server that
// - initiates replication from a Cloud SQL custom import
// - doesn't use SSL/TSL
{
"name": "cloudsql-source-instance",
"region": "us-central1",
"databaseVersion": "MYSQL_5_7",
"onPremisesConfiguration": {
"hostPort": "192.0.2.0:3306",
"username": "replicationUser",
"password": "486#@%*@"
}
}
Proprietà | Descrizione |
---|---|
SOURCE_NAME | Il nome dell'istanza di rappresentazione dell'origine per creare. |
REGION | La regione in cui vuoi che vengano di origine della rappresentazione di origine. |
DATABASE_VERSION | La versione del database in esecuzione
a un server esterno. Le opzioni sono
MYSQL_5_6 , MYSQL_5_7 o MYSQL_8_0 .
. |
SOURCE HOST | L'indirizzo e la porta IPv4 per
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 sull'istanza o server web. |
PASSWORD | La password per l'account utente di replica. |
BUCKET | Il nome del bucket che contiene il file di dump. Includi solo se stai configurando la replica con di un file di dump esistente in un bucket Cloud Storage. |
DUMP_FILE | Un file nel bucket che contiene i dati dal server esterno. |
CLIENT_CA_CERT | Il certificato CA sul server esterno. Includi solo se viene utilizzato SSL/TLS nella a un server esterno. |
CLIENT_CERT | Il certificato client sul server esterno. Obbligatorio solo per l'autenticazione client-server. Includi solo se viene utilizzato SSL/TLS nella a un server esterno. |
CLIENT_KEY | Il file della chiave privata per il client sul server esterno. Obbligatorie solo per l'autenticazione server-client. Includi solo se viene utilizzato SSL/TLS nella a un server esterno. |
crea un'istanza di rappresentazione dell'origine
Prima di iniziare questo passaggio, crea un file JSON contenente i dati della richiesta di origine.
Quindi, per creare l'istanza di rappresentazione dell'origine in Cloud SQL, apri una nel terminale 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 @./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 l'oggetto
richiedere dati per il server esterno. |
Aggiorna un'istanza di rappresentazione dell'origine
Se aggiorni i dati della richiesta dall'esterno puoi aggiornare l'istanza di rappresentazione dell'origine esistente in utilizzano i valori modificati.
Modifica i dati della richiesta
Aggiorna i dati della richiesta in modo da includere tutti i campi che sono stati modificati. Sono inclusi i campi hostPort
, username
, password
, caCertificate
, clientCertificate
e clientKey
. Dopo aver aggiornato i dati della richiesta, utilizzali in una
curl
per aggiornare l'istanza in Cloud SQL.
L'esempio seguente mostra l'aggiornamento di 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/TSL
{
"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/TSL
{
"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/TSL
{
"name": "cloudsql-source-instance",
"region": "us-central1",
"databaseVersion": "MYSQL_5_7",
"onPremisesConfiguration": {
"username": "newReplicationUser",
"password": "486#@%*@"
}
}
Proprietà | Descrizione |
---|---|
SOURCE_NAME | Il nome dell'istanza di rappresentazione dell'origine. |
REGION | La regione in cui un'istanza di rappresentazione di origine. |
DATABASE_VERSION | La versione del database in esecuzione
a un server esterno. Le opzioni sono
MYSQL_5_6 , MYSQL_5_7 o MYSQL_8_0 .
. |
NEW_USERNAME | Il nuovo account utente di replica sull'esterno o server web. |
NEW_PASSWORD | La password del nuovo account. |
Modifica un'istanza di rappresentazione dell'origine
Prima di iniziare questo passaggio, crea un file JSON contenente i dati della richiesta modificata.
Quindi, per modificare l'istanza di rappresentazione dell'origine in Cloud SQL, apri una nel terminale 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 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 l'oggetto
richiedere dati per il server esterno. |
SOURCE_NAME | Il nome dell'istanza di rappresentazione dell'origine. |
configura una replica Cloud SQL
La replica Cloud SQL contiene infine i dati
il server esterno. In questo passaggio creerai la richiesta
dati e usarli in un comando curl
che crea
la replica di Cloud SQL in Cloud SQL.
Crea i dati della richiesta
I dati della richiesta contengono informazioni di base sui tuoi e la replica Cloud SQL in formato JSON. I dati della richiesta possono essere configurato per una replica Cloud SQL su una rete pubblica o privata e deve 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_5_7", "name": "replica-instance" }
Proprietà | Descrizione |
---|---|
TIER | Il tipo di macchina su cui ospitare la tua replica
in esecuzione in un'istanza Compute Engine. Se non sai quale tipo di macchina utilizzare,
iniziano con db-custom-2-7680 . Puoi
ne modificare le dimensioni e altri valori supportati
in un secondo momento, se necessario. |
DISK_SIZE | La dimensione dello spazio di archiviazione della replica Cloud SQL, in GB. |
PUBLIC_IP_STATUS | Determina se l'istanza è
a un indirizzo IP pubblico. Per impostazione predefinita,
di questa proprietà è true .
Per disattivare l'assegnazione di un indirizzo IP pubblico per
replica, imposta il valore su false .
Se il tuo progetto ha
l'organizzazione constraints/sql.restrictPublicIp
norme
per creare l'istanza Cloud SQL
devi impostare il valore dell'attributo ipv4Enabled
in false . Per ulteriori informazioni
sulla disattivazione dell'assegnazione degli indirizzi IP pubblici, vedi
Disabilita l'IP pubblico. |
PROJECT_ID | Se la replica Cloud SQL si trova su una rete privata,
quindi includi la proprietà privateNetwork nel
replica.json file.
Per PROJECT_ID, specifica l'ID del tuo
progetto in Google Cloud. |
NETWORK_NAME | Il nome della rete privata da utilizzare con replica Cloud SQL. |
AVAILABILITY_TYPE | Il tipo di disponibilità di Cloud SQL
replica. Per impostazione predefinita, il valore è ZONAL . Per rendere
sull'alta disponibilità della replica, imposta il valore su REGIONAL . A
sui valori consentiti,
consulta SqlAvailabilityType.
Dopo aver creato una replica ad alta disponibilità del server esterna, non puoi modificarla in una replica non ad alta disponibilità. Questo è vero anche al contrario. Non puoi modificare una replica non ad alta disponibilità del server esterno su una replica ad alta disponibilità. Il failover manuale potrebbe causare problemi se si tenta di eseguire la migrazione quando l'istanza i dati iniziali o quelli temporanei tempo di inattività se l'istanza è già in fase di replica dall'origine. Controlla il stato della replica. |
SOURCE_REPRESENTATION_INSTANCE_NAME | Il nome della fonte un'istanza di rappresentazione. |
SOURCE_REGION | La regione assegnata alla rappresentazione di origine in esecuzione in un'istanza Compute Engine. |
DATABASE_VERSION | La versione del database da utilizzare con
replica Cloud SQL. Le opzioni per questa versione sono
MYSQL_5_6 , MYSQL_5_7 o MYSQL_8_0 .
Abbina la versione del database in esecuzione sul tuo server esterno
server o imposta il valore su un valore non superiore a
solo per una versione successiva. |
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. Quindi, 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, deve essere uguale a quello dell'istanza di origine. |
JSON_PATH | Il percorso del file JSON che contiene la richiesta
per la replica Cloud SQL. |
Verificare la configurazione
Per assicurarti che le istanze siano configurate correttamente, vai a Pagina Istanze Cloud SQL.
Dovresti vedere l'istanza di rappresentazione dell'origine e Cloud SQL replica, in una scheda simile alla seguente:
ID istanza | Tipo | IP pubblico |
---|---|---|
(-) rappresentazione-origine-istanza | Primario esterno al database | 10.68.48.3:3306 |
istanza-replica | Replica di lettura database | 34.66.48.59 |
Assicurati inoltre di avere l'autorizzazione cloudsql.instances.migrate
per
la replica di Cloud SQL. Questa autorizzazione è inclusa in cloudsql.admin
o cloudsql.editor
ruoli IAM.
Aggiungi utenti alla replica Cloud SQL
Non puoi importare account utente di database dal server esterno, ma puoi crearle su una replica Cloud SQL. Esegui questa operazione prima di eseguire la replica dal server esterno.
Ottieni l'indirizzo IP in uscita della replica Cloud SQL
Puoi utilizzare l'indirizzo IP in uscita della replica Cloud SQL per creare connessione sicura tra il server esterno e replica Cloud SQL. Non ti verrà addebitato alcun costo per questo indirizzo IP.
Console
Per ottenere l'indirizzo IP in uscita per la replica, segui questi passaggi:
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
Accanto all'indirizzo IP pubblico della replica Cloud SQL, tieni premuto il puntatore sopra la descrizione comando Ulteriori 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.
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 connessioni in entrata sul server esterno
La replica Cloud SQL deve connettersi al server esterno affinché la replica venga completata correttamente. Devi configurare il firewall di rete per per accettare connessioni dal server esterno Indirizzo IP in uscita della replica Cloud SQL se si applicano le seguenti condizioni:
- Il server esterno è protetto da un firewall o da un'altra rete delle risorse.
- La replica Cloud SQL utilizza un IP pubblico.
Per connetterti alla replica Cloud SQL, utilizza il protocollo all'indirizzo IP principale. 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 Cloud SQL potrebbe essere necessario aggiornare l'istanza di rappresentazione dell'origine. Ad esempio, richiedono un aggiornamento delle configurazioni:
- L'host, la porta o l'IP del server esterno cambia.
- Vuoi utilizzare un altro utente di replica MySQL.
- La password dell'utente della replica MySQL cambia.
- I certificati SSL utilizzati per connettersi in modo sicuro una modifica al server esterno.
Esegui il seed della replica Cloud SQL
Esistono tre opzioni per eseguire il caricamento iniziale dei dati nella replica di Cloud SQL:
- Un'importazione gestita utilizza un servizio che estrae i dati dall'interfaccia e lo importa direttamente nell'istanza Cloud SQL. Cloud SQL consiglia questa opzione. Devi utilizzare questa opzione se il tuo server esterno non utilizza la replica GTID (Global Transaction Identifier). Per ulteriori informazioni le informazioni, vedi Utilizzo di un'importazione gestita per configurare la replica da database esterni.
- Un file dump richiede la creazione di un file 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, vedi Utilizzo di un file di dump per configurare la replica da database esterni.
- Un'importazione personalizzata richiede la creazione di un'istanza Cloud SQL principale, eseguire un'importazione di dati personalizzata usando gli strumenti che preferisci, farla retrocedere a un come replica Cloud SQL e poi configurare la replica esterna del server. Questo funziona al meglio per le migrazioni di database con più TB; devi però usare GTID, la replica dei dati. Per ulteriori informazioni, vedi Utilizzo di un'importazione personalizzata per configurare la replica da database esterni di grandi dimensioni.
Qual è l'opzione giusta per te?
Monitora replica
Quando la replica Cloud SQL termina il caricamento iniziale dei dati, si connette il server esterno e applica tutti gli aggiornamenti apportati dopo l'esportazione operativa. Verifica lo stato della replica.
È importante controllare lo stato della replica prima di promuovere su un'istanza autonoma. Se il processo di replica non va a buon fine completato, una replica promossa non ha tutte le modifiche a un server esterno.
Se il ritardo di replica non tende verso 0,
adottare le misure necessarie per risolvere il problema.
Ti consigliamo di controllare le seguenti metriche: /postgresql/external_sync/initial_sync_complete
,
postgresql/external_sync/max_replica_byte_lag
e
database/replication/state
. Visualizza l'elenco delle metriche di Cloud SQL.
Una volta che la replica di Cloud SQL ha messo in contatto il server esterno non esiste un ritardo di replica sulla replica Cloud SQL, connettiti al tuo per configurare un database. Esegui i comandi appropriati del database per assicurarti che i contenuti rispetto al server esterno. Mantieni i tuoi dati server web fino al completamento delle convalide necessarie.
Configura una replica a cascata
Dopo la migrazione, puoi creare repliche di lettura a cascata sotto la replica Cloud SQL prima che promuove la replica Cloud SQL.
Puoi creare repliche a cascata per la tua istanza Cloud SQL solo se utilizzi Replica GTID.Per creare una replica a cascata, esegui questi comandi:
Console
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Per MySQL 5.7 o versioni successive, abilita la replica.
- Fai clic sulla scheda Repliche per la replica che agirà da padre per la replica che vuoi creare.
- Fai clic su Crea replica.
- Nella pagina Crea replica di lettura, aggiorna l'ID istanza ed eventuali altre opzioni di configurazione, incluso il nome, regione e zona.
- Fai clic su Crea.
Cloud SQL crea una replica. Tornerai alla pagina dell'istanza e la replica principale.
- Segui i passaggi 4-6 per ogni nuova replica a cascata che vuoi creare.
gcloud
- Se utilizzi MySQL 5.7 o versioni successive, abilita i binlog per l'istanza principale della nuova replica:
gcloud sql instances patch --enable-bin-log --project=cascade-replica PARENT_REPLICA_NAME
Sostituisci PARENT_REPLICA_NAME con il nome della replica padre. - Crea la nuova replica specificando la replica Cloud SQL come istanza principale tramite il flag
--master-instance-name
:gcloud sql instances create REPLICA_NAME \ --master-instance-name=PARENT_REPLICA_NAME \
Sostituisci quanto segue:
- .
- REPLICA_NAME: l'ID univoco della replica che stai creando
- PARENT_REPLICA_NAME: il nome della replica Cloud SQL
- Dopo aver creato la replica, puoi vedere che le modifiche apportate all'istanza principale vengono replicate in tutte le repliche nella catena di repliche a cascata.
curl
- Se utilizzi MySQL 5.7 o versioni successive, abilita il logging binario:
Per abilitare il logging binario, salva il seguente JSON in un file denominato request.JSON, quindi richiama il comando curl per abilitare il logging binario.
{ "settings": { "backupConfiguration": { "enabled": false, "binaryLogEnabled": true } } }
- Per creare una replica nella replica padre, 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
Promuovi la tua replica seguendo questi passaggi:
- Promuovi la replica a istanza principale. Tieni presente che GTID e i log binari sono attivi e che i backup pianificati sono abilitati nella replica promossa.
- Aggiungi repliche di lettura all'istanza.
- (Facoltativo) Configura la tua istanza per l'alta disponibilità.
Per evitare tempi di inattività aggiuntivi, puoi abilitare l'alta disponibilità durante la configurazione di una replica impostando
AVAILABILITY_TYPE
suREGIONAL
.
Passaggi successivi
- Scopri come utilizzare un'importazione personalizzata per configurare la replica da file esterni di grandi dimensioni o Microsoft SQL Server.
- 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.