首批通过分布式安全可靠测评,为关键业务系统打造
手动控制合并
更新时间:2026-06-06 15:40:25
通过 MAJOR FREEZE 命令触发合并后,默认情况下,系统会自动调度合并任务,按照您指定的合并策略进行合并操作,例如,您可以打开轮转合并开关,系统会自动调度按 Zone 轮转合并。OceanBase 数据库还提供了手动控制合并的方法,让用户手动控制合并流程。
典型场景如下:
合并过程中,其中一个 Zone 出现错误,例如 Checksum 校验出错,为了防止错误扩散到其他 Zone,可以停止自动调度或暂停合并,待问题排查解决后,再恢复自动调度或者手动控制完成合并。
您希望手动控制合并流程,由自己决定合并时间及各个 Zone 的合并顺序等,可以采用手动控制合并方法。
前提条件
手动控制合并前,请确认已通过 MAJOR FREEZE 命令触发合并,手动触发合并的详细操作,请参见 手动触发合并。
操作步骤
使用
root用户登录到数据库的sys租户。执行以下语句,开启手动控制合并开关。
obclient> ALTER SYSTEM SET enable_manual_merge='True';配置项
enable_manual_merge用于控制是否开启手动控制合并,默认值为False,表示关闭手动控制合并开关。关于配置项
enable_manual_merge的更多信息,请参见 enable_manual_merge。开始合并。
开始合并指定的 Zone 的语法如下:
obclient> ALTER SYSTEM START MERGE ZONE [=] 'zone_name';其中,
[=]表示等号(=)为可选;zone_name表示准备开始合并的 Zone,多个 Zone 之间用英文逗号(,)分隔。示例:
obclient> ALTER SYSTEM START MERGE ZONE = 'zone1';(可选)开始合并后,如果您需要暂停合并,可以执行以下语句。
obclient> ALTER SYSTEM SUSPEND MERGE [ZONE [=] 'zone_name'];其中,
[=]表示等号(=)为可选。(可选)暂停合并后,也可以恢复合并。
语法如下:
obclient> ALTER SYSTEM RESUME MERGE [ZONE [=] 'zone_name'];其中,
[=]表示等号(=)为可选。