接着上一篇pg备份文档:https://blog.csdn.net/weixin_41561946/article/details/104183555

六、 pgbackRest恢复

1. 查看现有备份

[cddb@cddb-node1 ~]$ pgbackrest info
stanza: demo
status: ok
cipher: aes-256-cbc
db (current)
wal archive min/max (11-1): 0000000A00000001000000F8/0000000A00000001000000FC
full backup: 20200204-163558F
timestamp start/stop: 2020-02-04 16:35:58 / 2020-02-04 16:46:14
wal start/stop: 0000000A00000001000000F8 / 0000000A00000001000000F8
database size: 3.9GB, backup size: 3.9GB
repository size: 810.3MB, repository backup size: 810.3MB
full backup: 20200205-142255F
timestamp start/stop: 2020-02-05 14:22:55 / 2020-02-05 14:30:50
wal start/stop: 0000000A00000001000000FB / 0000000A00000001000000FB
database size: 3.9GB, backup size: 3.9GB
repository size: 810.3MB, repository backup size: 810.3MB

2. 准备恢复环境

数据目录:/cddb5.0/data2
表空间目录:/cddb5.0/tablespace
关闭数据库
pg_ctl stop –D /cddb5.0/data2
删除data2/和tablespace目录
rm –f /cddb5.0/data2/*
rm –f /cddb5.0/tablespace

3. 执行完全恢复操作

[cddb@cddb-node1 cddb5.0]$ pgbackrest restore --stanza=demo --delta --log-level-console=detail
2020-02-05 14:58:45.779 P00 DETAIL: sync path ‘/cddb5.0/data2/global’
2020-02-05 14:58:46.124 P00 INFO: restore command end: completed successfully (226917ms)

4. 执行部分数据库恢复操作

创建测试数据库
[cddb@cddb-node1 cddb5.0]$ psql -d SWDS -p 7321 -U swds2014
SWDS=# create database test1;
SWDS=# create database test2;
执行增量备份
[cddb@cddb-node1 cddb5.0]$ pgbackrest --stanza=demo --type=incr backup
创建测试表
test1=# create table test1_table(id int);
test1=# insert into test1_table values(1);
test1=# \c test2
test2=# create table test2_table(id int);
test2=# insert into test2_table values(2);

恢复数据库test2
[cddb@cddb-node1 cddb5.0]pgctlstop–D/cddb5.0/data2[cddb@cddb−node1cddb5.0]pg_ctl stop –D /cddb5.0/data2 [cddb@cddb-node1 cddb5.0]pgc​tlstop–D/cddb5.0/data2[cddb@cddb−node1cddb5.0] pgbackrest --stanza=demo --delta --db-include=test2 restore
[cddb@cddb-node1 cddb5.0]pgctlstart–D/cddb5.0/data2[cddb@cddb−node1cddb5.0]pg_ctl start –D /cddb5.0/data2 [cddb@cddb-node1 cddb5.0]pgc​tlstart–D/cddb5.0/data2[cddb@cddb−node1cddb5.0] psql -d SWDS -p 7321 -U swds2014
psql: FATAL: relation mapping file “base/16391/pg_filenode.map” contains invalid data
[cddb@cddb-node1 cddb5.0]$ psql -d SWDS -p 7321 -U swds2014
psql: FATAL: relation mapping file “base/16391/pg_filenode.map” contains invalid data
test2=# select * from test2_table;
id
2
说明:test1,swds,nyc_data三个数据库无法访问,pg自带的数据库可以访问

5. 基于时间点的恢复操作

准备测试数据
test2=# create table test(message text);
CREATE TABLE
test2=# insert into test values(‘aaaa’);
INSERT 0 1
test2=# select current_timestamp;
current_timestamp
2020-02-05 15:58:01.852901+08
执行差异备份
[cddb@cddb-node1 cddb5.0]$ pgbackrest --stanza=demo --type=diff --log-level-console=detail backup

删除test
test2=# drop table test2_table ;
执行基于时间点的恢复test表
[cddb@cddb-node1 cddb5.0]$ pg_ctl stop -D /cddb5.0/data2/
waiting for server to shut down… done
[cddb@cddb-node1 cddb5.0]$ mv /cddb5.0/data2/recovery.done /cddb5.0/data2/recovery.conf
[cddb@cddb-node1 cddb5.0]$ vi /cddb5.0/data2/recovery.conf
restore_command = ‘pgbackrest --stanza=demo archive-get %f “%p”’
recovery_target_time = ‘2020-02-05 15:58:01.852901+08’
recovery_target_action = ‘promote’
[cddb@cddb-node1 cddb5.0]$ pgbackrest --stanza=demo --delta --type=time --target=“2020-02-05 15:58:01.852901+08” --target-action=promote restore
2020-02-05 16:33:32.955 P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started)
2020-02-05 16:33:32.955 P00 DETAIL: sync path ‘/cddb5.0/data2/global’
2020-02-05 16:33:33.307 P00 INFO: restore command end: completed successfully (85946ms)
[cddb@cddb-node1 cddb5.0]$ pg_ctl start -D /cddb5.0/data2/
查看恢复情况
[cddb@cddb-node1 cddb5.0]$ psql –d test2 -U swds2014
test2=# \d
List of relations
Schema | Name | Type | Owner
--------±------------±------±---------
public | test | table | swds2014
public | test2_table | table | swds2014
test2=# select * from test2_table ;
id
2
结果:恢复成功
接着下一篇pg备份冗余策略、监控:
https://blog.csdn.net/weixin_41561946/article/details/104458864

PostgreSQL备份恢复之pgbackRest恢复相关推荐

  1. oracle备份恢复之rman恢复到异机

    注意事项: 1 此处实验环境为同平台,同字节序,同版本,源机器和目标机器相同的目录结构. 2 目标机器只需要安装oracle数据库软件即可. 3 第一次利用备份恢复测试环境,之后从源机器拷贝备份到目标 ...

  2. oracle备份恢复之rman恢复到异机(二)

    转摘:http://jiujian.blog.51cto.com/444665/1085478 注意事项: 1 此处实验环境为同平台,同字节序,同版本,源机器和目标机器相同的目录结构. 2 目标机器只 ...

  3. MySQL备份恢复之mysqldump恢复

    mysqldump恢复 mysqldump恢复 恢复备份+binlog 示例: 1.做好了对于test库的备份2.做好备份以后,又做了几个操作 (1)往test库的t1表插入了几行数据(2)将t1表 ...

  4. Postgresql部署及备份工具pgbackrest部署使用

    介绍 Pgbackrest 备份是与数据库数据一致的副本,可以从硬件故障中恢复.时间点恢复或启动新的备用数据库. 完整备份:pgBackRest将数据库的全部内容复制到备份中.数据库的第一次备份始终是 ...

  5. mysql备份恢复项目_mysql备份恢复之xtrabackup (XBK、Xbackup)

    10.1安装 10.1.1 安装依赖包: wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo y ...

  6. openGauss物理备份恢复之gs_basebackup

    https://www.modb.pro/db/87947 openGauss物理备份恢复之gs_basebackup gs_basebackup背景说明 gs_basebackup仅支持全量备份,不 ...

  7. oracle备份还原到本地_Oracle 11g R2 RAC数据库备份通过RMAN恢复到单实例数据库实现...

    Oracle 11g R2 RAC数据库备份通过RMAN恢复到单实例数据库实现 下面是我的一次从Oracle 11g R2 RAC到单实例间通过RMAN恢复备份集的过程,记录在此. 有些人以此方法作为 ...

  8. window oracle 只有bak文件怎么恢复_Oracle 11g R2 RAC数据库备份通过RMAN恢复到单实例数据库实现...

    Oracle 11g R2 RAC数据库备份通过RMAN恢复到单实例数据库实现 下面是我的一次从Oracle 11g R2 RAC到单实例间通过RMAN恢复备份集的过程,记录在此. 有些人以此方法作为 ...

  9. mongodb备份oplog_MongoDB 备份(mongodump)与恢复(mongorestore)

    MongoDB 备份(mongodump)与恢复(mongorestore) MongoDB数据备份 在Mongodb中我们使用mongodump命令来备份MongoDB数据.该命令可以导出所有数据到 ...

最新文章

  1. 启用IIS的Gzip压缩 【转】
  2. 微信公众平台开发(82) 天气预报
  3. 53.C#--多线程
  4. Linux2.6内核 -- 编码风格(2)
  5. docker rails mysql_Rails Docker开发环境配置
  6. C++:线程操作之CRITICAL_SECTION用法的介绍和例子理解
  7. 数据库SQL基础语法
  8. (八)数据结构之“树”
  9. Nginx- 实现跨域访问
  10. c语言中结束本次循环的语句是什么
  11. 2018年工业机器人销量排位_工业机器人年销量连续七年居世界首位 专家建议开辟新市场...
  12. 吴恩达深度学习——超参数调优
  13. VM14安装Mas os 13
  14. 如何找回QQ聊天记录、语音、图片?
  15. UbuntuHadoop集群搭建过程
  16. 弹性模量及刚度之间的关系
  17. [百度空间] [转]内存屏障 - MemoryBarrier
  18. TTL与非门电路的工作原理
  19. 滴滴拉屎v1.20 一款非常好用的找厕所工具
  20. Remix Icon

热门文章

  1. 鸿蒙系统电池省电吗,鸿蒙系统+5850超大电池华为mate40,华为mate30前辈彻底感人价...
  2. 卡奴、车奴、房奴,你是哪种?
  3. VMware虚拟机扩容——Ubuntu的/dev/sda1分区挂在根目录(“/“)下用LVM(逻辑卷管理)模式扩容无效
  4. 腾讯 Robotics X 轮腿式机器人
  5. CS61-仅使用正则表达式匹配罗马数字|Python一对一学员答疑贴
  6. 学编程脚本 android,Auto.js安卓免root脚本开发教程
  7. 十秒内黑掉Fitbit智能手环(附视频)
  8. 刷脸支付无人便利店的使用体验也更好了
  9. 艾永亮:美国最大面包连锁品牌如何通过超级产品战略成为行业第一
  10. 项目中引入阿里巴巴矢量库(unicode)