多主复制高可用性技术全解析
一、节点加入与状态检查
当节点加入集群后,可通过 bdr.node_summary 视图查看集群状态。例如,从 pgha2 执行查询,能看到本地记录排在首位,这表明 pgha1 的元数据已安全到达,且就 BDR 而言,集群节点应能正常运行。
不过,使用 bdr.join_node_group 函数存在问题,它依赖 PostgreSQL 逻辑复制语义从远程节点传输数据,开销大、速度慢,对于大型数据库,数据同步可能需数天甚至数周,且单次函数调用难以长时间维持。
BDR 提供了命令行工具 bdr_init_physical 来将物理副本转换为 BDR 节点,操作步骤如下:
bdr_init_physical -D /db/pgdata \
--node-name=tokyo \
--remote-dsn='dbname=myapp host=pgha1 user=bdr_user' \
--local-dsn='dbname=myapp host=pgha2 user=bdr_user'
由于数据已本地存在,BDR 只需添加缺失元数据并在新节点与集群其他节点间创建特定复制槽。这种方式效率高,数据复制方法多,且中断后可恢复,降低了创建超大型数据库 BDR 节点集群失败的风险。
二、测试 DDL 复制
多主复制中,各节点模式需兼容,否
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



