Kingbase V8 逻辑同步

本文详细介绍了逻辑同步在数据库复制中的应用,包括其灵活性与高效性,以及如何通过发布/订阅模型进行表级复制。重点强调了设置lc_monetary和case_sensitive参数的重要性。实验步骤演示了如何在两台服务器间配置逻辑同步并测试数据同步过程。
摘要由CSDN通过智能技术生成

逻辑同步既有基于触发器复制技术的灵活性,又有基于日志复制技术的高效性,它使用发布/订阅模型对数据选择性复制,比物理同步更灵活、更高效。

逻辑同步原理类似物理同步,它们之间的区别在于,逻辑同步能更细化的进行表级复制,并且逻辑同步通过逻辑解码解析WAL日志获取逻辑日志,并非物理上的同步WAL日志。

注意:需要保证建立逻辑同步的两台数据库的"lc_monetary","case_sensitive"参数设置一致,否则"lc_monetary"不一致会导致“money”类型数据的逻辑同步时会出错,"case_sensitive"有可能会导致数据同步数据丢失。

实验准备

192.168.137.10 发布数据库

192.168.137.11 订阅服务器

1.将两台服务器的wal日志文件格式设置为logical

wal_level = 'logical'
max_worker_processes = 10   # one per database needed on provider node
                            # one per node needed on subscriber node
max_replication_slots = 10  # one per node needed on provider node
max_wal_senders = 10        # one per node needed on provider node
wal_sender_timeout = 60     # in milliseconds; 0 disables

2.在发布服务器配置sys_hba.conf,添加订阅服务器的复制权限,添加的用户必须是具有复制权限的管理员

3. 在发布服务器准备测试数据

4.打开逻辑同步工具

5.添加发布服务器pub_10

6.创建订阅服务器sub_11

7.默认情况下,在发布服务的每个数据库下都已经创建好了三个复制集,不过只定义了同步的操作,同步的表都为空。

8.在发布服务器pub_10上,选择TEST数据库,在其下创建复制集pub_for_table,只选择同步t1,t2

此处需要注意,复制集如果配置UPDATE或者DELETE,所选同步的表必须要有主键。

9.在订阅服务器sub_11上,在TEST数据库上创建订阅sub_for_table,订阅发布服务器pub_10上TEST数据库下的复制集pub_for_table:

因为订阅服务器上没有目标表,所以点击确定时弹出要先创建表:

10.逻辑同步创建成功,pub_10服务器上的表t1和t2会同步到sub_11服务器上

在订阅节点sub_11上查询同步状态

call  syslogical.show_subscription_status();

SELECT * FROM SYSLOGICAL.LOCAL_SYNC_STATUS;

 

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值