Best practice per l'importazione e l'esportazione
Di seguito sono riportate le best practice da considerare durante l'importazione e l'esportazione dei dati:
- Non utilizzare bucket Cloud Storage Requester Pays
- Ridurre al minimo l'impatto delle esportazioni sul rendimento
- Utilizzare i flag corretti quando crei un file di dump SQL
- Comprimi i dati per ridurre i costi.
- Ridurre i processi di importazione ed esportazione di lunga durata
- Verificare il database importato
Non utilizzare bucket Cloud Storage Requester Pays
Non puoi utilizzare un bucket Cloud Storage con l'opzione Richiedente paga abilitata per importazioni ed esportazioni da Cloud SQL.
Ridurre al minimo l'impatto sulle prestazioni delle esportazioni
Per un'esportazione standard da Cloud SQL, l'esportazione viene eseguita mentre il database è online. Se i dati esportati sono più piccoli, l'impatto sarà probabilmente minimo. Tuttavia, quando sono presenti database di grandi dimensioni o oggetti di grandi dimensioni, come BLOB nel database, esiste la possibilità che l'esportazione peggiori le prestazioni del database. Ciò potrebbe influire sul tempo necessario per eseguire query e operazioni di database. Una volta avviata un'esportazione, non è possibile interromperla se il database inizia a rispondere lentamente.
Per evitare risposte lente durante un'esportazione, puoi:
Esegui l'esportazione da una replica di lettura. Questa potrebbe essere una buona opzione se esegui esportazioni di frequente (ogni giorno o più spesso), ma la quantità di dati esportati è ridotta. Per eseguire un'esportazione da una replica di lettura, utilizza le funzioni di esportazione di Google Cloud Console,
gcloud
o dell'API REST nell'istanza della replica di lettura. Per saperne di più su come creare e gestire le repliche di lettura, consulta Creare repliche di lettura.Utilizza l'esportazione serverless. Con l'esportazione serverless, Cloud SQL crea un'istanza temporanea separata per trasferire l'operazione di esportazione. Il trasferimento dell'operazione di esportazione consente ai database dell'istanza principale di continuare a gestire le query ed eseguire le operazioni alla velocità di rendimento abituale. Al termine dell'esportazione dei dati, l'istanza temporanea viene eliminata automaticamente. Questa potrebbe essere una buona opzione se stai eseguendo un'esportazione una tantum di un database di grandi dimensioni. Utilizza la console Google Cloud ,
gcloud
o le funzioni di esportazione dell'API REST , con il flagoffload
, per eseguire un'operazione di esportazione serverless.Durante un'operazione di esportazione serverless puoi eseguire altre operazioni, ad esempio modifica, importazione e failover dell'istanza. Tuttavia, se selezioni
Consulta la seguente tabella per scoprire le operazioni che possono essere bloccate durante l'esecuzione di un'operazione di esportazione serverless:delete
, l'operazione di esportazione si interrompe qualche tempo dopo l'eliminazione dell'istanza e non esporta alcun dato.Operazione attuale Nuova operazione Bloccato? Qualsiasi operazione Esportazione serverless Sì Esportazione serverless Qualsiasi operazione tranne l'esportazione serverless No Qualsiasi operazione tranne l'esportazione serverless Qualsiasi operazione tranne l'esportazione serverless Sì Un'esportazione serverless richiede più tempo di un'esportazione standard, perché è necessario tempo per creare l'istanza temporanea. Come minimo, ci vogliono più di cinque minuti, ma per i database più grandi, potrebbe volerci più tempo. Considera l'impatto su tempo, prestazioni e costi prima di determinare il tipo di esportazione da utilizzare.
Utilizza i flag corretti quando crei un file di dump SQL
Se non utilizzi la procedura corretta quando esporti i dati in un file di dump SQL, l'importazione potrebbe non riuscire. Per informazioni sulla creazione di un file di dump SQL da importare in Cloud SQL, consulta Esportazione di dati.
Comprimi i dati per ridurre i costi
Cloud SQL supporta l'importazione e l'esportazione di file compressi e non compressi. La compressione può farti risparmiare spazio di archiviazione significativo su Cloud Storage e ridurre i costi di archiviazione, soprattutto quando esporti istanze di grandi dimensioni.
Quando esporti un dump SQL o un file CSV, utilizza un'estensione.gz
per comprimere i dati. Quando importi un file con estensione .gz
, questo viene decompresso automaticamente.
Ridurre i processi di importazione ed esportazione di lunga durata
Le importazioni in Cloud SQL e le esportazioni da Cloud SQL possono richiedere molto tempo, a seconda delle dimensioni dei dati in fase di elaborazione. Questa operazione può avere i seguenti impatti:
- Non puoi arrestare un'operazione Cloud SQL a lunga esecuzione.
- Puoi eseguire una sola operazione di importazione o esportazione alla volta per ogni istanza e un'operazione di importazione o esportazione a lunga esecuzione blocca altre operazioni, come i backup automatici giornalieri. Le esportazioni serverless ti consentono di eseguire altre operazioni, tra cui la modifica delle istanze, l'importazione, il failover e lo sblocco dei backup automatici giornalieri.
Puoi ridurre il tempo necessario per completare ogni operazione utilizzando la funzionalità di importazione o esportazione di Cloud SQL con batch di dati più piccoli.
Per le esportazioni, puoi eseguire l'esportazione da una replica di lettura o utilizzare l'esportazione serverless per ridurre al minimo l'impatto sulle prestazioni del database e consentire l'esecuzione di altre operazioni sull'istanza durante l'esecuzione di un'esportazione.
Per altri suggerimenti, consulta Diagnosi dei problemi relativi alle istanze Cloud SQL.Verifica il database importato
Una volta completata un'operazione di importazione, connettiti al database ed esegui i comandi del database appropriati per assicurarti che i contenuti siano corretti. Ad esempio, connettiti ed elenca i database, le tabelle e le voci specifiche.
Limitazioni note
Per un elenco delle limitazioni note, vedi Problemi con l'importazione e l'esportazione dei dati.
Automatizzare le operazioni di esportazione
Sebbene Cloud SQL non fornisca un modo integrato per automatizzare le esportazioni di database, puoi creare il tuo strumento di automazione utilizzando diversi componenti. Google CloudPer saperne di più, guarda questo tutorial.
Risoluzione dei problemi
Risoluzione dei problemi relativi alle operazioni di importazione
Problema | Risoluzione dei problemi |
---|---|
Messaggio di errore: permission denied for schema public |
Per PostgreSQL versione 15 e successive, se il database di destinazione viene creato da template0 , l'importazione dei dati potrebbe non riuscire. Per risolvere il problema, fornisci i privilegi dello schema pubblico all'utente cloudsqlsuperuser eseguendo il comando SQL GRANT ALL ON SCHEMA public TO cloudsqlsuperuser . |
HTTP Error 409: Operation failed because another operation was already in progress . |
Esiste già un'operazione in attesa per la tua istanza. È consentita una sola operazione alla volta. Prova a eseguire la richiesta dopo il completamento dell'operazione attuale. |
L'operazione di importazione sta richiedendo troppo tempo. | Un numero eccessivo di connessioni attive può interferire con le operazioni di importazione.
Chiudi le operazioni non utilizzate. Controlla l'utilizzo di CPU e memoria della tua istanza Cloud SQL per assicurarti che ci siano molte risorse disponibili. Il modo migliore per garantire le risorse massime per l'importazione è riavviare l'istanza prima di iniziare l'operazione. Un riavvio:
|
Un'operazione di importazione può non riuscire quando uno o più utenti a cui viene fatto riferimento nel file di dump non esistono. | Prima di importare un file di dump, tutti gli utenti del database che sono proprietari di oggetti o
a cui sono state concesse autorizzazioni per gli oggetti nel database di cui è stato eseguito il dump devono esistere nel
database di destinazione. In caso contrario, l'operazione di importazione non riesce a ricreare gli oggetti con la proprietà o le autorizzazioni originali.
Crea gli utenti del database prima dell'importazione. |
Dopo l'importazione dei dati, le dimensioni dell'utilizzo del disco dati sono molto più elevate. | Dopo l'importazione dei dati, potrebbe verificarsi un utilizzo del disco imprevisto. Questo utilizzo potrebbe essere dovuto all'utilizzo del recupero point-in-time. Per risolvere il problema, dopo aver importato i dati, disattiva il recupero point-in-time se vuoi eliminare i log e recuperare spazio di archiviazione. Tieni presente che la riduzione dello spazio di archiviazione utilizzato non riduce le dimensioni dello spazio di archiviazione di cui è stato eseguito il provisioning per l'istanza. |
Messaggio di errore: GRANT stderr: ERROR: must be member of role ROLE_NAME |
Questo messaggio di errore viene visualizzato se provi a importare un file di dump SQL caricato in Cloud Storage in un database Cloud SQL e il job di importazione è in esecuzione da circa quattro giorni. ROLE_NAME è un ruolo di database personalizzato definito nel database
PostgreSQL di origine. L'utente Per risolvere il problema, completa i seguenti passaggi:
|
Risoluzione dei problemi relativi alle operazioni di esportazione
Problema | Risoluzione dei problemi |
---|---|
HTTP Error 409: Operation failed because another operation was
already in progress. |
Esiste già un'operazione in attesa per la tua istanza. È consentita una sola operazione alla volta. Prova a eseguire la richiesta dopo il completamento dell'operazione attuale. |
HTTP Error 403: The service account does not have the required
permissions for the bucket. |
Assicurati che il bucket esista e che il account di servizio dell'istanza Cloud SQL (che esegue l'esportazione) disponga del ruolo
Storage Object Creator
(roles/storage.objectCreator ) per consentire l'esportazione nel bucket. Vedi
Ruoli IAM per Cloud Storage. |
L'esportazione CSV è andata a buon fine, ma l'esportazione SQL non è riuscita. | I formati CSV e SQL vengono esportati in modo diverso. Il formato SQL esporta
l'intero database e probabilmente richiede più tempo per essere completato. Il formato CSV ti consente di definire quali elementi del database includere nell'esportazione.
Utilizza le esportazioni CSV per esportare solo ciò che ti serve. |
L'esportazione sta richiedendo troppo tempo. | Cloud SQL non supporta le operazioni sincrone simultanee.
Utilizza il trasferimento dell'esportazione. A livello generale, nel trasferimento dell'esportazione, anziché eseguire un'esportazione sull'istanza di origine, Cloud SQL avvia un'istanza di trasferimento per eseguire l'esportazione. L'offload dell'esportazione presenta diversi vantaggi, tra cui un aumento del rendimento dell'istanza di origine e lo sblocco delle operazioni amministrative durante l'esecuzione dell'esportazione. Con il trasferimento del carico di esportazione, la latenza totale può aumentare del tempo necessario per avviare l'istanza di offload. In genere, per le esportazioni di dimensioni ragionevoli, la latenza non è significativa. Tuttavia, se l'esportazione è sufficientemente piccola, potresti notare l'aumento della latenza. |
Errore durante la creazione dell'estensione. | Il file di dump contiene riferimenti a un'estensione non supportata. |
Errore durante l'utilizzo di pg_dumpall . |
L'utilizzo dell'utilità pg_dumpall con il flag --global
richiede il ruolo
di superuser, ma
questo ruolo non è supportato in Cloud SQL per PostgreSQL. Per evitare errori durante l'esecuzione di operazioni di esportazione che includono nomi utente, utilizza anche il flag --no-role-passwords .
|
L'operazione di esportazione scade prima di esportare qualsiasi elemento e viene visualizzato
il messaggio di errore Could not receive data from client: Connection reset
by peer. |
Se Cloud Storage non riceve dati entro un determinato
intervallo di tempo, in genere circa sette minuti, la connessione viene reimpostata. È
possibile che l'esecuzione della query di esportazione iniziale richieda troppo tempo.
Esegui un'esportazione manuale utilizzando lo
strumento |
Vuoi che le esportazioni siano automatizzate. | Cloud SQL non fornisce un modo per automatizzare le esportazioni.
Puoi creare il tuo sistema di esportazione automatizzato utilizzando prodotti come Cloud Scheduler, Pub/Sub e Cloud Run Functions, in modo simile a questo articolo sull' automazione dei backup. Google Cloud |
Passaggi successivi
- Scopri come importare ed esportare i dati utilizzando i file di dump PG.
- Scopri come importare ed esportare i dati utilizzando i file CSV.
- Scopri come attivare i backup automatici.
- Scopri come eseguire il ripristino dai backup.