pg_dump

太阳2年前技术文章646

逻辑备份

    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的统计信息(三)

1.3 数据分布类统计信息1.3.1 pg_stats通过对pg_stats的查询,可以查看每个字段的数据分析统计信息,类似SQL Server的直方图,为优化器选择最佳执行计划提供依据,pg_sta...

PG查询性能Top SQL

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

pgbench 压测工具

pgbench 压测工具

一、基本参数pgbench工具是Postgres自带的一款轻量型基准压测工具。它自定义相关场景下脚本进行1.1 初始化参数参数含义-i / --initialize调用初始化模式-I init_ste...

PG体系结构(三)

PG体系结构(三)

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

PG初识

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

PG的表膨胀

1 什么是表膨胀众所周知,PostgreSQL的多版本并发是通过保留变更前的记录来实现的。当数据记录被DML修改,旧版本记录仍保留不变,仅仅需要修改相关记录的xmin、xmax属性,并新增写入变更后的...

发表评论    

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