pg_dumpall
pg_dumpall — 把所有 Postgres 数据库抽取到一个脚本文件
大纲
pg_dumpall pg_dumpall [ -hhost] [ -pport] [ -a ] [ -d ] [ -D ] [ -o ] [ -s ] [ -u ] [ -v ] [ -x ]
输入
pg_dumpall 接受下列命令行参数:
- -a
只转储数据,不转储模式(定义)。
- -d
把数据转储为正确的插入字符串。
- -D
把数据转储为带属性名的插入
- -n
除非绝对必要,抑制标识符两边的双引号。如果有保留字被用作标识符,加载这些转储数据时可能出问题。
- -o
转储每个表的对象标识符(OID)。
- -s
只转储模式(定义),不转储数据。
- -u
使用口令认证。提示输入用户名和口令。
- -v
指定详细模式
- -x
不转储 ACL(grant/revoke 命令)和表所有权信息。
pg_dumpall 还接受下列用于连接参数的命令行参数:
- -h
host 指定 postmaster 所在机器的主机名。默认使用本地 Unix 域套接字而不是 IP 连接。
- -p
port 指定 postmaster 正在监听连接的 Internet TCP/IP 端口或本地 Unix 域套接字文件扩展名。端口号默认为 5432,或
PGPORT环境变量的值(如果设置了的话)。- -u
使用口令认证。提示输入
username和password。
输出
pg_dumpall 会创建一个文件或写到 stdout。
Connection to database 'template1' failed. connectDB() failed: Is the postmaster running and accepting connections at 'UNIX Socket' on port 'port'?pg_dumpall could not attach to the postmaster process on the specified host and port. If you see this message, ensure that the postmaster is running on the proper host and that you have specified the proper port. If your site uses an authentication system, ensure that you have obtained the required authentication credentials.
Connection to database 'dbname' failed. FATAL 1: SetUserId: user 'username' is not in 'pg_shadow'你在关系
pg_shadow中没有有效的条目,将不被允许访问 Postgres。请联系你的 Postgres 管理员。dumpSequence(table): SELECT failed你没有读取数据库的权限。请联系你的 Postgres 站点管理员。
注意
pg_dumpall 在内部执行
SELECT 语句。如果运行
pg_dumpall 遇到问题,请确保你能用例如
psql 从数据库选择信息。
描述
pg_dumpall 是一个把所有 Postgres 数据库转储到一个文件的实用工具。它还转储对所有数据库全局的 pg_shadow 表。 pg_dumpall 在这个文件中包含在加载之前自动创建每个被转储数据库的相应命令。
pg_dumpall 接受所有
pg_dump 选项,但
-f、-t 和
dbname
应当省略。
关于这一功能的更多信息请参阅 pg_dump 。
用法
转储所有数据库:
% pg_dumpall -o > db.out
提示
可以对 pg_dumpall 使用大多数 pg_dump 选项。
重新装载这个数据库:
% psql -e template1 < db.out
提示
重新加载时可以使用大多数 psql 选项。