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
#...省略