在PostgreSQL中备份还原数据库的5个技巧

本文介绍了各种方法来备份和恢复PostgreSQL数据库

PostgreSQL数据库服务器提供pg_dump的实用程序,用于备份数据库。 本文将介绍各种方式使用pg_dump命令来备份数据库。您还将学习如何还原备份。 -d,--dbname = DBNAME数据库名 -h,--host = HOSTNAME数据库服务器的主机名或IP -p,--port = PORT数据库服务器的端口号(默认:5432) -U,--username = NAME作为连接指定的数据库用户 -W,--password强制口令提示 --role = ROLENAME用SET转储之前ROLE

备份和恢复单个数据库

备份:在PostgreSQL中的单个数据库。替换为您的实际的数据库名称 mydb 。
$ pg_dump -U postgres -d mydb > mydb.pgsql
还原:在单个数据库备份PostgreSQL中还原。
$ psql -U postgres -d mydb 

备份和恢复所有数据库

备份:使用是pg_dumpall实用的PostgreSQL备份所有数据库。
$ pg_dumpall -U postgres > alldbs.pgsql
恢复:使用以下命令所有数据库备份恢复。
$ psql -U postgres 

备份和恢复单个表

备份:从一个名为mydb的数据库中备份mytable一个表。
$ pg_dump -U postgres -d mydb -t mytable > mydb-mytable.pgsql
还原:单表备份到数据库中还原。请确保您的备份文件包含要恢复唯一的单表备份。
$ psql -U postgres -d mydb 

压缩的备份和恢复数据库

备份:PostgreSQL数据库压缩格式。
$ pg_dump -U postgres -d mydb | gzip > mydb.pgsql.gz
还原:从压缩备份文件直接还原数据库。
$ gunzip -c mydb.pgsql.gz | psql -U postgres -d mydb

在多个文件中分割备份和恢复

备份:PostgreSQL数据库,并在指定大小的多个文件拆分备份。它可以帮助我们备份一个大型数据库,并转移到其他主机的轻松。按实施例下面将在大小分割100MB的备份文件。
$ pg_dump -U postgres -d mydb | split -b 100m – mydb.pgsql
恢复:数据库备份从多个splited备份中恢复文件。
$ cat mydb.pgsql* | psql -U postgres -d mydb
备份:数据库指定大小的压缩备份splited文件。
$ pg_dump -U postgres -d mydb | gzip | split -b 100m – mydb.pgsql.gz
还原:从数据库中的压缩文件的多个文件中还原。
$ cat mydb.pgsql.gz* | gunzip | psql -U postgres -d mydb