一、pg_dump含义 pg_dump 是一个用于备份 Postgresql 数据库的实用程序。由 pg_dump 备份的转储文件是完全一致的,因为转储是 pg_dump 开始运行时数据的快照。 pg_dump 不会阻止其他用户访问数据库。如果普通用户已被授予数据库权限,则可以运行 pg_dump 。 pg_dump 只能备份一个数据库。 Pg_dumpall 用于备份整个集群或备份集群中所有数据库共有的公共对象。 二、pg_dump文件类型 转储文件可以脚本或存档文件格式导出。 脚本转储文件是纯文本文件,其中包含将数据库恢复到保存时所处状态所需的 SQL 命令。使用以此方式创建的脚本;使用 psql 或其他工具运行生成的 sql 文件将数据库恢复到当前状态就足够了。必须先创建相关的数据库,然后才能运行此命令,否则默认情况下将在 postgres 数据库中创建对象。 如果不想手动创建数据库,则必须使用 pg_dump 以存档文件格式,以自定义,目录, tar方式来 创建备份。然而,像这种情况下,需要使用 pg_restore 工具来恢复数据。 三、pg_dump语法 pg_ dump [connection-option …] [option …] [dbname] -h 参数指定要备份的数据库的主机 -p 参数指定端口 -U 参数指定数据库用户 四、pg_dump备份与恢复 4.1 使用pg_dump备份与恢复数据库 1、 备份数据库 可以使用几种不同的语法生成名为 zabbix 的数据库的 SQL 转储文件。 pg_dump zabbix > db.sql pg_dump -h localhost -p 5432 -U postgres zabbix > /home/postgres/dump/db_data.sql pg_dump -h localhost -p 5432 -U postgres zabbix -f /home/postgres/dump/db_data.sql 2、恢复 数据库 可以将创建的转储文件还原为另一个名为 zabbix 的数据库。 psql -d zabbix -f /home/postgres/dump/db_zabbix_data.sql psql -f /home/postgres/dump/db_zabbix_data.sql -d newzabbix -p 5432 -U postgres 4.2 、 pg_dump 自定义格式 使用以下命令以自定义文件格式创建 zabbix 数据库的转储。通过这种方式生成的备份文件将比 sql 文件小得多,因为在后台使用 zlib 压缩了该文件。 pg_dump -Fc zabbix > /home/postgres/dump/zabbix_db.dump 从自定义文件格式转储恢复数据库 pg_restore -d test_zabbix /home/postgres/dump/zabbix_db.dump 4.3 pg_dump目录格式 使用以下命令以目录格式创建 zabbix 数据库的转储。 pg_dump -Fd zabbix -f dumpdirectory 或使用并行方式备份 pg_dump -Fd zabbix -j 5 -f dumpdir 从目录文件恢复数据库 pg_restore -Fd -l dumpdirectory 4.4、pg_dump tar格式备份 下面的命令以 tar 文件格式创建 mydb 数据库的转储文件。 pg_dump -Ft zabbix> /home/postgres/dump/zabbix_db.tar 从tar文件还原Postgres数据库 pg_restore -Ft -d zabbix /home/postgres/dump/zabbix_db.tar 4.5、pg_dump指定表备份 1、备份指定的表 pg_dump -t table1 -d zabbix > /home/postgres/dump/table1.sql 2、备份名称以tbl开头的表 pg_dump -t 'tbl*' -d zabbix > /home/postgres/dump/tbl.sql 3、备份名称以tbl开头但不是tbl_mustafa的表 pg_dump -t 'tbl*' -T tbl_mustafa -d zabbix > /home/postgres/dump/tbl1.sql 4、备份名称以East或West开头并以gsm结尾的所有模式,并排除名称包含test的所有模式 pg_dump -n 'east*gsm' -n 'west*gsm' -N '*test*' zabbix >/home/postgres/dump/tbl2.sql pg_dump -n '(east|west)*gsm' -N '*test*' zabbix > db.sql 5、导出数据、不导表结构 pg_dump -a zabbix > /home/postgres/dump/tbl1.sql pg_dump --data-only zabbix > /home/postgres/dump/tbl1.sql 4.6、pg_dump压缩 以下命令用于通过 pg_dump 进行压缩备份。 pg_dump zabbix | gzip -9 > zabbix.gz 4.7、pg_dump拆分 将转储输出拆分为一定大小的多个文件 pg_dump zabbix | split -b 1m – files 恢复拆分转储文件 cat files* | psql zabbix 4.8、pg_dump ON_ERROR_STOP 默认 ; 如果还原时发生错误,则 psql 将忽略该错误并继续运行。我们可以通过设置 ON_ERROR_STOP 变量来自定义这种情况。执行此命令后,代码将一直运行到发生错误的行,但后续行将不被处理。 psql --set zabbix < zabbix.sql 4.9、pg_dumpall备份 pg_dumpall 备份集群的所有内容。 pg_dumpall 为给定集群中的每个数据库创建一个备份,并为集群范围的角色和表空间定义之类的数据创建备份。 使用 pg_dumpall 进行恢复时,始终需要超级用户访问权限才能恢复角色和表空间信息。 pg_dumpall 发送命令来创建角色,表和空数据库,然后为每个数据库运行 pg_dump 。 备份全库: pg_dumpall > all_dbdata.sql pg_dumpall -f all_dbdata.sql 恢复全库: psql postgres < all_dbdata.sql psql -f all_dbdata.sql postgres
postgresql备份与恢复数据库
来源:这里教程网
时间:2026-03-14 20:13:41
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 大会倒计时|2020 PostgreSQL亚洲大会-中文分论坛议程安排
大会倒计时|2020 PostgreSQL亚洲大会-中文分论坛议程安排
26-03-14 - 嘉宾专访|2020 PostgreSQL亚洲大会阿里云数据库专场:樊文凯
嘉宾专访|2020 PostgreSQL亚洲大会阿里云数据库专场:樊文凯
26-03-14 - 2020年数据库技术大会助力技术提升
2020年数据库技术大会助力技术提升
26-03-14 - 嘉宾专访|2020 PostgreSQL亚洲大会中文分论坛:孙彪
嘉宾专访|2020 PostgreSQL亚洲大会中文分论坛:孙彪
26-03-14 - PostgreSQL与2020 PGConf.aisa数据库大会值得关注!
- 嘉宾介绍|2020 PostgreSQL亚洲大会中文分论坛:潘娟
嘉宾介绍|2020 PostgreSQL亚洲大会中文分论坛:潘娟
26-03-14 - 嘉宾专访|2020 PostgreSQL亚洲大会中文分论坛:韩国盛
嘉宾专访|2020 PostgreSQL亚洲大会中文分论坛:韩国盛
26-03-14 - RockyLinux sar命令详解(系统活动报告入门与实战指南)
RockyLinux sar命令详解(系统活动报告入门与实战指南)
26-03-14 - PostgresConf.CN&PGConf.Asia2020活动最新报道
- 嘉宾专访|2020 PostgreSQL亚洲大会主论坛:韩锋
嘉宾专访|2020 PostgreSQL亚洲大会主论坛:韩锋
26-03-14
