PostgreSQL数据库导出命令pg_dump详解

pg 备份恢复之 pg_dump pg_dump pg_dump — 把 PostgreSQL 数据库抽取为一个脚本文件或其他归档文件 大纲: [root@pg-test ~]# pg_dump --help pg_dump dumps a database as a text file or to other formats. Usage: pg_dump [OPTION]... [DBNAME] 描述: pg_dum... 阅读详情
pg_dump 是一个将 PostgreSQL 数据库保存到一个脚本或者归档文件中的工具. 这个脚本文件的格式是纯文本,它包含许多 SQL 命令, 这些 SQL 命令可以用于重建该数据库并将之恢复到保存成脚本的时候的状态. 要恢复这些脚本,使用 psql。 它们甚至可以用于在其它机器甚至是其它硬件体系的机器上 重建该数据库,通过对脚本进行一些修改,甚至可以在其它 SQL 数据库产品 上重建该数据库. 另外,还有候选的归档文件格式可以和 pg_restore 一起使用重建数据库, 并且它们也允许 pg_restore 对恢复什么东西进行选择, 或者甚至是在恢复之前对需要恢复的条目进行重新排序. 归档文件也是设计成可以跨平台移植的. pg_dump 将保存用于重建所有用户定义的类型,函数,表, 索引聚集和操作符所必须的信息.另外, 所有数据是用文本格式拷贝出来的,因而也可以很容易地拷贝回去, 也很容易用工具编辑. 如 果一种候选文件格式和 pg_restore 结合,那么pg_dump就能提供一种灵活的归档和传输机制. pg_dump 可以用于备份整个数据库, 然后就可以使用 pg_restore 检查 这个归档和/或选择要恢复的数据库部分. 最灵活等输出文件格式是"custom(客户化)"格式 (-Fc).它允许对归档元素进行选取和重新排列, 并且缺省时是压缩的.tar 格式 (-Ft) 不是压缩的并且我们在装载等时候不可能重排列, 不过它也很灵活;还有,它可以用其它工具,比如 tar 处理. 在运行 pg_dump 的时候,我们应该检查 输出,看看是否有任何警告存在(在标准错误上打印), 特别是下面列出的限制. 即使数据库在并行使用着的时候,pg_dump 也制作出连贯的备份.pg_dump 并不阻塞其它 用户对数据库的访问(读或写). 选项 下面的命令行参数用于控制输出格式。 dbname 声明将要转储的数据库名. 如果没有声明这个参数,那么使用环境变量 PGDATABASE。 如果那个环境变量也没声明,那么用发起连接的用户名。 -a --data-only 只输出数据,不输出结构(表定义). 这个选项只是对纯文本格式有意义.对于其它格式,你可以在调用 pg_restore 的时候声明选项. -b --blobs 转储数据和 BLOB 数据. -c --clean 输出在创建数据库创建命令之前先清理(删除) 该数据库对象的命令. 这个选项只是对纯文本格式有意义.对于其它格式,你可以在调用 pg_restore 的时候声明选项. -C --create 以一条创建该数据库本身并且与这个数据库联接等命令开头进行输出. (如果是这种形式的脚本,那么你在运行脚本之前和哪个数据库联接就 不重要了.) 这个选项只对纯文本格式有意义.对于其它格式,你可以在调用 pg_restore 的时候声明该选项. -d --inserts 将数据输出为的INSERT命令 (而不是 COPY). 这样会导致恢复非常缓慢.但却令归档更容易移植到其它 SQL 数据库. -D --column-inserts --attribute-inserts 把数据转储为带有明确字段名的 INSERT 命令. 这样会导致恢复非常缓慢, 但是如果你想重新排列字段的顺序,那么它是必须的. -f file --file=file 把输出发往指定的文件.如果忽略这些,则使用标准输出. -F format --format=format 选择输出的格式. format可以是下列之一: p 输出纯文本SQL脚本文件(缺省) t 输出适合输入到 pg_restore 里的tar归档文件. 使用这个归档允许在恢复数据库时重新排序和/或把表结构排除在外. 同时也可能可以在恢复的时候限制对哪些数据进行恢复. c 输出适于给 pg_restore 用的客户化归档. 这是最灵活的格式,它允许对装载的数据和纲要元素进行重新排列. 这个格式缺省的时候是压缩的. -i --ignore-version 忽略在 pg_dump 和数据库服务器之间的版本差别. pg_dump 可以处理来自以前版本的PostgreSQL 的数据库,但是太老的版本则不被支持了(目前是支持到 7.0)。 如果你需要跨越版本检查时才使用这个选项( 而且如 pg_dump 失效,别说我没警告你). -o --oids 为每个表都输出对象标识(OID). 如果你的应用在某种程度上引用了OID字段的话,(比如,在外键约束中 用到). 那么使用这个选项. 否则,不应该使用这个选项. -O --no-owner 不 把对象的所有权设置为对应源数据库. 通常, pg_dump 发出 (psql特有的) /connect 语句以设置纲要元素的所有权. 又见 -R 和 -X use-set-session-authorization 选项. 请注意 -O 并不防止所有对数据库的重新联接, 只是防止那些为调整权限进行的排它联接. 这个选项只是对纯文本格式有意义.对于其它格式,在你调用 pg_restore 的时候你可以声明该选项. -R --no-reconnect 禁止 pg_dump 发出任何 /connect 语句. 在 纯文本输出模式下,禁止 pg_dump 输出那种需要在恢复数据库的过程中重新联接数据库的脚本. 一般的恢复脚本通常需要以不同的用户与服务器联接多次以设置 该对象最初的所有权.这个选项是一个相当粗糙的指令,因为 它令 pg_dump 失去了这个权限信息, 除非你使用 -X use-set-session-authorization 选项. 我们不想在恢复的过程中重新联接的一个可能原因是也许对 数据库的访问需要手工干涉(也就是说,口令). 这个选项只是对纯文本格式有意义.对于其它格式, 你在调用 pg_restore 的时候可以声明选项. -s --schema-only 只输出表纲要(定义),不输出数据. -S username --superuser=username 在某些场合,pg_dump 创建的脚本或者归档需要有 超级用户访问的权限,比如在关闭触发器或者为大纲元素甚至所有属性时. 这个选项声明在这些场合时使用的用户名. -t table --table=table 只输出表 table的数据. -v --verbose 声明冗余模式。 这样将令 pg_dump 在标准错误上打印 进度信息。 -x --no-privileges --no-acl 避免输出 ACL(赋予/撤消 命令)和表的所有者关系信息. -X use-set-session-authorization --use-set-session-authorization 通 常,如果一个 pg_dump 生成的(纯文本模式)脚本 必须更改当前的数据库用户(比如,设置正确的对象所有权)的时候, 它使用 psql /connect 命令. 这条命令实际上打开一个新的联接,这个时候可能需要收工干涉 (比如,输入口令).如果你使用 -X use-set-session-authorization,那么 pg_dump 则会输出 SET SESSION AUTHORIZATION 命令.这么做效果相同, 但是它要求使用生成的脚本做数据库恢复的用户是数据库超级用户. 这个选项有效地覆盖了 -R 选项. 因为 SET SESSION AUTHORIZATION 是一个 标准的 SQL 命令,而 /connect 只能用于 psql,因此这个选项同时还在理论上增加 了输出脚本的可移植性. 这个选项只对纯文本格式有意义.对于其它格式,你可以在你调用 pg_restore 的时候声明该选项. -Z 0..9 --compress=0..9 声明在那些支持压缩的格式中使用的压缩级别. (目前只有客户化格式支持压缩). 下面的命令行参数控制数据库为联接参数。 -h host --host=host 声明运行服务器 的机器的主机名.缺省是使用本地Unix主控套接字,而不是一个 IP 联接. 如果主机名以斜扛开头,则它被用做到 Unix 域套接字的路径. -p port --port=port 声明服务器 正在侦听并等待联接的TCP/IP 端口或本地 Unix 主控套接字文件句柄. 缺省的端口号是5432,或者环境变量 PGPORT 的值(如果存在). -U username 以给出用户身分联接. -W 强制口令提示.如果服务器需要口令认证,那么这个动作应该自动发生. 只有在一些平台上才有长选项形式。 环境 PGDATABASE PGHOST PGPORT PGUSER 缺省连接参数 诊断 Connection to database 'template1' failed. connectDBStart() -- connect() failed: No such file or directory        Is the postmaster running locally        and accepting connections on Unix socket '/tmp/.s.PGSQL.5432'? pg_dump 无法与指定主机和端口上的 PostgreSQL 服务器 相联.如果看到这条信息,确认 服务器 正在给定的主机上你所声明的端口上运行. dumpSequence(table): SELECT failed 你没有读取数据库的权限. 和你的 PostgreSQL 节点管理员联系. 注意: pg_dump 在内部使用 SELECT 语句.如果你运行 pg_dump 时碰到问题,确认你能够使用象 psql 这样的程序从数据 库选择. 注意 如 果你的安装给 template1 数据库增加了任何你自己的东西, 那么请注意把 pg_dump 的输出恢复到一个 真正空的数据库中;否则你可能会收到因为重复定义所追加的对象 而造成的错误信息.要制作一个没有任何本地附属物的数据库, 可以从 template0 而不是 template1 拷贝,比如∶ CREATE DATABASE foo WITH TEMPLATE template0; pg_dump 有几个限制∶ 在转储一个表或者作为纯文本转储时,pg_dump 无法操作 大对象.大对象必须整体地使用二进制归档格式中的一种进行转储. 在进行纯数据转储时,pg_dump 发出一些查询先关闭在用户 表上面的触发器,然后插入数据,数据插入完成后再发出查询打开触发器. 如果恢复动作在中间停止,那么系统表可能就会处于一种错误状态. tar 归档的成员的大小限制于 8 GB。(这个限制是 tar 文件格式 的固有限制。)因此这个格式无法用于那些一个表的大小超过这个 尺寸的原文表现。tar 归档和任何其它输出格式的总大小是不受 限制的,只是可能会又操作系统的限制。 例子 转储一个数据库∶ $ pg_dump mydb > db.out 重载这个数据库∶ $ psql -d database -f db.out 输出一个叫 mydb 的包含BLOB 的数据库到一个 tar 文件: $ pg_dump -Ft -b mydb > db.tar 把这个数据库(连同BLOB) 一起恢复到一个现有的叫 newdb 的数据库: $ pg_restore -d newdb db.tar 历史 pg_dump 工具最早出现在 Postgres95 版本0.02. 非纯文本输出格式在 PostgreSQL 版本 7.1 时引入.
PostgreSQL备份与恢复(第一章) 作者:徐田原 引言 PostgreSQL官方文档指定了以下三种备份方法,详见:https://www.postgresql.org/docs/current/backup.html -「SQL转储」,用pg_dump或pgdump_all进行备份,也是一种逻辑备份的方法,这种方法很容易操作,但是缺点就是一旦数据库太大,导入导出文件的效率就会降低。但是有了并行备份恢复和split拆分,也可以在这方面稍微优化。另一个缺点是无法恢复到故障发生的时刻。例如,你使用crontab定时任务在凌晨3点进行备份,结果12点 阅读详情

相关推荐

postgresql之pg_dump命令详解 - wling_89的专栏 - 博客频道 - youkuaiyun.com.mht

PG导入导出命令详解

pg数据库迁移数据问题

1,pg_dump备份数据: 备份数据是一个很简单的操作,只需要一个命令即可完成 pg_dump -U user -h host -p port -d database -f file.sql 2,创建数据库 创建数据库命令: create database test 如果原数据库表用了postgis,需要在新的数据库也创建postgis,不然导入数据一般会报错 在public这个schema创建...

weixin_43966390的博客 1155

实现 PDF 添加水印的五种方式

PDF(Portable Document Format,便携式文档格式)是一种流行的文件格式,它可以在多个操作系统和应用程序中进行查看和打印。在某些情况下,我们需要对 PDF 文件添加水印,以使其更具有辨识度或者保护其版权。本文将介绍如何使用 Spring Boot 来实现 PDF 添加水印的方式。

逸轩 6472

要导出 PostgreSQL 数据库中的数据使用 pg_dump 命令

如果只需要导出数据库中的数据(不包括表结构),可以使用 -a 选项。-f output_file.sql:指定输出文件名,导出的数据将保存到该文件中。使用 pg_dump 命令来导出整个数据库,包括表结构、数据等。如果只需要导出特定表的数据,可以使用 -t 选项指定表名。-d dbname:指定要导出的数据库名。-h hostname:指定数据库主机名。-U username:指定数据库用户。-t tablename 指定表名。-p port:指定数据库端口号。

世上哪有什么岁月静好,不过是有人替你负重前行 3378

DSP TMS320C6657中FFT函数的调用与具体使用方法

首先明确一点,C6678中FFT的函数形式为: N : length of FFT in complex samples ptr_x : pointer to complex data input ptr_w : pointer to complex twiddle factor ptr_y : pointer to complex output data brev : pointer to bit reverse table containing 64 entries n_min : should be

Kayboy的博客 3012

速腾聚创激光雷达复现FAST-LIO

记录复现FAST-LIO算法的过程和,代码梳理和理解。FAST-LIO的简化版、注释版。速腾激光雷达

abanchao的博客 2930

dump的文件 查看pg_PostgreSQL数据库导出命令pg_dump详解

http://huangro.javaeye.com/blog/366038pg_dump是一个将PostgreSQL数据库保存到一个脚本或者归档文件中的工具.这个脚本文件的格式是纯文本,它包含许多SQL命令, 这些SQL命令可以用于重建该数据库并将之恢复到保存成脚本的时候的状态.要恢复这些脚本,使用 psql。 它们甚至可以用于在其它机器甚至是其它硬件体系的机器上 重建该数据库,通过对脚本进行一...

weixin_39559119的博客 1191

华为OD机试真题-查找单入口空闲区域(Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【查找单入口空闲区域】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 查找单入口空闲区域。

qq_45776114的博客 1268

如何通过pg_dump命令导出Postgresql数据库的表结构

pg_dump -U postgres --verbose --schema-only --table=manager --db=notes --file=/root/manager.sql

HardProgrammer的博客 915

杰理AC695N芯片跑iic接口的oled驱动分享

本文介绍了一个基于IIC接口的0.96寸OLED显示屏驱动程序,适用于SSD1306控制器。驱动采用软件模拟IIC方式,支持字符、数字、字符串、汉字和图片显示,测试平台为杰理AC695N系列芯片。硬件参数包括128×64分辨率,IIC接口(地址0x78),使用IO_PORTA_02(SDA)和IO_PORTA_03(SCL)引脚。驱动包含OLED主文件(oled.c/h)、软件IIC实现(soft_iic.c/h)和字体/图片数据文件(oledfont.h/bmp.h),可通过修改soft_iic.h中的引

qq_42014563的博客 882

基于STM32的智慧农业大棚监测与控制系统设计与实现

摘要:本文设计了一种基于STM32F103C8T6单片机的智慧农业大棚监测与控制系统,集成多参数环境监测、智能控制和远程管理功能。系统可实时采集光照、CO2、温湿度和土壤湿度等参数,通过OLED显示并采用双模式控制机制:自动模式下根据阈值调节设备,手动模式下支持APP或按键控制。通过ESP8266模块接入机智云平台实现数据云存储和远程控制。测试表明系统具有高精度(温度±0.5℃、CO2±50ppm)、快速响应(<2s)和稳定运行(30天无故障)等特点,有效解决了传统大棚调控不及时等问题。创新点包括多参

3254968421的博客 485

postsql 以二进制的数据导出sql内容

请确保你有足够的权限来运行pg_dump,并且替换your_table_name、your_username、your_database_name和output_file.sql为实际的表名、用户名、数据库名和输出文件名。在PostgreSQL中,如果你想要以二进制格式查看某个表中的数据,你可以使用pg_dump命令行工具配合-b选项来导出二进制格式的数据。导出的数据将会保存在output_file.sql中,你可以用任何文本编辑器打开它,查看二进制格式的数据。-b 表示以二进制格式导出数据。

huangjiazhi_的博客 654

人工智能数据治理——解读AI时代数据治理白皮书 2025【附全文阅读】

摘要:该白皮书面向企业数字化负责人及AI项目推进人员,探讨AI时代数据治理的战略升级。提出"好数据+好数据知识"双基石理念,强调数据需满足"三高"标准(高精度、一致性、时效性)并构建语义知识库。构建四层治理框架,包括数据采集处理、合规安全、知识库建设及质量改进,并介绍AI赋能治理的新范式,如智能ETL和治理Agent体系。同时分析"软件+AI+好数据"的应用模式,为企业实现智能数据治理提供实践指导。(149字)

cdfunlove的博客 633

postgresql 导出mysql_postgresql 导出和导入数据库

使用 pg_dump 和 pg_restore 来备份和还原 postgresql的数据;导出:pg_dump导入:pg_restore最简单的导出命令如下:(导出指定数据库)$ pg_dump db_name > db.sql注意:导出来的sql格式和 mysqldump导出的还是有很大区别的;如果出现 bash: db.sql: Permission denied, 则有可能是目录权限的...

weixin_29432421的博客 344

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

瀚高数据库导出数据sql脚本

瀚高数据库提供pg_dump和highgo_dump两种工具进行数据导出,支持全库/单表、结构/数据等灵活备份方式。工具位于安装目录bin下,可通过环境变量配置快捷调用。基础导出命令为pg_dump -U 用户名 -d 库名 -f 路径.sql -F p,支持仅数据(-a)、仅结构(-s)、指定表(-t)等场景。导入时使用psql执行SQL脚本,需注意端口(默认5866)、权限、编码一致性等关键点。该方案适用于数据库迁移和备份恢复需求。

王小工小工历程 1136

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

spatie/db-dumper源码解析:如何用PHP优雅调用mysqldump和pg_dump

spatie/db-dumper是一个功能强大的PHP库,它提供了一种优雅的方式来调用mysqldump、pg_dump等数据库备份工具,帮助开发者轻松实现数据库内容的导出功能。通过这个库,即使是新手开发者也能快速掌握数据库备份的实现方法。 ## 核心架构设计:面向对象的数据库备份解决方案 spatie/db-dumper采用了抽象基类与具体实现类相结合的设计模式,这种架构让代码更具可维护性和

gitblog_00606的博客 417

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Postgresql备份和恢复

C:\Program Files\PostgreSQL\9.0\bin&gt;pg_dump -U postgres db_jwb &gt; D:\code\task\no te\createNote.sql  

wyzxzws的专栏 134

PostgreSQL数据库导出建表语句的方法

pg_dump -U postgres -d dbname -s > sql.txt 

zhangjingqiang的专栏 1万+

antDB和PostgreSQL数据库数据及对象导出导入(备份与恢复)

pg_dump是PostgreSQL和antDB数据库用于导入导出的工具,它可以在数据库正在使用的时候进行完整的备份,不影响其它用户对数据库的访问操作。由于antdb数据库底层核心来自PostgreSQL,因此部分工具是通用的。 记录如下命令,方便日后备份与恢复操作。 导出(备份)命令: // 参数db_bak.dump表示导出到哪个目录的哪个文件,dbname参数表示数据库名称 pg_dump -f db_bak.dump dbname 导入(恢复)命令: // -d dbname 参数 是指定数据库

yump的博客笔记 896

pg_dump和pg_restore对PostgreSql进行备份和还原

PG BACKUP

weixin_48277414的博客 1万+

PostgreSQL操作-psql基本命令和导出数据

1、接入PostgreSQL数据库: psql -h IP地址 -p 端口 -U 数据库名 2、

weixin_42324471的博客 2997

PostgreSQL数据库导出完整指南:告别中文乱码问题

使用PostgreSQL官方的pg_dump完美解决中文乱码问题- 通过参数确保编码正确功能强大- 支持多种导出格式和过滤选项性能优异- 适合大数据量的导出操作自动化友好- 易于编写脚本实现自动化备份掌握pg_dump的使用方法,不仅能够解决日常的数据导出需求,还能建立稳定可靠的数据库备份体系。建议开发者放弃容易出现编码问题的图形工具,转而使用这个强大的命令行工具。指定UTF-8编码、选择合适的输出目录、使用完整路径(如果需要),就能轻松完成PostgreSQL数据库的导出操作!

慵懒 随和 1188
上一篇: Request.Params用法
下一篇: PostgreSQL数据库导出命令pg_dump详解
pythoner
博客等级 码龄18年 15粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值