pg_dumpall 是一个用于导出集群中所有数据库和/或全局对象的核心实用程序。
pg_dumpall 在 PostgreSQL 6.0 中添加。
变更历史
进行中
- PostgreSQL 18
- PostgreSQL 17
- 添加了选项
--filter(提交 a5cf808b)
- 添加了选项
- PostgreSQL 15
- 添加了选项
--no-table-access-method(提交 21586288) - 移除了对从 PostgreSQL 9.2 之前的版本进行备份的支持 (提交 30e7c175)
- 添加了选项
- PostgreSQL 14
- 选项
--no-toast-compression已添加(提交 694da198)
- 选项
- PostgreSQL 11
- PostgreSQL 9.5
- 移除了冗余的
-i/--ignore-version选项 (提交 232cd63b)
- 移除了冗余的
- PostgreSQL 9.4
- 添加了选项
--if-exists(提交 9067310c)
- 添加了选项
- PostgreSQL 9.3
- PostgreSQL 8.0
- PostgreSQL 7.4
- PostgreSQL 7.3
- 用 C 语言重写(提交 7af5ea73)
- PostgreSQL 7.1
- 使用
CREATE USER和CREATE GROUP,而不是复制pg_shadow和pg_group(提交 51afb930)
- 使用
- PostgreSQL 6.1
- 启用数据库所有权的保留(提交 2fc04874)
- PostgreSQL 6.0
- 已添加(提交 3d97a61a)
示例
导出新初始化的数据库集群的全局对象
$ pg_dumpall --globals-only -- -- PostgreSQL database cluster dump -- SET default_transaction_read_only = off; SET client_encoding = 'UTF8'; SET standard_conforming_strings = on; -- -- Roles -- CREATE ROLE postgres; ALTER ROLE postgres WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION BYPASSRLS; -- -- PostgreSQL database cluster dump complete --
参考资料
- PostgreSQL documentation: pg_dumpall
