Best practice per l'importazione e l'esportazione
Di seguito sono riportate le best practice da tenere presenti durante l'importazione e l'esportazione dei dati:
- Non utilizzare i bucket Cloud Storage con pagamento a carico dell'utente che richiede
- Ridurre al minimo l'impatto sulle prestazioni delle esportazioni
- Utilizzare gli indicatori corretti quando si crea un file di dump SQL
- Comprimi i dati per ridurre i costi.
- Ridurre i processi di importazione ed esportazione a lunga esecuzione
- Verifica il database importato
Non utilizzare i bucket Cloud Storage per i pagamenti a carico del richiedente
Non puoi utilizzare un bucket Cloud Storage con L'opzione Pagamenti a carico del richiedente è stata attivata per importazioni ed esportazioni da Cloud SQL.
Riduci al minimo l'impatto delle esportazioni sul rendimento
Per un'esportazione standard da Cloud SQL, l'esportazione viene eseguita mentre il database è online. Se i dati da esportare sono di dimensioni ridotte, l'impatto sarà probabilmente minimo. Tuttavia, in presenza di database di grandi dimensioni o oggetti di grandi dimensioni, come i BLOB nella esiste la possibilità che l'esportazione riduca il database delle prestazioni. Ciò potrebbe influire sul tempo necessario per eseguire le query sul database e operazioni sul database. Dopo aver avviato un'esportazione, possibile arrestarlo 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 effettui spesso esportazioni (quotidianamente o più spesso), ma la quantità di dati esportati è ridotta. Per eseguire un'esportazione da una replica di lettura, utilizza Funzioni di esportazione Google Cloud Console,
gcloud
o dell'API REST nella replica di lettura in esecuzione in un'istanza Compute Engine. Vedi Crea repliche di lettura per saperne di più su come creare e gestire di repliche di lettura.Usa l'esportazione serverless. Con l'esportazione serverless, Cloud SQL crea un'istanza temporanea separata per il trasferimento dell'operazione di esportazione. Trasferimento l'operazione di esportazione consente ai database sull'istanza principale di continuare per eseguire query ed eseguire operazioni con il tasso di prestazioni 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, come la modifica, l'importazione e il failover dell'istanza. Tuttavia, se selezioni
Consulta la seguente tabella per informazioni sulle operazioni che possono essere bloccate durante l'esecuzione di un'operazione di esportazione serverless:delete
, l'operazione di esportazione si interrompe qualche tempo dopo che hai eliminato l'istanza non esporta alcun dato.Operazione in corso 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é la creazione dell'istanza temporanea richiede tempo. La procedura richiede almeno cinque minuti, ma per i database più grandi potrebbe essere più lunga. Considera l'impatto su in termini di 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 dump SQL l'importazione potrebbe non riuscire. Per informazioni sulla creazione di un File di dump SQL per l'importazione in Cloud SQL, consulta Esportazione dei dati.
Comprimi i dati per ridurre i costi
Cloud SQL supporta l'importazione e l'esportazione sia compresse che non compressi. La compressione può farti risparmiare molto spazio di archiviazione 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.gz
estensione del file per comprimere i dati. Quando importi un file con un oggetto
di .gz
, viene decompressa automaticamente.
Riduci le procedure di importazione ed esportazione che richiedono molto tempo
Le importazioni in Cloud SQL e le esportazioni da Cloud SQL possono richiedere molto tempo, a seconda delle dimensioni dei dati elaborati. Ciò può avere i seguenti effetti:
- Non puoi arrestare un'operazione di un'istanza Cloud SQL a lunga esecuzione.
- Puoi eseguire una sola operazione di importazione o esportazione alla volta per ogni istanza e un'operazione L'importazione o l'esportazione 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 esportazione serverless in minimizzare l'impatto sulle prestazioni del database e consentire l'esecuzione di altre operazioni sull'istanza mentre è in esecuzione un'esportazione.
Per altri suggerimenti, consulta Diagnostica dei problemi relativi alle istanze Cloud SQL.Verifica il database importato
Al termine di un'operazione di importazione, connettiti al database ed esegui i comandi appropriati per assicurarti che i contenuti siano corretti. Per ad esempio connect e per elencare database, tabelle e voci specifiche.
Limitazioni note
Per un elenco delle limitazioni note, consulta Problemi di importazione ed esportazione dei dati.
Automatizzare le operazioni di esportazione
Sebbene Cloud SQL non fornisca un modo integrato per automatizzare le esportazione del database, puoi creare il tuo strumento di automazione utilizzando diversi componenti di Google Cloud. Per saperne di più, vedi 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 15 e versioni successive, se il database di destinazione viene creato da template0 , l'importazione dei dati potrebbe non riuscire. Per risolvere il problema, concedi all'utente cloudsqlsuperuser i privilegi dello schema pubblico 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. Solo un'operazione è consentito alla volta. Prova a eseguire la richiesta al termine dell'operazione in corso. |
L'operazione di importazione sta richiedendo troppo tempo. | Troppe connessioni attive possono 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 siano disponibili moltissime risorse. Il modo migliore per garantire il massimo delle risorse 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 il file di dump non esiste. | 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 il file
oggetti con la proprietà o le autorizzazioni originali.
Crea gli utenti del database prima dell'importazione. |
Dopo aver importato i dati, la dimensione di utilizzo del disco dati sarà molto maggiore. | Potrebbe verificarsi un utilizzo imprevisto del disco dopo l'importazione dei dati. 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 del database personalizzato definito nell'origine
PostgreSQL standard. L'utente predefinito di 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 l'istanza. Solo un'operazione è consentito alla volta. Prova a eseguire la richiesta al termine dell'operazione in corso. |
HTTP Error 403: The service account does not have the required
permissions for the bucket. |
Assicurati che il bucket esista e che l'account di servizio per l'istanza Cloud SQL (che esegue l'esportazione) abbia il ruolo Storage Object Creator (roles/storage.objectCreator ) per consentire l'esportazione nel bucket. Consulta:
Ruoli IAM per Cloud Storage. |
L'esportazione in formato CSV è riuscita, ma l'esportazione SQL non è riuscita. | I formati CSV e SQL esportano in modo diverso. Il formato SQL esporta
l'intero database e probabilmente richiede più tempo per il completamento. Il formato CSV consente di
devi definire quali elementi del database includere nell'esportazione.
Utilizzare le esportazioni CSV ed esportare solo ciò che serve. |
L'esportazione sta richiedendo troppo tempo. | Cloud SQL non supporta le operazioni sincrone simultanee.
Utilizza il caricamento di esportazione. A livello generale, in fase di offloading delle esportazioni, anziché eseguendo un'esportazione sull'istanza di origine, Cloud SQL avvia per eseguire l'esportazione. La distribuzione dell'esportazione ha diverse vantaggi, tra cui l'aumento delle prestazioni sull'istanza di origine e sblocco di operazioni amministrative durante l'esecuzione dell'esportazione. Con dell'esportazione, la latenza totale può aumentare in base alla quantità di tempo richiesta per visualizzare l'istanza di offload. In genere, per le esportazioni di dimensioni ragionevoli, la latenza non è significativa. Tuttavia, se l'esportazione è sufficientemente ridotta, potresti notare un 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 . |
Utilizzo dell'utilità pg_dumpall con il flag --global
richiede
ruolo super user,
questo ruolo non è supportato in Cloud SQL per PostgreSQL. Per evitare che si verifichino errori durante l'esecuzione di operazioni di esportazione che includono i nomi utente, utilizza anche il flag --no-role-passwords .
|
L'operazione di esportazione scade prima di esportare qualcosa e vedrai
il messaggio di errore Could not receive data from client: Connection reset
by peer. |
Se Cloud Storage non riceve dati in un
di tempo, in genere circa sette minuti, la connessione viene reimpostata. È possibile che l'esecuzione della query di esportazione iniziale stia richiedendo troppo tempo.
Esegui un'esportazione manuale utilizzando lo
strumento |
Vuoi che le esportazioni siano automatiche. | Cloud SQL non fornisce un modo per automatizzare le esportazioni.
Potresti creare il tuo sistema di esportazione automatizzato utilizzando Google Cloud come Cloud Scheduler, funzioni di Pub/Sub e Cloud Run, simile a questo articolo su l'automazione dei backup. |
Passaggi successivi
- Scopri come importare ed esportare i dati utilizzando i file di dump PG.
- Scopri come importare ed esportare dati utilizzando i file CSV.
- Scopri come attivare i backup automatici.
- Scopri come eseguire il ripristino dai backup.