首批通过分布式安全可靠测评,为关键业务系统打造
修改高可用功能的配置
更新时间:2026-04-14 15:36:02
本文为您介绍高可用(HA)功能的概念、参数的含义和适用场景,以及如何在 OceanBase 迁移服务(OceanBase Migration Service,OMS)控制台配置高可用参数。
概述
高可用性集群 HA 是保证业务连续性的有效解决方案。在企业用户 7 x 24 小时运行的场景下,如果数据同步发生中断(包括分钟级别的短暂中断),会对业务产生影响。
基于多年企业级使用场景的支撑,OceanBase 迁移服务(OceanBase Migration Service,OMS)提供可以秒级恢复的集群高可用架构,能够支持机器、机房粒度,甚至地区数据中心维度的容灾,以确保实现延迟敏感的企业用户的需求。所以发生服务器故障或 OMS 单节点故障时,不会导致整个 OMS 发生故障,该故障节点的任务会分发至其它节点执行。通常情况下,组件故障会分配给其它节点中的 Store 进行拉取。如果发生异常情况,会报错为任务运行异常。
OMS 支持高可用功能的组件包括 Store、Full-Import 和 Incr-Sync。Store HA 的管理粒度为 Subtopic。Store HA 会判断 Subtopic 是否异常,以此来对 Subtopic 下的 Store 进行 HA。所以开启 Store HA 后,并非一定遇到异常的 Store 会生成新的 Store 进行容灾。Store HA 的基本原则如下:
HA 监测到异常状态的 Store 时,如果该 Store 的最近心跳时间与当前时间的差值不超过容忍的阈值
checkModuleExceptionIntervalSec,HA 会判定该异常 Store 是正常的。Subtopic 下存在任意正常的 Store,Store HA 会认为该 Subtopic 正常,其它异常的 Store 均不会有 HA。
Subtopic 下不存在正常的 Store 时,分为如下场景:
如果存在待主备切换的 Store,暂时不进行异常 HA,等待 Store 恢复。
如果全部为异常的 Store,且该 Subtopic 下的 Store 数量未达到 HA 允许的阈值
subtopicStoreNumberThreshold,则 HA 会触发一个创建新 Store 的工单。否则不会有动作。如果存在部分异常停止的 Store,目前 HA 无法判断该 Subtopic 下的 Store 到达该状态的原因。
如果该 Subtopic 下的 Store 数量未达到 HA 允许的阈值
subtopicStoreNumberThreshold,则 HA 触发一个创建新 Store 的工单。否则不会有动作。如果全部为停止的 Store,HA 不会有动作。
目前 HA 会将非异常退出状态的 Store 当作正常停止状态的 Store。
高可用 HA 参数的含义
ha.config 文件的配置如下:
{
"enable":false,
"enableHost":false,
"enableStore":true,
"perceiveStoreClientCheckpoint":false,
"enableConnector":true,
"enableJdbcWriter":true,
"subtopicStoreNumberThreshold":5,
"checkRequestIntervalSec":600,
"checkJdbcWriterIntervalSec":600,
"checkHostDownIntervalSec":540,
"checkModuleExceptionIntervalSec":240,
"clearAbnormalResourceHours":72,
"refetchStoreIntervalMin":30
}
| 参数 | 描述 | 默认值 |
|---|---|---|
| enable | 是否开启 HA,取值包括 true 和 false。 |
false |
| enableHost | 是否开启对 OMS 集群机器节点的高可用。取值包括 true 和 false。 机器宕机的场景下,高可用触发批量迁移 Incr-Sync 组件实例的工单。 有关 OMS 机器宕机迁移告警的详情,请参见 oms_host_down OMS 机器宕机告警。 |
false |
| enableStore | 是否开启对 Store 组件实例的高可用,取值包括 true 和 false。 高可用具备支持 Store 主备切换、异常 Store 回收的能力:
|
true |
| perceiveStoreClientCheckpoint | 该参数为 Store HA 的高级功能。
|
false |
| enableConnector | Incr-Sync 守护开关,取值包括 true 和 false。enableConnector 适用于存在异常 Incr-Sync 的场景。 |
true |
| enableJdbcWriter | 原 JDBCWriter 守护开关(OMS V4.0.1 之前版本),取值包括 true 和 false。enableJDBCWriter 适用于存在异常 JDBCWriter 的场景。如果升级前 enableConnector 是 false,enableJDBCWriter 是 true,则升级后需要修改 enableConnector 为 true。 |
true |
| subtopicStoreNumberThreshold | 高可用在执行处理操作前的校验,能够接受一个 Subtopic 下 Store 数量的最大上限。 | 5 |
| checkRequestIntervalSec | 同一个操作对象高可用工单触发的间隔时间(单位为秒)。 | 600 |
| checkJdbcWriterIntervalSec | 控制异常 Writer HA 的容忍时间。只有当 Writer 异常时,且超过容忍时间不活跃了才会 HA。 | 600 |
| checkHostDownIntervalSec | 针对宕机迁移场景,判断是否宕机的时间间隔,即机器多久未汇报过心跳(单位为秒)。 | 540 |
| checkModuleExceptionIntervalSec | HA 容忍异常 Store 的活跃时间阈值,单位为秒。开启 Store HA 后生效。 | 240 |
| clearAbnormalResourceHours | 使用 Store 的 GmtModfied,判断 Store HA 中清理冗余的异常 Store 的时间间隔(单位为小时)。 | 72 |
| refetchStoreIntervalMin | Store 的回拉时间,单位为分钟。 | 30 |
修改高可用 HA 的配置
您可以在 OMS 控制台修改 ha.config 文件中的参数:
登录 OMS 控制台。
在左侧导航栏,单击 系统管理 > 系统参数。
在 系统参数 页面,找到
ha.config。单击该参数名称 取值 后的编辑图标。
在 修改取值 对话框中,根据业务需求修改目标参数的取值。
单击 确定。