pgpool中定义的数据库节点及pgpool支持的复制模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pgpool中定义的数据库节点及pgpool支持的复制模式相关的知识,希望对你有一定的参考价值。

/*
 * The first DB node id appears in pgpool.conf or the first "live" DB
 * node otherwise.
 */
#define REAL_MASTER_NODE_ID (Req_info->master_node_id)

/*
 * The primary node id in streaming replication mode. If not in the
 * mode or there‘s no primary node, this macro returns
 * REAL_MASTER_NODE_ID.
 */
#define PRIMARY_NODE_ID (Req_info->primary_node_id >=0?\
                         Req_info->primary_node_id:REAL_MASTER_NODE_ID)
#define IS_PRIMARY_NODE_ID(node_id)    (node_id == PRIMARY_NODE_ID)

/*
 * Real primary node id. If not in the mode or there‘s no primary
 * node, this macro returns -1.
 */
#define REAL_PRIMARY_NODE_ID (Req_info->primary_node_id)

/*
 * "Virtual" master node id. It‘s same as REAL_MASTER_NODE_ID if not
 * in load balance mode. If in load balance, it‘s the first load
 * balance node.
 */
#define MASTER_NODE_ID (pool_virtual_master_db_node_id())
#define IS_MASTER_NODE_ID(node_id) (MASTER_NODE_ID == (node_id))
#define MASTER_CONNECTION(p) ((p)->slots[MASTER_NODE_ID])
#define MASTER(p) MASTER_CONNECTION(p)->con

#define REPLICATION (pool_config->replication_mode)
#define MASTER_SLAVE (pool_config->master_slave_mode)
#define STREAM (MASTER_SLAVE && pool_config->master_slave_sub_mode == STREAM_MODE)
#define SLONY (MASTER_SLAVE && pool_config->master_slave_sub_mode == SLONY_MODE)
#define DUAL_MODE (REPLICATION || MASTER_SLAVE)
#define RAW_MODE (!REPLICATION && !MASTER_SLAVE)

以上是关于pgpool中定义的数据库节点及pgpool支持的复制模式的主要内容,如果未能解决你的问题,请参考以下文章

PGPool-II+PG流复制实现HA主备切换

Pgpool-II:当断开主节点或备用节点失败时,委托 IP 不可用

安装部署postgresql-15 高可用(pgpool)

如何让 pcp 自动将节点附加到 postgres pgpool?

Pgpool-II 模式初步浅析

无法使用 pgpool II 自动恢复失败的 postgresql 主节点