Eseguire la migrazione del database PostgreSQL usando dump e ripristinoMigrate your PostgreSQL database using dump and restore

È possibile usare pg_dump per estrarre un database PostgreSQL in un file di dump e pg_restore per ripristinare il database PostgreSQL da un file di archivio creato da pg_dump.You can use pg_dump to extract a PostgreSQL database into a dump file and pg_restore to restore the PostgreSQL database from an archive file created by pg_dump.

PrerequisitiPrerequisites

Per proseguire con questa guida, si richiedono:To step through this how-to guide, you need:

Seguire questi passaggi per eseguire il dump e il ripristino del database PostgreSQL:Follow these steps to dump and restore your PostgreSQL database:

Creare un file di dump usando pg_dump che contiene i dati da caricareCreate a dump file using pg_dump that contains the data to be loaded

Per eseguire il backup di un database PostgreSQL in locale o in una macchina virtuale, eseguire questo comando:To back up an existing PostgreSQL database on-premises or in a VM, run the following command:

pg_dump -Fc -v --host=<host> --username=<name> --dbname=<database name> > <database>.dump

Se ad esempio è presente un server locale che contiene un database denominato testdb, eseguire:For example, if you have a local server and a database called testdb in it

pg_dump -Fc -v --host=localhost --username=masterlogin --dbname=testdb > testdb.dump

Importante

Copiare i file di backup in un archivio/BLOB di Azure ed eseguire il ripristino da tale posizione. In questo modo, l'operazione dovrebbe essere eseguita in modo molto più veloce rispetto al ripristino attraverso Internet.Copy the backup files to an Azure blob/store and perform the restore from there, which should be a lot faster than performing the restore across the Internet.

Ripristinare i dati nel database di Azure per PostrgeSQL di destinazione usando pg_restoreRestore the data into the target Azure Database for PostrgeSQL using pg_restore

Dopo avere creato il database di destinazione, è possibile usare il comando pg_restore e il parametro -d, --dbname per ripristinare i dati nel database di destinazione dal file di dump.Once you have created the target database, you can use the pg_restore command and the -d, --dbname parameter to restore the data into the target database from the dump file.

pg_restore -v --no-owner –-host=<server name> --port=<port> --username=<user@servername> --dbname=<target database name> <database>.dump

Se si include il parametro --no-owner, tutti gli oggetti creati durante il ripristino saranno di proprietà dell'utente specificato con --username.Including the --no-owner parameter causes all objects created during the restore to be owned by the user specified with --username. Per altre informazioni, vedere la documentazione ufficiale di PostgreSQL per pg_restore.For more information, see the official PostgreSQL documentation on pg_restore.

In questo esempio i dati vengono ripristinati dal file di dump testdb.dump nel database mypgsqldb disponibile sul server di destinazione mydemoserver.postgres.database.azure.com.In this example, restore the data from the dump file testdb.dump into the database mypgsqldb on target server mydemoserver.postgres.database.azure.com.

pg_restore -v --no-owner --host=mydemoserver.postgres.database.azure.com --port=5432 --username=mylogin@mydemoserver --dbname=mypgsqldb testdb.dump

Passaggi successiviNext steps