POSTGRESQL REPMGR DEEP DIVE (深入与细节 2 )

2021-02-03 00:00:00 连接 命令 的人 节点 实际上


接上期,实际上REPMGR 的版本是不同的,针对POSTGRESQL的支持版本也是不一样的.

REPMGR 目前新的版本是5.2.1 支持到新的13 of postgresql

虽然是支持到了PG13 ,但实际上目前能获得的安全中的能自动安装的源的是PG12

curl https://dl.2ndquadrant.com/default/release/get/12/rpm | sudo bash


(写到这里我发现我没有和读者明确一个预先我们都应该知道的事情,这个一个系列的文字,不是针对还没有使用过REPMGR的人,而是已经开始使用了REPMGR的人,如果您还没有使用过REPMGR,可以找找我去年的  REPMGR 系列的 1- 6  基本操作和安装)


那我们继续,要让一个REPMGR 简单工作中的配置文件是必不可少的,如果要REPMGR 简单的工作配置文件至少有4个配置项

    node_id=1
node_name='node1'
conninfo='host=node1 user=repmgr dbname=repmgr connect_timeout=2'
data_directory='/var/lib/postgresql/data'

这个节点的配置的ID (每个集群的主机应该有自己的ID 值)

node_name 是在显示你的系统时的展示的名字

conninfo 是你连接系统的参数,包含用户名,密码以及连接的超时的时间,连接的数据库名,这里建议

data_directory 是连接PG 的数据目录配置项

实际上在REPMGR 4.2 版本后添加了 repmgr_bindir 这个选择项, 这个选择项是为了编译安装后,repmgr 的执行文件不再pg_bindir里面的情况下,单独设置repmgr的执行文件的目录.


(上图为repmgr.conf 内容)

节点的信息通过 repmgr 数据库中的nodes  或者


或者repmgr show 的方式来进行.


上面红色的框中,报错的信息是REPMGR 无法访问REPMGR 数据库,也就说你的PG_HBA.CONF 或者 你的PGPASS 设置的有问题,那就需要调整一下.



repmgr -f /etc/repmgr.conf  cluster crosscheck 

repmgr -f /etc/repmgr.conf cluster matrix

两个命令 crosscheck  和 marix  这里面的截图的例子可能不大好,如果有三台服务器就可以弄明白,他们之间的不同,

crosscheck 实际上用一个节点 和每个节点进行连接方面的测试, (举例NODE 3 和 NODE 2 之间连接出现问题)


下面就转到POSTGRESQL 中的 REPMGR 中的关于REPMGRD 的状态, 启动和暂停故障转移的问题中.  REPMGR 相对于某些数据库的高可用来说,是可以通过命令来讲高可用转换暂停的,这点功能是非常好的.

 repmgr -f /etc/repmgr.conf daemon status

通过上面的命令来查看当前REPMGR 的状态


通过下面的命令可以暂时让集群的高可用状态停止,不在工作

repmgr -f /etc/repmgr.conf daemon pause

例如在网络抖动或者丢包严重的基础上等等原因可以通过检测后,先关闭repmgrd 的监控,(至少比直接将REPMGRD 停止要好的多)


repmgr -f /etc/repmgr.conf daemon unpause


通过上面的命令可以将高可用的监控在重新打开.



相关文章