Linux下PostgresSQL数据pg_dump导出的操作命令

本文详细介绍了PostgreSQL的pg_dump工具,涵盖了其功能、用法、选项详解以及实际案例,帮助读者掌握数据库逻辑备份和恢复的关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pg_dump

pg_dump是将一个PostgreSQL数据库抽出到一个脚本文件或者其它归档文件中。
pg_dump是一个用于备份PostgreSQL数据库的实用工具,即使当前数据库正在使用,也能够生成一致性的备份,且不会阻塞其他用户访问数据库。
pg_dump是PostgreSQL提供的一个工具,逻辑导出数据,生成sql文件或其他格式文件。
pg_dump是一个客户端工具,可以远程或本地导出逻辑数据,恢复数据至导出时间点。 pg_dump只能备份一个数据库。
pg_dump 一次只转储一个数据库,并不会转储有关角色或表空间的信息 (因为那些是群集范围而不是每个数据库)。
pg_dump 把一个数据库转储为纯文本文件或者是其它格式。

用法:

pg_dump [选项]... [数据库名字]

pgsql数据库导出表数据

./pg_dump -h localhost -p 5432 -U postgres data_dt -t public.sys_log --inserts >/data/mysql.sql

一般选项:

-f, --file=文件名        输出文件名   
-F, --format=c|t|p      输出文件格式 (定制,tar, 明文)   
-v, --verbose          详细模式   
-Z, --compress=0-9      被压缩格式的压缩级别 
--lock-wait-timeout=TIMEOUT 在等待表锁超时后操作失败   
--help                      显示此帮助信息,然后退出   
--versoin                  输出版本信息,然后退出

控制输出内容选项:

-a, --data-only        只转储数据,不包括模式   
-b, --blobs            在转储中包括大对象   
-c, --clean            在重新创建之前,先清除(删除)数据库对象   
-C, --create            在转储中包括命令,以便创建数据库   
-E, --encoding=ENCODING    转储以ENCODING形式编码的数据   
-n, --schema=SCHEMA      只转储指定名称的模式   
-N,--exclude-schema=SCHEMA    不转储已命名的模式   
-o, --oids              在转储中包括OID   
-O, --no-owner          在明文格式中,忽略恢复对象所属者   
-s, --schema-only      只转储模式,不包括数据   
-S, --superuser=NAME    在转储中, 指定的超级用户名   
-t, --table=TABLE      只转储指定名称的表   
-T, --exclude-table=TABLE      只转储指定名称的表   
-x, --no-privileges      不要转储权限 (grant/revoke)   
--binary-upgrade        只能由升级工具使用   
--inserts                以INSERT命令,而不是COPY命令的形式转储数据   
--column-inserts        以带有列名的INSERT命令形式转储数据   
--disable-dollar-quoting    取消美元 (符号)引号, 使用 SQL 标准引号   
--disable-triggers        在只恢复数据的过程中禁用触发器   
--no-tablespaces          不转储表空间分配信息   
--role=ROLENAME        在转储前运行SETROLE 
--use-set-session-authorization    使用 SESSION AUTHORIZATION 命令代替                           ALTER OWNER 命令来设置所有权 联接选项:

连接选项:

  -h, --host=主机名        数据库服务器的主机名或套接字目录
  -p, --port=端口号        数据库服务器的端口号
  -U, --username=名字      以指定的数据库用户联接
  -w, --no-password       永远不提示输入口令
  -W, --password          强制口令提示 (自动)

参考文章

1. [pgsql在linux导入导出数据](https://blog.youkuaiyun.com/zhuocr/article/details/56479966)
2.[POSTGRESQL 数据库导入导出](https://blog.youkuaiyun.com/justlpf/article/details/91789787?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0-91789787-blog-83015192.pc_relevant_multi_platform_whitelistv2&spm=1001.2101.3001.4242.1&utm_relevant_index=3)
<think>好的,我现在需要帮助用户了解PostgreSQLpg_dump的使用方法和参数说明。首先,我需要回顾用户提供的引用内容,确保信息准确。用户给出了三个引用,分别涉及pg_dump的基本语法、备份示例,以及与pg_dumpall的区别。 首先,根据引用1,pg_dump的语法结构是:pg_dump [连接选项...] [选项...] [数据库名]。这里需要详细说明连接选项和常用选项。连接选项应该包括主机、端口、用户名等,这在引用2的示例中也有体现,比如-h指定主机,-p指定端口,-U指定用户。 接下来,引用2给出了备份为文本文件的示例,使用重定向或-f选项指定输出文件。同时提到了-v选项显示详细过程。这里需要强调两种输出方式的区别,以及如何选择备份格式(如纯文本、自定义格式、目录格式等)。 引用3提到pg_dumppg_dumpall的异同,用户可能想知道两者的区别,但当前问题主要关注pg_dump,所以可以在相关问题中提及,或者在回答末尾简要说明,确保内容不偏离主题。 用户需求是了解使用方法及参数说明,因此需要分点列出常用参数,如连接参数、输出控制、备份格式、其他功能等。每个参数需要给出示例,比如-Fc表示自定义格式,-Fd是目录格式,并说明它们的适用场景。 另外,用户可能关心如何恢复备份,虽然问题中没有直接提到,但引用2提到了pg_restore,所以在示例中可以包含恢复命令,帮助用户全面了解流程。例如,使用pg_restore恢复自定义格式的备份。 需要注意避免错误,比如不同格式对应的恢复方式不同。纯SQL可以用psql,而自定义格式必须用pg_restore。同时,权限问题可能需要提到--no-owner和--no-privileges选项。 最后,生成相关问题,引导用户进一步学习,如性能优化、增量备份、加密等,这些问题可以基于常见的使用场景提出,帮助用户深入理解。 总结步骤: 1. 介绍pg_dump的基本作用。 2. 语法结构说明,结合引用1。 3. 常用参数分类:连接选项、输出控制、备份格式、其他功能。 4. 示例命令,包括不同格式的备份和恢复。 5. 注意事项,如权限、恢复方法。 6. 相关问题生成,覆盖参数优化、加密、对比pg_dumpall等。</think>### PostgreSQL pg_dump 使用方法及参数说明 `pg_dump` 是 PostgreSQL 用于逻辑备份的核心工具,可将数据库导出SQL 脚本或特定格式的备份文件,便于恢复或迁移[^1]。 --- #### **一、基础语法** ```bash pg_dump [连接选项...] [选项...] [数据库名] ``` - **连接选项**:用于指定数据库连接信息 - `-h` 或 `--host`:数据库主机地址(默认 `localhost`) - `-p` 或 `--port`:数据库端口(默认 `5432`) - `-U` 或 `--username`:连接用户名(默认当前系统用户) - `-W` 或 `--password`:强制提示输入密码 - **常用选项**: - `-f` 或 `--file`:指定输出文件路径(默认输出到标准输出)[^2] - `-F` 或 `--format`:指定备份格式(`plain` 纯文本、`custom` 自定义格式、`directory` 目录格式等) - `-v` 或 `--verbose`:显示详细备份过程 - `-s` 或 `--schema-only`:仅备份表结构(不包含数据) - `-a` 或 `--data-only`:仅备份数据(不包含表结构) - `--no-owner`:忽略对象权限信息(恢复时使用当前用户) - `--no-privileges`:不备份权限配置 --- #### **二、典型用法示例** 1. **备份为纯 SQL 文件**(默认格式): ```bash pg_dump -h 127.0.0.1 -p 5432 -U postgres -v -f db.sql mydatabase ``` 恢复时使用 `psql`: ```bash psql -h 127.0.0.1 -U postgres -d newdb -f db.sql ``` 2. **自定义格式备份**(支持压缩和并行恢复): ```bash pg_dump -Fc -v -f mydb.custom mydatabase ``` 恢复时需用 `pg_restore`: ```bash pg_restore -d newdb mydb.custom ``` 3. **仅备份特定表**: ```bash pg_dump -t 'public.users' -t 'public.orders' mydatabase > tables.sql ``` --- #### **三、注意事项** - 备份时需确保用户对目标数据库有**读取权限**。 - 自定义格式(`-Fc`)备份支持**并行导出/导入**(通过 `-j` 参数)。 - 若需备份全局对象(如角色、表空间),需结合 `pg_dumpall` 使用[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值