首批通过分布式安全可靠测评,为关键业务系统打造
手动控制合并
更新时间:2026-04-10 11:58:01
通过 MAJOR FREEZE 命令触发合并后,系统会自动调度合并任务。不同于 OceanBase 数据库 V2.x.x 和 V3.x.x 版本,从 OceanBase 数据库 V4.0.x 版本开始,合并将采用统一合并策略来执行合并流程,即租户的所有 Zone 同时开始执行合并,且所有 Zone 均完成合并后,才表示该租户完成合并。
合并过程中,不再需要您手动控制各个 Zone 的合并顺序等事项,也不存在轮转合并。如果在合并过程中出现错误,您可以参考本文手动控制合并。例如,Checksum 校验出错,会使得该租户当前轮次的合并无法结束,您可以暂停当前合并(suspend merge), 待 Checksum 恢复正确以后(例如,人工介入修复),再清理 Checksum 错误的标记(clear merge error), 然后继续执行当前轮次的合并 (resume merge)。
前提条件
手动控制合并前,请确认已通过 MAJOR FREEZE 命令触发合并,手动触发合并的详细操作,请参见 手动触发合并。
注意事项
当合并任务被暂停时,允许发起租户级合并,但不允许发起分区级合并。对于合并任务暂停时发起的租户级合并,系统并不会立即执行本次租户级合并任务,而是在恢复合并后才执行本次租户级合并。
系统租户手动控制合并
合并开始后,系统租户可以控制所有租户或指定租户的合并操作。可以控制的合并操作包括租户级合并和分区级合并。
具体操作如下:
使用
root用户登录集群的sys租户。根据业务实际情况,选择合适的命令控制合并。
暂停所有用户租户、所有 Meta 租户或指定租户的合并
开始合并后,如果需要暂停所有用户租户、所有 Meta 租户或指定租户的合并,可以执行以下语句。
暂停所有用户租户的合并
ALTER SYSTEM SUSPEND MERGE TENANT = all_user;或者
ALTER SYSTEM SUSPEND MERGE TENANT = all;说明
OceanBase 数据库从 V4.2.1 版本开始,
TENANT = all_user与TENANT = all语义相同,在需要生效范围为所有用户租户时,推荐使用TENANT = all_user,后续TENANT = all将废弃不再使用。暂停所有 Meta 租户的合并
ALTER SYSTEM SUSPEND MERGE TENANT = all_meta;暂停指定租户的合并
ALTER SYSTEM SUSPEND MERGE TENANT = tenant1,tenant2;
其中,
=为可选;tenant1、tenant2需要替换为实际的租户名。恢复合并
暂停合并后,也可以恢复合并,语句如下。
恢复所有用户租户的合并
ALTER SYSTEM RESUME MERGE TENANT = all_user;或者
ALTER SYSTEM RESUME MERGE TENANT = all;说明
OceanBase 数据库从 V4.2.1 版本开始,
TENANT = all_user与TENANT = all语义相同,在需要生效范围为所有用户租户时,推荐使用TENANT = all_user,后续TENANT = all将废弃不再使用。恢复所有 Meta 租户的合并
ALTER SYSTEM RESUME MERGE TENANT = all_meta;恢复指定租户的合并
ALTER SYSTEM RESUME MERGE TENANT = tenant1,tenant2;
其中,
=为可选;tenant1、tenant2需要替换为实际的租户名。清理 Checksum 错误的标记
如果在合并过程中出现了 Checksum 校验错误,且人工介入修复后,可以清理掉该 Checksum 错误的标记,以恢复合并,语句如下。
清理所有用户租户的 Checksum 错误的标记
ALTER SYSTEM CLEAR MERGE ERROR TENANT = all_user;或者
ALTER SYSTEM CLEAR MERGE ERROR TENANT = all;说明
OceanBase 数据库从 V4.2.1 版本开始,
TENANT = all_user与TENANT = all语义相同,在需要生效范围为所有用户租户时,推荐使用TENANT = all_user,后续TENANT = all将废弃不再使用。清理所有 Meta 租户的 Checksum 错误的标记
ALTER SYSTEM CLEAR MERGE ERROR TENANT = all_meta;清理指定租户的 Checksum 错误的标记
ALTER SYSTEM CLEAR MERGE ERROR TENANT = tenant1,tenant2;
其中,
=为可选;tenant1、tenant2需要替换为实际的租户名。
用户租户手动控制合并
合并开始后,用户租户只能控制本租户的合并操作。可以控制的合并操作包括租户级合并和分区级合并。
用户租户的租户管理员登录到数据库。
根据业务实际情况,选择合适的命令控制合并。
暂停本租户的合并
开始合并后,如果需要暂停本租户的合并,可以执行以下语句。
obclient> ALTER SYSTEM SUSPEND MERGE;恢复合并
暂停合并后,也可以恢复合并。
语句如下:
obclient> ALTER SYSTEM RESUME MERGE;清理 Checksum 错误的标记
如果在合并过程中出现了 Checksum 校验错误,且人工介入修复后,可以清理掉该 Checksum 错误的标记,以恢复合并。
语句如下:
obclient> ALTER SYSTEM CLEAR MERGE ERROR;