pg_dump

太阳1年前技术文章407

逻辑备份

    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查询性能Top SQL

一、查询当前正在运行的Top SQL    查询当前正在运行的会话中耗时最长的Top SQL,where条件可按需修改SELECT pgsa.datname AS database_name    ...

PG的锁(二)

四、死锁PostgreSQL自动检测死锁情况并会自动回滚其中一个事务进行处理,从而其他事务完成。db1=# select * from t1 where id in (1,2,3);  id | i...

REPMGR-PG高可用搭建(三)

REPMGR-PG高可用搭建(三)

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

pg_restore

逻辑备份恢复PG提供了pg_restore的命令可以为通过pg_dump转储的数据进行逻辑恢复。对于SQL脚本可通过psql进行恢复语法pg_restore [connection_option] [...

PG的统计信息(一)

一、统计信息1.1 PG统计信息概述pg的统计信息主要分为两种:第一类统计信息是是负载指标“统计信息”(Monitoring stats),通过stat collector进程进行实时采集更新的负载指...

PG的pathman分区表工具

一、概述在PG<=10的版本中,都是通过表继承的方式进行分区的,必须使用CHECK CONSTRAINT将每个分区创建为子表 。PostgreSQL 10提供了本机分区,它与经典方法没有什么不同...

发表评论    

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