Postgresql pg_dump 与 pg_restore 使用举例

pg_dump备份

备份本地osdb数据库,全备份,不需要密码

pg_dump osdb > osdb.sql                            

备份远程osdb数据库

pg_dump -h 192.168.122.1 -Uosdb osdb > osdb.sql                                 

只想备份表

pg_dump -t testtab > testtab.sql                                                                                                                                                                             

如果只想备份“schema1”模式中所有以job开头的表,但是不包括job_log表

pg_dump -t "schema1.job*" -T schema1.job_log osdb > schema1.job.sql                       

转储所有osdb的数据库对象,但是不包含以_log结尾的表

pg_dump -T '*_log'  osdb > log.sql

pg_dump恢复

将数据库备份恢复到一个新的DB中

createdb osdb2

pg_restore -d osdb2 osdb.dump                                                   

从192.168.122.1备份数据库osdb,然后恢复到192.168.122.2机器上。

在pg_restore 命令中,-d中指定的数据库可以时192.168.122.2机器上实例中的任意数据库,pg_restore仅用该数据库名称链接上去,去执行create database 命令创建osdb数据库,然后再重新连接到osdb数据库,最后把备份的表和其他对象创建到osdb数据库中。(-C 命令)

备份:

pg_dump -h 192.168.122.1 -Uosdb osdb -Fc >osdb.dmp

恢复:

pg_restore -h 192.168.122.2 -Uosdb -C -d postgres osdb.dump                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

将数据备份恢复到一个不是新建的不同名称的数据库osdb2

createdb -T template0 osdb2

pg_restore -d osdb2 osdb.dmp

原文地址:https://www.cnblogs.com/xibuhaohao/p/11114306.html