在PostgreSQL中备份和恢复数据库的5个技巧
时间:2019-05-19 01:25:30 来源:igfitidea点击:
PostgreSQL数据库服务器提供' pg_dump '和' psql '实用工具备份和恢复数据库。
本文将介绍使用 pg_dump命令备份数据库的各种方法。
此外,我们将学习如何恢复数据库备份。
在PostgreSQL中备份和恢复数据库
下面是一些连接选项,我们可以使用它们将远程服务器或经过身份验证的服务器与本文提供的所有查询连接起来。
- -d, –dbname=DBNAME数据库名称
- -h, –host=HOSTNAME数据库服务器主机名或者ip
- -p, –port=PORT数据库服务器端口号(默认:5432)
- -U, –username=NAME指定连接数据库的用户
- -W, –password密码提示
- –role=ROLENAME在DUMP之前执行SET ROLE(设置角色)
1。备份和恢复单个数据库
备份:PostgreSQL中的单个数据库。
将实际的数据库名称替换mydb。
$ pg_dump -U postgres -d mydb > mydb.pgsql
还原在PostgreSQL中还原单个数据库。
$ psql -U postgres -d mydb < mydb.pgsql
2。备份和恢复所有数据库
备份: 在PostgreSQL使用pg_dumpall备份所有数据库
$ pg_dumpall -U postgres > alldbs.pgsql
还原:使用以下命令还原所有数据库。
$ psql -U postgres < alldbs.pgsql
3。备份和恢复单个表
备份:从mydb数据库中备份一个名为mytable的表。
$ pg_dump -U postgres -d mydb -t mytable > mydb-mytable.pgsql
还原:还原单个表。
$ psql -U postgres -d mydb < mydb-mytable.pgsql
4。压缩备份和恢复数据库
备份:PostgreSQL数据库压缩格式。
$ pg_dump -U postgres -d mydb | gzip > mydb.pgsql.gz
还原:数据库从压缩文件直接备份。
$ gunzip -c mydb.pgsql.gz | psql -U postgres -d mydb
5。分割备份在多个文件和恢复
备份:PostgreSQL数据库和分割备份在多个文件的指定大小。
它可以帮助我们备份大型数据库,并方便地传输到其他主机上。
下面的例子,将分割100mb大小的备份文件。
$ pg_dump -U postgres -d mydb | split -b 100m – mydb.pgsql
还原:从多个分割的备份文件进行还原。
$ cat mydb.pgsql* | psql -U postgres -d mydb
备份:数据库中分割指定大小的文件,并压缩。
$ pg_dump -U postgres -d mydb | gzip | split -b 100m – mydb.pgsql.gz
还原:还原数据库中多个文件的压缩文件。
$ cat mydb.pgsql.gz* | gunzip | psql -U postgres -d mydb