pg_dump 常用命令

-h host,指定数据库主机名,或者IP
-p port,指定端口号
-U user,指定连接使用的用户名
-W,按提示输入密码
dbname,指定连接的数据库名称,实际上也是要备份的数据库名称。
-a,–data-only,只导出数据,不导出表结构
-c,–clean,是否生成清理该数据库对象的语句,比如drop table
-C,–create,是否输出一条创建数据库语句
-f file,–file=file,输出到指定文件中
-n schema,–schema=schema,只转存匹配schema的模式内容
-N schema,–exclude-schema=schema,不转存匹配schema的模式内容
-O,–no-owner,不设置导出对象的所有权
-s,–schema-only,只导致对象定义模式,不导出数据
-t table,–table=table,只转存匹配到的表,视图,序列,可以使用多个-t匹配多个表
-T table,–exclude-table=table,不转存匹配到的表。
–inserts,使用insert命令形式导出数据,这种方式比默认的copy方式慢很多,但是可用于将数据导入到非PostgreSQL数据库。
–column-inserts,导出的数据,有显式列名

备份

pg_dump -c --if-exists -d order_db > order_back_1.dump

此命令输出创建数据库命令之前先清理(drop)该数据库对象。(可以和 pg_restore命令配合)

pg_dump -d order_db > order_back.dump

此命令会将数据表中定义为BIGSERIAL SERIAL 这些自增的序列号最新值也导出来。

恢复/

恢复之前需要在本地数据库创建对应的数据库,如果使用别的schema 则需要先创建对应的 schema

psql --dbname=order_db --file=order_back.dump

如果需要将数据恢复至别的服务器上可以使用以下命令

psql -h 192.168.1.12 -U postgres -p 5222 -W -d order_db -f order_back_1.dump