本文主要介绍什么是轮转合并以及轮转合并的相关配置项。
适用版本
OceanBase 数据库 V2.x、V3.x 版本。
轮转合并是什么
一般来说每日合并会在业务低峰期进行,但并不是所有业务都有业务低峰期。在每日合并期间,会消耗比较多的 CPU 和 IO,此时如果有大量业务请求,势必会对业务造成影响。为了规避每日合并对业务的影响。借助 OceanBase 数据库的多副本分布式架构,我们引入了轮转合并的机制。
一般配置下,OceanBase 数据库会同时有 3 个数据副本,当一个数据副本在进行合并时,会将这个副本上的查询流量切到其他没在合并的集群上面,这样业务的查询就不受每日合并的影响。等这个副本合并完成后,再将查询流量切回来,继续做其他副本的合并。为了避免流量切过去后,cache 较冷造成的RT波动,在流量切换之前,OceanBase 数据库还会做 cache 的预热。
相关配置项
enable_merge_by_turn: OceanBase 数据库的配置项,指示是否开启自动轮转合并。merge_list/zone_merge_order: 指定自动轮转合并的合并顺序,OceanBase 数据库 V1.3 版本之前的版本中用__all_zone表中的merge_list来表示,在 V1.3 版本之后的版本中用配置项zone_merge_order来表示。
相关问题
轮转合并期间,目标切主机器 stop,会导致卡合并吗?
会的,stop 的机器不会跳过合并检查。
轮转合并的时候是不是不能有机器被 Stop?
是的。
关闭轮转合并还有这样的问题吗?
关闭轮转合并就避免了切主,但是 stop 的机器还是不能跳过合并检查,机器下线可以跳过合并。