跳转至

pg_dumpall 免密码导出数据


2016-12-20 by dongnan

目标

使用 shell脚本备份 postgresql 全部数据库,要完成这个任务有两点:

  • 需要使用 pg_dumpall 命令,导出全部数据,注意这与 pg_dump命令不同。
  • postgresql 提供一种机制,在用户根目录下,创建 .pgpass 文件,按照格式填写数据库的用户信息,可以免密码。

举个栗子

备份脚本参考这里:postgresql 备份shell 脚本

操作步骤

创建 .pgpass 密码文件

vim .pgpass
# hostname:port:database:username:password
# *, which matches anything
zongming.net:5432:*:postgres:dongnan

文件权限为600

chmod 600 .pgpass

验证

准备完成后可以使用 pg_dumpall 免密码方式导出数据

pg_dumpall -h hupo-pg.ywwd.net -U postgres -c  -w

帮助

pg_dumpall --help
pg_dumpall extracts a PostgreSQL database cluster into an SQL script file.

Usage:
  pg_dumpall [OPTION]...

Options controlling the output content:
#...省略
  -c, --clean                  clean (drop) databases before recreating

#...省略
Connection options:
  -d, --dbname=CONNSTR     connect using connection string
  -h, --host=HOSTNAME      database server host or socket directory
  -l, --database=DBNAME    alternative default database
  -p, --port=PORT          database server port number
  -U, --username=NAME      connect as specified database user
  -w, --no-password        never prompt for password
  -W, --password           force password prompt (should happen automatically)
  --role=ROLENAME          do SET ROLE before dump
#...省略

参考

回到页面顶部