本篇是POSTGRESQL 高可用的最后一篇文字,如果敢兴趣可以往前翻看之前的三篇文字,在安装完repmgr 后,创建对应repmgr的数据库后会有相关的表灌入到repmgr 数据库中。
其中,包含了4张表,2个VIEW,我们一个一个来说
1 nodes ,这个表中主要存储着集群中的包含的集群中的所有注册后的机器,包含主,从,见证服务器,以及他们相关的简洁的参数信息
而经过测试,将其中一个节点进行关闭后,表中的数据并不会进行变化,到底我们在运行
repmgr -f etc/repmgr.conf cluster show 我们看到的信息是怎么来的
OK 我们的跟踪一下这条命令到底做了什么,实际当中我们在执行repmgr 命令中,其实判断节点是否存在是需要连接到目前可以连接的节点中,并且其nodes表时包含完整的集群节点的信息的。并且如果在运行命令时某节点无法连接的情况下,会尝试两次连接,如果还失败则会打印某节点失败的信息。
2 repmgr -f etc/repmgr.conf standby switchover
在从节点进行主从切换的命令,中repmgr 做了什么
首先要判断切换中,你是否使用了复制槽,并且复制槽是否有效,然后需要删除复制槽
要判断你的要进行切换的节点,是不是一个曾经失效了的primary节点,并且要确认现在的这个节点是否是活跃的一个standby 节点
下面的过程比较复杂,这里就不贴代码了,直接画一个图
3 Repmgr 中的一些系统表的如何利用,首当其冲的就是events 表
通过events 表可以知道所有系统中所经历的事情,并且可以分析一些问题保存历史记录。
4 monitoring_history 表
通过monitoring_history表可以查看主库从库之间的数据传输情况,并且可以判断某个时刻的主从数据可能不一致的情况。
最后请注意相关的表其实是需要清理的,目前观察系统并未有相关的清理的处理流程。