repmgr需要在集群中每个节点上以扩展的形式安装插件,运行在每个节点上的repmgrd可以监控复制以及执行故障转移或切换等操作增强 PostgreSQL 的内置复制功能。
如何可靠快速的监控主节点故障一般是所有数据库高可用程序中都会有的环节,本篇内容主要介绍不同角色的节点如何监控主节点是否存活。
函数入口
通过命令 repmgrd -f repmgr.conf 启动repmgrd后台监控程序时,进入程序的主函数 main(repmgrd.c文件)函数中,
在main 函数主要是处理命令行参数,获取本地节点的信息
/* Retrieve record for this node from the local database */
record_status = get_node_record(local_conn, config_file_options.node_id, &local_node_info);
通过SQL查询repmgr数据库中 nodes表 获取本地节点信息 ,查询SQL如下
appendPQExpBuffer(&query,
"SELECT " REPMGR_NODES_COLUMNS
" FROM repmgr.nodes n "
" WHERE n.node_id = %i