GBase8s Enterprise Replication(企业级复制) 数据冲突处理

问题背景

从原理上将 GBase8s Enterprise Replication 可以实现双写,但在实际经验中不推荐使用双写机制。因其独特的复制技术,在某些场景下存在数据同步冲突的可能性,虽然也提供了一些冲突的解决方案,其本质上已经对数据精准度做了让步。

在实际经验中,更推荐将连接锁定在一个节点上。然而,在运行过程中,不可避免的会发生数据库/服务器故障导致数据库发生切换,在现有机制下,不能保证连接锁定在一个节点,此时可以借用keepalived 非抢占模式的机制,使用虚拟IP锁定连接。

keepalived 原理在本文不做具体介绍,如下提供了一种参考性的实现逻辑

0 gbase 复制集群正常

1 在各节点分别添加一个 0.0.0.0 的监听

gbase8s onsoctcp 0.0.0.0 9088

DBSERVERALIASES gbase8s

2 在各个节点安装keepalived组件

3 keepalived 参考配置

! Configuration File for keepalived

global_defs {
router_id pri
}
vrrp_script chk_db {
    script "/home/gbasedbt/chkdb.sh"
    interval 30
    weight -20
    fall 3
    rise 2
}
vrrp_instance oldboy {
track_script {
     chk_db
}
state BACKUP
interface ens33
virtual_router_id 51
priority 150
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.39.200
}
}

4 切换触发逻辑

#!/bin/bash
source /home/gbasedbt/.bash_profile
timeout 25 dbaccess sysmaster -<<! >/dev/null 2>&1
select 1 from dual;
!
if [ ! $? -eq 0 ];then
killall keepalived
fi

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值