【PostgreSQL备份恢复】逻辑备份恢复

【PostgreSQL备份恢复】逻辑备份与恢复

前言

本文主要介绍PostgreSQL的逻辑备份与恢复

一 备份工具

备份工具备份缺点
pg_dumpall生成psql脚本,pg_dumpall 只支持文本格式,pg_dumpall需要多次连接到postgresql 服务器,每个数据库一次。如果你使用口令认证,可能每次都会要求口令。这种情况下使用一个~/.pgpass会比较方便
pg_dump只能备份单个数据库,无法恢复到故障发生的时刻.

pg_dump支持指定所要备份的对象:可以单独备份表、schema或者database;
pg_dumpall 仅支持导出全库数据。
pg_dump可以将数据备份为SQL文本文件格式,
也支持备份为用户自定义的压缩格式或者TAR包格式。

PostgreSQL 支持以下两种数据恢复方法:
1、使用psql恢复pg_dump或pg_dumpall工具生成的SQL文本格式的数据备份。
2、使用pg_restore工具来恢复由pg_dump工具生成的自定义压缩格式(-Fc)、
TAR 包格式(-Ft)或者目录格式(-Fd)备份。

二 pg_dump

2.1 pg_dump 备份

[root@localhost ~]# mkdir /pgback
[root@localhost ~]# chown postgres:postgres /pgback
[root@localhost ~]# su - postgres
postgres=# \c webdb 
You are now connected to database "webdb" as user "postgres".
webdb=# create table w_big (id int,info text); 
CREATE TABLE
webdb=# insert into w_big select n,'w_big' from generate_series(1,100) as n; 
INSERT 0 100
webdb=# select count(*) from w_big;
 count 
-------
   100
(1 row)
---备份
pg_dump webdb --file=/pgback/webdb.sql

2.2 pg_dump 恢复

---恢复 要先建一个库,然后恢复数据到库中
postgres=# drop database webdb;
postgres=# create database webdb;
psql --dbname=webdb --file=/pgback/webdb.sql

三 pg_dumpall

3.1 pg_dumpall 备份(导出)

# 导出所有数据库
[postgres@localhost ~]$ pg_dumpall  >/pgback/pg_all.sql
# 导出所有Role 和Tablespace 
[postgres@localhost ~]$ pg_dumpall -g >/pgback/pg_golbal.sql
# 只导出 Role
[postgres@localhost ~]$ pg_dumpall  -r >/pgback/pg_role.sql
#只导出 Tablespace
[postgres@localhost ~]$ pg_dumpall  -t >/pgback/pg_tables.sql

3.2 pg_dumpall 恢复 (导入)

恢复过程会创建或覆盖其他数据库
-U: 指定连接数据库的用户名
-d: 指定连接的数据库(默认postgres)
-f: 指定恢复的文件
psql -f /pgback/pg_golbal.sql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云计算老王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值