In questa pagina viene descritto come configurare e utilizzare un'importazione gestita per i dati quando replicata da un server esterno a Cloud SQL.
Devi completare tutti i passaggi riportati in questa pagina. Al termine, puoi amministrare e monitorare l'istanza di rappresentazione di origine allo stesso modo a qualsiasi altra istanza Cloud SQL.
Prima di iniziare
Prima di iniziare, completa questi passaggi:
Verifica le impostazioni di replica
Al termine della configurazione, assicurati che la replica Cloud SQL replicare dal server esterno.
Le seguenti impostazioni di sincronizzazione esterna devono essere corrette.
- Connettività tra la replica Cloud SQL e il server esterno
- Privilegi utente di replica
- Compatibilità delle versioni
- La replica di Cloud SQL non è già in fase di replica
Per verificare queste impostazioni, apri un terminale Cloud Shell e inserisci quanto segue :
curl
gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header 'Content-Type: application/json' \
--data '{
"syncMode": "SYNC_MODE",
"syncParallelLevel": "SYNC_PARALLEL_LEVEL"
}' \
-X POST \
https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_INSTANCE_ID/verifyExternalSyncSettings
esempio
gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header 'Content-Type: application/json' \
--data '{
"syncMode": "online",
"syncParallelLevel": "optimal"
}' \
-X POST \
https://sqladmin.googleapis.com/sql/v1beta4/projects/myproject/instances/myreplica/verifyExternalSyncSettings
Queste chiamate restituiscono un elenco di tipo sql#externalSyncSettingErrorList
.
Se l'elenco è vuoto, non ci sono errori. Una risposta senza errori ha il seguente aspetto:
{ "kind": "sql#externalSyncSettingErrorList" }
Proprietà | Descrizione |
---|---|
SYNC_MODE | Assicurati di poter mantenere la replica Cloud SQL e il server esterno
sincronizzati dopo la configurazione della replica. Le modalità di sincronizzazione includono EXTERNAL_SYNC_MODE_UNSPECIFIED , ONLINE e OFFLINE . |
SYNC_PARALLEL_LEVEL | Verifica l'impostazione che controlla la velocità di trasferimento dei dati delle tabelle di un database. Sono disponibili i seguenti valori:
Nota: il valore predefinito di questo parametro è |
PROJECT_ID | L'ID del tuo progetto Google Cloud. |
REPLICA_INSTANCE_ID | L'ID della replica Cloud SQL. |
Avvia la replica sul server esterno
Dopo aver verificato di poter replicare dal server esterno, avvia la replica. La velocità per l'esecuzione della replica per il processo di importazione iniziale è fino a 500 GB all'ora. Tuttavia, questa velocità può variare in base al livello della macchina, alle dimensioni del disco dati, alla velocità effettiva di rete e alla natura del database.
curl
gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header 'Content-Type: application/json' \
--data '{
"syncMode": "SYNC_MODE",
"skipVerification": "SKIP_VERIFICATION",
"syncParallelLevel": "SYNC_PARALLEL_LEVEL"
}' \
-X POST \
https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_INSTANCE_ID/startExternalSync
esempio
gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header 'Content-Type: application/json' \
--data '{
"syncMode": "online",
"syncParallelLevel": "optimal"
}' \
-X POST \
https://sqladmin.googleapis.com/sql/v1beta4/projects/MyProject/instances/replica-instance/startExternalSync
Proprietà | Descrizione |
---|---|
SYNC_MODE | Verifica di poter mantenere la replica Cloud SQL e il server esterno sincronizzati dopo la configurazione della replica. |
SKIP_VERIFICATION | Indica se saltare il passaggio di verifica integrata prima di sincronizzare i dati. Questo parametro è consigliato solo se hai già verificato le impostazioni di replica. |
SYNC_PARALLEL_LEVEL | Fornisci un'impostazione che controlla la velocità di trasferimento dei dati delle tabelle di un database. Sono disponibili i seguenti valori:
Nota: il valore predefinito di questo parametro è |
PROJECT_ID | L'ID del tuo progetto Google Cloud. |
REPLICA_INSTANCE_ID | L'ID della replica Cloud SQL. |
Monitoraggio della migrazione
Una volta avviata la replica dal server esterno, devi monitorare la replica dei dati. Per saperne di più, vedi Monitoraggio della replica. A questo punto potrai completare la migrazione.
Risoluzione dei problemi
Prendi in considerazione le seguenti opzioni per la risoluzione dei problemi:
Problema | Risoluzione dei problemi |
---|---|
La replica di lettura non è stata avviata al momento della creazione. | Probabilmente contiene un errore più specifico nei file di log. Esamina i log in Cloud Logging per trovare l'errore effettivo. |
Impossibile creare la replica di lettura: errore invalidFlagValue. | Uno dei flag nella richiesta non è valido. Potrebbe essere una segnalazione
fornito esplicitamente o uno impostato su un valore predefinito.
Innanzitutto, verifica che il valore del flag Se il flag |
Impossibile creare la replica di lettura: errore sconosciuto. | Probabilmente contiene un errore più specifico nei file di log.
Esamina i log in
Cloud Logging per trovare l'errore effettivo.
Se l'errore è: |
Il disco è pieno. | La dimensione del disco dell'istanza principale può diventare piena durante la creazione della replica. Modifica l'istanza principale per eseguirne l'upgrade a una dimensione del disco maggiore. |
Lo spazio su disco aumenta in modo significativo. | Uno slot non utilizzato attivamente per monitorare i dati fa sì che PostgreSQL
mantenere i segmenti WAL a tempo indeterminato, causando l'aumento indefinita dello spazio su disco. Se utilizzi
le funzionalità di decodifica e replica logica in Cloud SQL, gli slot di replica
creati e eliminati automaticamente. Gli slot di replica non utilizzati possono essere rilevati eseguendo una query sul
pg_replication_slots
visualizzazione di sistema e filtro nella colonna active . Non utilizzato
possono essere rimossi per rimuovere i segmenti WAL utilizzando
Comando pg_drop_replication_slot .
|
L'istanza di replica utilizza troppa memoria. | La replica utilizza la memoria temporanea per memorizzare nella cache la lettura richiesta più spesso
operazioni, il che può portarlo a utilizzare più memoria rispetto all'istanza principale.
Riavvia l'istanza di replica per recuperare lo spazio di memoria temporaneo. |
Replica interrotta. | È stato raggiunto il limite massimo di spazio di archiviazione e l'archiviazione automatica
L'aumento non è abilitato.
Modifica l'istanza per abilitare |
Il ritardo della replica è costantemente elevato. | Il carico di scrittura è troppo elevato per essere gestito dalla replica. Ritardo della replica
si verifica quando il thread SQL su una replica non riesce a stare al passo
thread IO. Alcuni tipi di query o carichi di lavoro possono causare problemi
un ritardo di replica elevato permanente per un determinato schema. Alcuni dei tipici
Le cause del ritardo di replica sono:
Ecco alcune possibili soluzioni:
|
Errori durante la ricreazione degli indici in PostgreSQL 9.6. | PostgreSQL ti informa che devi ricreare
specifico indice. Questa operazione può essere eseguita solo sull'istanza principale. Se
una nuova istanza di replica, presto verrà visualizzato di nuovo lo stesso errore.
Indici hash
non vengono propagate alle repliche nelle versioni PostgreSQL precedenti alla 10.
Se devi utilizzare indici hash, esegui l'upgrade a PostgreSQL 10 o versioni successive. Altrimenti, Se vuoi usare anche le repliche, non usare indici hash in PostgreSQL 9.6. |
La query sull'istanza principale è sempre in esecuzione. | Dopo aver creato una replica, è previsto che la query SELECT * from pg_stat_activity where state = 'active' and pid = XXXX and username = 'cloudsqlreplica' venga eseguita continuativamente sull'istanza principale.
|
La creazione della replica non riesce con il timeout. | Le transazioni non impegnate a lunga esecuzione sull'istanza principale possono causare
in caso di errore durante la creazione della replica di lettura.
Ricrea la replica dopo aver interrotto tutte le query in esecuzione. |
Se l'istanza principale e la replica hanno dimensioni vCPU diverse, potrebbero verificarsi problemi di prestazioni delle query, poiché lo strumento di ottimizzazione delle query prende in considerazione le dimensioni delle vCPU. |
Per risolvere il problema, completa i seguenti passaggi:
Se si tratta di una query specifica, modificala. Ad esempio, puoi modificare l'ordine dei join per vedere se il rendimento migliora. |
Esamina i log di replica
Quando verifichi le impostazioni di replica, i log vengono prodotto.
Per visualizzare questi log:
Vai al visualizzatore log nella console Google Cloud.
- Seleziona la replica Cloud SQL dal menu a discesa Istanza.
- Seleziona il file di log
replication-setup.log
.
Se la replica Cloud SQL non riesce a connettersi al server esterno, conferma quanto segue:
- Qualsiasi firewall sul server esterno è configurato per consentire le connessioni dalla replica di Cloud SQL indirizzo IP in uscita.
- La configurazione SSL/TLS è corretta.
- Utente, host e password di replica sono corretti.
Passaggi successivi
- Scopri di più sull'aggiornamento di un'istanza.
- Scopri di più sulla gestione delle repliche.
- Scopri di più sul monitoraggio delle istanze.
- Scopri come promuovere la tua replica Cloud SQL.