在源库插入记录
[postgres@node3 ~]$ psql master postgres psql (12.2) Type "help" for help. master=# insert into tbl_lottu01 values (1, 'lottu01'); INSERT 0 1 master=# insert into tbl_lottu01 values (2, 'lottu02'); INSERT 0 1 master=# \q 在目标库查看记录 [postgres@node3 ~]$ psql slave postgres psql (12.2) Type "help" for help. slave=# select * from tbl_lottu01; id | info ----+--------- 1 | lottu01 2 | lottu02 (2 rows) 五、Bucardo应用场景 5.1、双master架构Bucardo 可以实现PostgreSQL数据库的双master/多master的方案;
其实逻辑复制可以设计双主架构;在原生逻辑流复制针对冲突检查需要手动处理;但是在pglogical有对冲突处理。bucardo也有冲突处理。
以上面为例
# 添加数据库组;指定db2是源数据库,db1是目标数据库 bucardo add dbgroup dbgrp02 db2:source db1:target # 添加同步 bucardo add sync sync02 relgroup=relgrp01 dbgroup=dbgrp02 conflict_strategy=bucardo_latest 这样可以完成双主架构 master=# insert into tbl_lottu01 values (3, 'lottu03'); INSERT 0 1 slave=# insert into tbl_lottu01 values (4, 'lottu04'); INSERT 0 1 查看master/slave结果是 =# select * from tbl_lottu01; id | info ----+--------- 1 | lottu01 2 | lottu02 4 | lottu04 3 | lottu03 (4 rows) 5.2、测试数据同步在生产环境数据库;都应有测试环境;有时需要在测试环境需要最新的数据验证新加的代码正确性。
# 关闭bucardo服务 bucardo stop # 更新同步为增量同步; bucardo update sync sync01 onetimecopy=2 "onetimecopy" 0: 关闭 1: fullcopy;采用delete/copy的方式 2: 增量copy; # 启动bucardo服务 bucardo start 六、bucardo日常维护参考《PostgreSQL修炼之道》第二版