pg_dump

太阳2年前技术文章1109

逻辑备份

    PG提供了pg_dump、pg_dumpall两种方式进行逻辑备份,其区别就是pg_dumpall只能将数据库全部数据集dump到一个脚本文件中,而pg_dump可以选择指定数据库进行逻辑备份。两者均可以保证dump数据的一致性,且不阻塞其他会话的正常读写操作。

pg_dump语法

pg_dump [connection_option] [option] [dbname]

connection_option

参数

含义

-h/--host

主机host

-p/--port

端口port

-U

用户名username

-w

从不提示密码,若服务器请求需要密码认证,且密码无法通过其他方式获取会导致命令连接失败

-W

强制pg_dump连接一个数据库之前提示密码,一般不需要关注该参数

--role

若验证用户权限不够该命令可保证切换至到相应权限的角色下

dbname

指定逻辑备份数据库

option

参数

含义

-a/--data-only

只输出数据、不输出表定义SQL语句,只针对纯文本格式有意义

-b/--blob

dump是否包含大对象,该参数默认打开

-c/--clean

是否包含清理对象语句,只针对纯文本格式有意义

-C/--create

是否输出create database语句,只针对纯文本格式有意义

-E/--encoding

指定字符集编码格式

-f/--file

输出到指定文件

-F/--format

p、c、d、t四种格式,详情如下

-n/--schema

只转储满足匹配下的schema包含的对象、可指定多个模式、也可以使用通配符匹配

-N/--exclude-schema

不转储满足匹配条件下指定的schema下的对象

-O/--no-owner

表示不把对象所有权设置为源数据库中的owner

-s/--schema-only

只输出对象定义,不输出数据

-t/--table

只转储满足匹配的表、视图、序列

-T/--exclude-table

不转储满足匹配条件下的表

-Z/--compress=0...9

压缩级别,0表示不压缩。默认不压缩

--insert

将数据转储为SQL语句格式,该参数下恢复速度会很慢

--column-inserts

转储为Insert into table(col,..) values的格式,避免了--insert下源目标端表列顺序不一致导致数据恢复报错

--lock-wait-timeout

指定在dump时等待获取共享表锁的超时时间

--no-tablespaces

转储数据不输出选择指定的表空间,表示恢复数据都使用默认表空间

pg_dump 支持4种格式

  • p, plain:

默认格式, 备份输出为可读的text文本. 还原时在数据库中直接执行备份文本的SQL即可.

  • c, custom

可自定义的归档格式, 同时默认开启了数据压缩,还原时可以调整备份对象的还原顺序,同时支持选择还原的对象。

备份写入到一个文件中. 需要注意文件系统支持的单个文件大小。

这个格式必须使用pg_restore命令进行还原。

  • d, directory

目录归档格式, 与custom格式类似, 需要使用pg_restore还原. 但是目录归档格式下会创建一个目录, 然后每个表或者每个大对象对应一个备份输出文件.

加上TOC文件名描述备份的详细信息, 这个格式默认支持压缩, 同时支持并行导出.

  • t, tar

tar归档格式, 不支持压缩, 同时限制每个表最大不能超过8GB, 同样需要使用pg_restore还原.


示例

备份指定数据库下所有对象

pg_dump -U xxx -p xxx -h xxx db_name -f db_name.sql

备份指定数据库下的指定表

--备份public下的t1、t2表
pg_dump -U xxx -p xxx -h xxx db_name -n public -t t1 -t t2
--备份public下的满足t1*的所有表
pg_dump -U xxx -p xxx -h xxx db_name -n public -t 't1*'

将逻辑备份转储为custom-format的归档文件

pg_dump -U xxx -p xxx -h xxx db_name -Fc -f db1.dump

将逻辑备份通过directory-format进行归档备份,并开启一定并发线程

pg_dump -U xxx -p xxx -h xxx db_name -Fd -j 5 -f back.sql


标签: PostgreSQL

相关文章

pg_probackup

一、pg_probackup概述pg_probackup 是一款免费的postgres数据库集群备份工具,与其他备份工具相比,它主要有如下一些优势:提供增量备份,增量备份一定程度上可以节省磁盘空间的使...

REPMGR-PG高可用搭建(三)

REPMGR-PG高可用搭建(三)

2.2.2repmgr安装兼容性3节点均安装repmgr1.安装依赖 # yum install flex 2.下载解压 # wget -c https://repmgr.org/downloa...

PG体系结构(三)

PG体系结构(三)

四、物理结构4.1 软件安装目录bin             //二进制可执行文件 include         //头文件目录 lib             //动态库文件 share ...

REPMGR-PG高可用搭建(二)

REPMGR-PG高可用搭建(二)

REPMGR搭建步骤一、介绍repmgr是第二象限开源的一套流复制集群管理工具,用于管理PostgreSQL服务器群集中的复制和故障转移。 支持故障自动转移和手动切换;支持分布式管理集群节点,易扩展,...

PG参数整理

一、参数的分类参数的类型名称说明internal内部参数,只读无法修改。postgres程序写死或者是在初始化指定后无法修改的参数postmaster更改该类参数,需重启生效sighup不需重启,重新...

PG初识

PG数据库是一种典型的C/S模型应用,不同的客户端通过TCP/IP进行连接、每个连接启动一个fork进程(多进程数据库)。一、pg逻辑架构1.1 pg与MySQL异同对比逻辑架构postgresMyS...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。