dump的文件 查看pg_PostgreSQL数据库学习--备份和恢复pg_dump测试

本文详细介绍了PostgreSQL数据库的备份方法,包括SQL转储、文件系统级别备份和在线备份。重点讨论了pg_dump工具的使用,包括备份与恢复的命令、事务处理和跨设备数据迁移。此外,还提到了文件系统级别备份的限制以及在线备份的优势。
摘要由CSDN通过智能技术生成

数据库需要经常的备份,PostgreSQL也需要备份。备份PostgreSQL数据库由三种不同的方法。

>> SQL转储

>> 文件系统级别备份

>> 在线备份

SQL转储

该转储方法是创建一个文本文件保存SQL命令。当把该文件反馈给服务后,将重新创建数据库到转储时候的状态。提供了pg_dump命令来完成转储操作。

pg_dump -p port -h IP-address  -U roleName dbName > outfile

pg_dump 是一个普通的 PostgreSQL 客户端应用,这就意味着可以从任何可以访问该数据库的远端主机上面进行备份。 但是请记住 pg_dump 不会以任何特殊权限运行,因此需要备份时的用户需要有所有备份表的读权限。

pg_dump的有两个较大的优势: (1) 可以较新的版本中使用就版本数据的备份文件。(2)pg_dump是唯一能够在不同机器架构间传递信息的。 pg_dump是实际上保存的是进程开始执行时的一个数据库快照,因此并不会挂起数据库的其他操作。

如果在数据库的表依赖OIDs,那么必须通告pg_dump同时备份这些OIDs。可以通过选项-o设定。

在Postgres-XL中pg_dump和pg_dumpall实际上是备份了协调器和数据节点的所有数据,其输出中额外包含了表的分布式信息。通常只能在协调器上进行备份,在数据节点上备份会出现失败。

恢复转储

使用pg_dump创建的文本文件可用于psql程序读,实现数据的恢复操作:

psql -p port -h IP-address dbname < infile

该命令并不会创建对应的dbname,在执行该命令之前必须用template0(原因是该数据库为纯净的模板)创建对应的dbname。基本的操作如下所示:

createdb -p port -h IP-address -T template0 dbname

同时在恢复SQL时,原来存在的用户信息必须存在,且授权相关的操作权限。通常情况下当psql失败是会继续执行,因此可以设置出错停止。如psql --set ON_ERROR_STOP=on dbname < infile

但这种方式会导致部分信息已经残余,因此可以将整个恢复过程当做当个事务处理,事务成功将提交失败将回滚,可以通过psql --single-transaction选项进行设置,将整个恢复作为单事务处理。

采用管道的方式可以实现将一台设备的数据备份到另外一台设备上。

pg_dump -p port -h host1 dbname | psql -p port -h host2 dbname

通常在恢复完成之后,直接进行ANALYZ,更新数据库的相关统计信息,便于数据库优化器进行执行计划的创建。

基本的备份测试如下所示:

[xxxx@drdb02 coordinator]$pg_dump -p 11951 mytest > /ire_gp/xxxx/mytestbk

[xxxx@drdb02 coordinator]$vi /ire_gp/xxxx/mytestbk

--

-- PostgreSQL database dump

--

...

--

-- Name: mytest; Type: TABLE; Schema: public; Owner: xxxx; Tablespace:

--

CREATE TABLE mytest (

name text,

code integer NOT NULL,

age integer

)

DISTRIBUTE BY HASH (name);

...

COPY mytest (name, code, age) FROM stdin;

ffp     3       37

bl      4       27

xyw     5       34

whd    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值