7.2 监控节点的增加/删除
BDR中节点的加入和剔除是异步的。 节点管理函数立即返回, 而并没有首先确保联接或部分操作已完成。
来看看当联接或部分的操作完成它有必要检查节点状态间接通过 bdr.bdr_nodes 或使用 helper 函数。
Helper 函数 bdr.bdr_node_join_wait_for_ready,调用时,将导致 PostgreSQL 会话暂停, 直到节点联接操作成功完成。以后会添加更过的函数用于辅助节点状态健康检查。 其他节点的状态检测可以 通过查询 bdr.bdr_nodes。
下面是一个示例的选择从指示一个节点是准备好的 bdr.bdr_nodes (r),一个节点已删除杀 (k) 和一个节点正在初始化 (i):
SELECT * FROM bdr.bdr_nodes;
node_sysid | node_timeline | node_dboid | node_status | node_name | node_local_dsn | node_init_from_dsn
---------------------+---------------+------------+-------------+-----------+--------------------------+--------------------------
6125823754033780536 | 1 | 16385 | r | node1 | port=5598 dbname=bdrdemo |
6125823714403985168 | 1 | 16386 | k | node2 | port=5599 dbname=bdrdemo | port=5598 dbname=bdrdemo
6125847382076805699 | 1 | 16386 | i | node3 | port=6000 dbname=bdrdemo | port=5598 dbname=bdrdemo
(3 rows)