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 月发表的博文