pg_dump
是一个用于将单个PostgreSQL数据库备份为SQL脚本、TAR存档或自定义存档文件的核心实用程序。
pg_dump
一直存在于PostgreSQL中。
更改历史记录
开发中
- PostgreSQL 17
- PostgreSQL 16
- PostgreSQL 15
- PostgreSQL 14
- PostgreSQL 13
- PostgreSQL 11
- PostgreSQL 10
- PostgreSQL 9.5
- 删除了冗余的选项
-i
/--ignore-version
(提交232cd63b)
- 删除了冗余的选项
- PostgreSQL 9.4
- PostgreSQL 9.3
- PostgreSQL 9.2
- 添加了选项
--section
(提交a4cd6abc)
- 添加了选项
- PostgreSQL 9.1
- PostgreSQL 8.2
- PostgreSQL 8.0
- 使用选项
-v
/--verbose
时显示开始/结束时间(提交91366138)
- 使用选项
- PostgreSQL 7.3
- 将
主键
追溯添加到带有ALTER TABLE ... ADD PRIMARY KEY
的表中,以避免在稍后的恢复期间出现索引创建开销(提交5b5cef9a) - 各种输出可移植性改进(提交c828ec88)
- 支持大于2GB的对象(提交38e444aa)
- 将
- PostgreSQL 7.2
- 使用
pg_get_indexdef()
函数生成CREATE INDEX
命令并避免发出默认操作类(1929a90b) - 添加了NLS支持(提交b5593821)
- 使用
- PostgreSQL 7.1
- PostgreSQL 7.0
- PostgreSQL 6.5
- PostgreSQL 6.4
- PostgreSQL 6.3
- 选项
-H
重命名为-h
(提交c35d7fb8)
- 选项
示例
单个表(包括定义和内容)的纯文本转储示例输出
$ pg_dump -Fp -d 'host=localhost dbname=app user=appuser' --table=app.language -- -- PostgreSQL database dump -- -- Dumped from database version 12.5 -- Dumped by pg_dump version 14devel SET statement_timeout = 0; SET lock_timeout = 0; SET idle_in_transaction_session_timeout = 0; SET client_encoding = 'UTF8'; SET standard_conforming_strings = on; SELECT pg_catalog.set_config('search_path', '', false); SET check_function_bodies = false; SET xmloption = content; SET client_min_messages = warning; SET row_security = off; SET default_tablespace = ''; SET default_table_access_method = heap; -- -- Name: language; Type: TABLE; Schema: app; Owner: appuser -- CREATE TABLE app.language ( lang_id character(2) NOT NULL, name_english character varying(64), name_native character varying(64), CONSTRAINT language_lang_id_check CHECK ((lang_id ~ '^[a-z]{2}$'::text)) ); ALTER TABLE app.language OWNER TO app; -- -- Data for Name: language; Type: TABLE DATA; Schema: app; Owner: appuser -- COPY app.language (lang_id, name_english, name_native) FROM stdin; en English English de German Deutsch ja Japanese 日本語 th Thai ไทย \. -- -- Name: language language_pkey; Type: CONSTRAINT; Schema: app; Owner: appuser -- ALTER TABLE ONLY app.language ADD CONSTRAINT language_pkey PRIMARY KEY (lang_id); -- -- PostgreSQL database dump complete --
参考
- PostgreSQL 文档: pg_dump
有用链接
- 使用 PostgreSQL 转储清单 - Robert Bernier / Percona 于 2022 年 9 月发布的博文