os: centos 7.4
postgresql: 9.6.9
etcd: 3.2.18
patroni: 1.4.4

本篇blog介绍下 etcd + patroni 发生切换时使用 callback 来重新设定 master 的 vip。
主要是方便自有机房或托管的,云环境貌似不能绑定固定的vip。

patroni 的一些参数

官方文档描述在callback时又这几个状态:

on_reload: run this script when configuration reload is triggered.
on_restart: run this script when the cluster restarts.
on_role_change: run this script when the cluster is being promoted or demoted.
on_start: run this script when the cluster starts.
on_stop: run this script when the cluster stops.

# su - postgres
$ vi /usr/patroni/conf/patroni_postgresql.ymlpostgresql:callbacks:on_start: /usr/patroni/conf/patroni_callback.shon_stop: /usr/patroni/conf/patroni_callback.shon_role_change: /usr/patroni/conf/patroni_callback.sh

patroni_callback.sh

这个脚本的作用就是,当本地postgresql变为 master 时,就绑定vip,变为slave时,就删除vip。

# cd /usr/patroni/conf/
# vi patroni_callback.sh#!/bin/bashreadonly cb_name=$1
readonly role=$2
readonly scope=$3function usage() {echo "Usage: $0 <on_start|on_stop|on_role_change> <role> <scope>";exit 1;
}echo "this is patroni callback $cb_name $role $scope"case $cb_name inon_stop)sudo ip addr del 192.168.56.100/24 dev enp0s8 label enp0s8:1   #sudo arping -q -A -c 1 -I enp0s8 192.168.56.100sudo iptables -F;;on_start);;on_role_change)if [[ $role == 'master' ]]; thensudo ip addr add 192.168.56.100/24 brd 192.168.56.255 dev enp0s8 label enp0s8:1sudo arping -q -A -c 1 -I enp0s8 192.168.56.100sudo iptables -Felif [[ $role == 'slave' ]]||[[ $role == 'replica' ]]||[[ $role == 'logical' ]]; thensudo ip addr del 192.168.56.100/24 dev enp0s8 label enp0s8:1   #sudo arping -q -A -c 1 -I enp0s8 192.168.56.100sudo iptables -Ffi;; *)usage;;
esac

修改ip后,一定要使用 arping

配置 sudo

# visudo
postgres ALL=(ALL) NOPASSWD:ALL

更改权限

# chown -R postgres:postgres /usr/patroni/conf/*
# ls -l
total 8
-rwxr--r-x 1 postgres postgres  768 Aug  8 18:59 patroni_callback.sh
-rw-r--r-- 1 postgres postgres 1616 Aug  8 18:44 patroni_postgresql.yml

参考:
https://postgresconf.org/system/events/document/000/000/228/Patroni_tutorial_4x3-2.pdf

转载于:https://www.cnblogs.com/ctypyb2002/p/9792860.html

postgresql 高可用 etcd + patroni 之六 callback bind vip相关推荐

  1. postgresql 高可用 etcd + patroni 之二 patroni

    os: centos 7.4 postgresql: 9.6.9 etcd: 3.2.18 patroni: 1.4.4 patroni + etcd 是在一个postgrsql 开源大会上 亚信的一 ...

  2. mysql mha etcd_postgresql 高可用 etcd + patroni 之四 failover

    os: centos 7.4 postgresql: 9.6.9 etcd: 3.2.18 patroni: 1.4.4 patroni + etcd 是在一个postgrsql 开源大会上 亚信的一 ...

  3. POSTGRESQL 高可用 Patroni VS Repmgr 到底哪家强(1)

    在众多postgresql 高可用模式中,主要的参与者有两位, Patroni VS repmgr 基于这二者的功能优点以及缺点相信大部分人都不是太明确,下面将根据两篇翻译的文字合并,来对两个高可用的 ...

  4. PostgreSQL高可用集群在360的落地实战

    本文主要从以下几个方面介绍PostgreSQL高可用集群在360的落地实战 为什么选择Patroni + Etcd + PostgreSQL高可用集群方案 PostgreSQL高可用集群在360的落地 ...

  5. postgresql高可用_Postgresql高可用实现方案

    本文主要讲解一种Postgresql高可用实现方案.由于项目需要,我们需要在短时间实现底层Postgresql DB的高可用,而网络上大多数的解决方案比较复杂,需要深入了解Postgresql. 背景 ...

  6. PostgreSQL高可用(二)使用pgpool实现主从切换+读写分离

    文章目录 1主从流复制 1.1 主机分配 2主从切换 2.1 手动切换 2.2 pgpool 自动切换 2.2.1 解压编译安装 2.2.2 添加环境变量 2.2.3 配置pool_hba.conf ...

  7. PostgreSQL高可用(三)解决pgpool的单点问题

    文章目录 主机分配 PGPOOL高可用,解决单点问题 1 图例 2 看门狗简介 3 启动/停止看门狗 4 配置看门狗 (pgpool.conf) 4.1 基本配置 4.1.1 启用 4.1.2到前端服 ...

  8. postgresql 高可用 patroni + etcd 之二 patroni

    os: centos 7.4 postgresql: 9.6.9 etcd: 3.2.18 patroni: 1.4.4 patroni + etcd 是postgrsql 的一个高可用方案,依然是基 ...

  9. PostgreSQL高可用集群

    一主两从+haproxy IP地址.端口.版本号根据自身的服务器和要求来改变 架构图 服务器配置 服务器四台 (192.168.0.78 192.168.0.79 192.168.0.80 192.1 ...

最新文章

  1. Python批量下载XKCD漫画只需20行命令
  2. 业界 | 计算芯片革命来临?英伟达谷歌入局紧逼英特尔
  3. matlab缩小矩阵尺寸,Matlab中对矩阵使用矩阵尺寸的索引
  4. Apache shutdown unexpectedly启动错误解决方法
  5. boost::sort模块spreadsort 字符串函子反向排序示例
  6. 从ffmpeg源代码分析如何解决ffmpeg编码的延迟问题(如何解决编码 0 延时)
  7. ping命令时常碰到的问题
  8. Google Chrome浏览器可能在您不知情的情况下破坏了您的测试
  9. 240多个jquery插件
  10. xamarin android上传图片到服务器,从图片库中选取照片
  11. BXP 3.11样机安装详细说明(转)
  12. Google 翻译插件不能用了怎么办
  13. CSDN怎么在文章中生成目录
  14. AI公开课之NLP:19.04.04李航—字节跳动AILab总监《深度学习与自然语言处理:评析与展望》课堂笔记以及个人感悟
  15. 九阴真经服务器维护,《九阴真经》-官方网站-一亿人的真武侠梦,开创全自由空中打斗...
  16. linux搭建直播步骤,linux环境(CentOS-7)搭建HLS直播测试环境
  17. firefox 14 vim化——Pentadactyl
  18. 文本处理算法_基于 Python 的 11 种经典数据降维算法
  19. xstream 数字映射不上去_什么是智慧城市、数字城市、孪生城市、海绵城市、平安城市、天网工程、雪亮工程...
  20. 工程计算机制图PDF,工程计算机制图.PDF

热门文章

  1. linux qt yuv,c – 如何使用Qt中的RGBA32数据将带有YUV数据...
  2. javaweb通过接口来实现多个文件压缩和下载(包括单文件下载,多文件批量下载)
  3. mysql gtid深入_深入理解MySQL 5.7 GTID系列(四):mysql.gtid_executedPREVIOUS GTID EVENT
  4. IDEA中运行springboot+vue项目设置terminal路径
  5. c语言成绩等级switch语句,请高手 帮忙做一道c语言题 编程,把百分制成绩转换成5级记分制,要求用switch语句。 90分以上(包括90):...
  6. python打log_python根据文件大小打log日志
  7. tcpsyn发生在哪层_必看面试题之计算机网络:来自一位拿到了腾讯和字节双offer的大佬...
  8. 中raise抛出异常_Python 异常处理知识点汇总,五分钟就能学会 !
  9. Java 获取文件修改时间
  10. Java 时间戳转换成时间