G术时刻 | GBase 8s数据库实时共享交换集群介绍(四)

10 阅读2分钟

GBase 8s数据库实时共享交换集群(ER)配置的冲突解决方案与同步模式:

冲突解决方案

建议在方案规划阶段,就考虑冲突问题并解决,如果无法进行冲突的规避,ER 在目标端数据库应用数据时,会进行检查以确保不存在冲突。如果两台数据库服务器同时更新相同的数据,就会发生冲突。ER 一次复查一行数据以检测冲突。如果发现冲突,则必须在将数据写入数据库之前解决此冲突。GBase 8s 提供一系列的解决冲突的方案。

例如:在目标端应用 INSERT id=2 的行时发现目标端 id=2 的行已存在

方案场景动作
忽略保证目标端数据稳定,不尝试解决冲突无操作,保持目标端数据
始终应用强同步源端状态,不尝试解决冲突insert 变更为 update,与源端一致
时间戳应用时间戳最新的行或事务无操作 或 insert 变更为 update
SPL 例程业务逻辑裁决,通过存储过程编写的例程来确定使用哪些数据-
时间戳和 SPL 例程先通过时间戳解决,如果时间戳相同,通过 SPL 解决-

同步模式

示例:erdb 库 t1 表所有记录进行复制,g80 只接收,g90 和 g100 的变化全同步

cdr define replicate -C timestamp  -e 60 repl_t1 # -C指定冲突解决方案为时间戳,-e指定同步模式为间隔同步,间隔时间60分钟,以下定义三条参与者,参与的组为g80、g90、g100
 "R erdb@g80:gbasedbt.t1" "select * from t1"  # R定义g80只接收
"erdb@g90:gbasedbt.t1" "select * from t1" # 缺省双向
"erdb@g100:gbasedbt.t1" "select * from t1" #缺省双向