博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
use zfs snapshot rollback postgresql's primary to old status in PG HA
阅读量:5978 次
发布时间:2019-06-20

本文共 619 字,大约阅读时间需要 2 分钟。

前几天讲过zfs的snapshot用作PostgreSQL PITR, 使用接近还原点的snapshot可以减少xlog的apply, 缩短数据库的恢复时间.
其实snapshot还有一个作用, 用作流复制HA的主备角色切换后避免因为XLOG的差异导致old primary无法切换成standby角色.
例如  : 
一个PG 流复制的HA场景如下 : 

use zfs snapshot rollback postgresqls primary to old status in PG HA - 德哥@Digoal - PostgreSQL
在发生failover后, standby节点切换成主节点, 老的主节点切换成standby节点.
但是由于standby节点和老的主节点存在差异, (即只接收了部分XLOG), 那么STANDBY激活后实际上是从primary节点的过去状态开始了新的读写, 所以primary节点不能直接切换成standby节点.
use zfs snapshot rollback postgresqls primary to old status in PG HA - 德哥@Digoal - PostgreSQL

如果primary节点有snapshot的话, 可以回到以往的snapshot, 使用rollback或者使用clone都没有问题. 只是clone更保险一点, 因为还能回来, 完全OK后可以删掉其他的dataset.
注意必须回到一个节点并且所有的xlog都在新的primary可以找到.

use zfs snapshot rollback postgresqls primary to old status in PG HA - 德哥@Digoal - PostgreSQL
 
这种问题的另外一种解决办法是使用rsync , 这也是pgpool-II中的用法, 但是rsync对于比较大的数据库, 开销一是很大的, 因为所有的文件都要读一遍, 技术checksum, 然后与本地文件的checksum进行比对. 所以不推荐使用rsync.

[参考]
1. 

转载地址:http://vrpox.baihongyu.com/

你可能感兴趣的文章
zabbix企业应用之监控Netscaler
查看>>
使用spec与fpm 2种方式进行rpm打包
查看>>
MyBatis中如何通过继承SqlSessionDaoSupport来编写DAO(二)
查看>>
偏门套路:每天被动吸引150+精准淘宝粉
查看>>
大话IT第十九期:戴尔收购对象大猜想
查看>>
移动搜索入口争夺提速
查看>>
【VMware虚拟化解决方案】构建VMware私有云 实现ITaaS
查看>>
IPO是去哪儿的成人礼
查看>>
微软最新更新程序 再次针对Windows XP盗版
查看>>
Incredible StartPage
查看>>
我常用的tar
查看>>
likely,unlikely宏与GCC内建函数__builtin_expect()
查看>>
Start Java program as Linux daemon
查看>>
深入理解JavaScript系列(47):对象创建模式(上篇)
查看>>
Install Wise制作软件安装包
查看>>
xml学习笔记与心得
查看>>
Asp.net MVC23 使用Areas功能的常见错误
查看>>
在Word中生成随机的样本文本
查看>>
Android之创建自定义属性
查看>>
SCP不需要密码
查看>>