Questa pagina descrive l'esportazione e l'importazione dei dati nelle istanze Cloud SQL utilizzando pg_dump, pg_dumpall e pg_restore.
Prima di iniziare
Le esportazioni utilizzano risorse di database, ma non interferiscono con il normale database a meno che l'istanza non abbia un underprovisioning.
Per le best practice, vedi Best practice per l'importazione e Esportazione dei dati.
Dopo aver completato un'operazione di importazione, verifica il che consentono di analizzare i dati e visualizzare i risultati.
Scopri di più su pg_dump
, pg_dumpall
e pg_restore
utilità.
Esporta i dati da Cloud SQL per PostgreSQL
Puoi usare Cloud SQL per eseguire un'esportazione dalla console Google Cloud, gcloud CLI o l'API.
- Per esportare un singolo database PostgreSQL, utilizza l'utilità
pg_dump
. - Per esportare tutti i database PostgreSQL di un cluster, utilizza l'utilità
pg_dumpall
.
Quando utilizzi una delle due utilità, assicurati di utilizzare anche le opzioni richieste per verifica che il file di esportazione risultante sia valido per l'importazione nuovamente in Cloud SQL.
Esporta i dati da un server PostgreSQL on-premise utilizzando pg_dump
Per esportare un database non gestito da Cloud SQL, per importarlo in un secondo momento
in Cloud SQL, utilizza l'utilità pg_dump
con quanto segue
:
--no-owner
I comandi di modifica della proprietà non devono essere inclusi nel file di dump.
--format
I formati
custom
edirectory
sono consentiti se del file di dump è destinato all'utilizzo conpg_restore
.Per il formato
plain-text
, esporta in unSQL dump file
. Questo formato non è compatibile conpg_restore
. devono essere importati utilizzando il comando di importazione della console Google Cloudpsql
.--no-acl
Questo flag è obbligatorio se il dump conterrà istruzioni per concedere o revocare l'appartenenza a un ruolo
SUPERUSER
.--clean
Questo flag facoltativo consente di includere l'istruzione SQL
DROP <object>
necessaria per rimuovere (pulire) gli oggetti di database prima di importarli.--if-exists
Questo flag facoltativo consente di includere l'istruzione SQL
IF EXISTS
in ogni istruzioneDROP
prodotta dal flagclean
.
Inoltre, devi rimuovere tutti i seguenti elementi:
- Istruzioni relative alle estensioni, se Cloud SQL non supporta . Vedi Estensioni PostgreSQL per consultare l'elenco delle estensioni supportate.
- Estratti conto
CREATE EXTENSION
oDROP EXTENSION
facendo riferimento a plpgsql. Questa estensione è preinstallata su Cloud SQL Istanze Postgres. COMMENT ON EXTENSION
estratti conto.
Conferma che la codifica predefinita, come stabilito dalle impostazioni del database,
sia corretta per i tuoi dati. Se necessario, puoi eseguire l'override di quello predefinito
--encoding
flag.
Esporta i dati utilizzando il formato custom
da Cloud SQL per PostgreSQL
Per utilizzare il formato personalizzato, esegui pg_dump
da una riga di comando:
pg_dump \ -U USERNAME \ --format=custom \ --no-owner \ --no-acl \ DATABASE_NAME > DATABASE_NAME.dmp
Esporta i dati da più file in parallelo da Cloud SQL per PostgreSQL
Puoi utilizzare il formato di output directory
solo per esportare dati da più file in parallelo.
Per eseguire l'esportazione in parallelo, utilizza il flag -j NUM_CORES
.
NUM_CORES è il numero di core nell'istanza di origine.
Esporta tutti i database
pg_dumpall
è
che ti consente di estrarre tutti i database PostgreSQL di un cluster in
un singolo file di script. Questo file contiene comandi SQL che puoi usare per ripristinare
o Microsoft SQL Server.
Per esportare tutti i database PostgreSQL in un'istanza Cloud SQL, utilizza
Utilità pg_dumpall
con i seguenti flag obbligatori:
exclude-database=cloudsqladmin
exclude-database=template*
L'utilità pg_dumpall
non ha accesso a cloudsqladmin
o
template
database.
Per esportare tutti i database PostgreSQL, esegui questo comando:
pg_dumpall \ -h HOST_NAME -l DATABASE_NAME –exclude-database=cloudsqladmin \ –exclude-database=template* > pg_dumpall.sql
Per visualizzare le password dei ruoli durante il dump dei ruoli con pg_dumpall
, imposta il
cloudsql.pg_authid_select_role
a un nome ruolo PostgreSQL. Se il ruolo esiste,
quindi può accedere di sola lettura (SELECT
) alla tabella pg_authid
. Questa tabella
contiene password dei ruoli.
Importa
Utilizza l'utilità pg_restore
per importare un archivio in un
un database Cloud SQL. pg_restore
funziona solo con gli archivi
creato da pg_dump nel
custom
o directory
.
Scopri di più su
pg_restore
.
Importa da un file di dump creato con il formato custom
in Cloud SQL per PostgreSQL
Se il file di dump è stato creato in un formato personalizzato, esegui questo comando:
pg_restore \ --list DATABASE_NAME.dmp | sed -E 's/(.* EXTENSION )/; \1/g' > DATABASE_NAME.toc
La post-elaborazione da sed
commenta tutte le istruzioni di estensione
nel file di dump SQL.
Quando esegui l'importazione con pg_restore
, specifica il sommario elaborato con
l'argomento della riga di comando "--use-list=DATABASE_NAME.toc".
Importa dati da più file in parallelo a Cloud SQL per PostgreSQL
Puoi importare dati da più file in parallelo solo per gli archivi creati utilizzando i directory
e
custom
formati di output.
Per eseguire l'importazione in parallelo, utilizza il flag -j NUM_CORES
.
NUM_CORES è il numero di core sull'istanza di destinazione.
Importa le prestazioni su Cloud SQL per PostgreSQL
Passaggi successivi
- Scopri come controllare lo stato delle operazioni di importazione ed esportazione.
- Scopri di più sulle best practice per l'importazione e l'esportazione dei dati.
- Scopri di più sull'utilità pg_dump di PostgreSQL.
- Problemi noti relativi a importazioni ed esportazioni.