首批通过分布式安全可靠测评,为关键业务系统打造
迁移复制期间源端 IO 未打标导致 SQL RT 飙高
更新时间:2026-06-01 09:21
问题现象
在执行租户级的迁移复制操作期间,业务端 SQL 请求的 RT(响应时间)突然飙高,系统延迟明显升高,严重影响在线业务的正常运行。
现场观察到的情况如下:
SQL RT 异常升高时段与租户迁移复制的时间段高度重合。
查看性能监控,发现源端节点的IO资源利用率急剧上升,SQL 吞吐降低。
对比其他非迁移时段,业务 RT 明显回落。
关键诊断信息
触发条件
集群启用 IO 隔离(Resource Manager Plan)。
执行租户级别的迁移复制。
源端未对迁移拉取宏块的 RPC 请求进行正确的 IO 打标,导致这类 IO 被错误归类到
other group。
事前巡检
检查集群总体负载、CPU、内存、磁盘 IO、网络等关键资源指标,未发现异常。
确认系统无大规模 DDL、Compaction 等资源消耗任务。
事后诊断
快速判断是否命中该问题的关键方法:
对比 SQL RT 异常时段与迁移任务时间是否吻合。
登录源端,观察 IO 隔离 group 的资源使用情况,确认
other group IO 量激增。查看日志,确认存在大量迁移RPC拉取宏块请求,最简单可以看选源端的事件。
ocp_common_ro@[oceanbase]>select * from __all_server_event_history where module like '%storage_ha%' and event like '%choose_src%' and gmt_create >= timestamp'2025-06-20 10:48:08.196225' and gmt_create <= timestamp'2025-06-20 10:51:30.539778'; +----------------------------+--------------+----------+------------+------------+-----------+--------+-------+--------+----------+--------------------+----------+---------------------+---------+---------------+-------+--------+------------+ | gmt_create | svr_ip | svr_port | module | event | name1 | value1 | name2 | value2 | name3 | value3 | name4 | value4 | name5 | value5 | name6 | value6 | extra_info | +----------------------------+--------------+----------+------------+------------+-----------+--------+-------+--------+----------+--------------------+----------+---------------------+---------+---------------+-------+--------+------------+ | 2025-06-20 10:48:18.967604 | xx.xxx.x.221 | 2882 | storage_ha | choose_src | tenant_id | 1002 | ls_id | 1003 | src_addr | "xx.xxx.x.74:2882" | dst_addr | "xx.xxx.x.211:2882" | op_type | MIGRATE_LS_OP | | | | | 2025-06-20 10:48:19.602469 | xx.xxx.x.211 | 2882 | storage_ha | choose_src | tenant_id | 1002 | ls_id | 1006 | src_addr | "xx.xxx.x.77:2882" | dst_addr | "xx.xxx.x.211:2882" | op_type | MIGRATE_LS_OP | | | | | 2025-06-20 10:48:19.666592 | xx.xxx.x.211 | 2882 | storage_ha | choose_src | tenant_id | 1002 | ls_id | 1005 | src_addr | "xx.xxx.x.74:2882" | dst_addr | "xx.xxx.x.211:2882" | op_type | MIGRATE_LS_OP | | | | | 2025-06-20 10:48:19.959355 | xx.xxx.x.211 | 2882 | storage_ha | choose_src | tenant_id | 1002 | ls_id | 1002 | src_addr | "xx.xxx.x.77:2882" | dst_addr | "xx.xxx.x.211:2882" | op_type | MIGRATE_LS_OP | | | | +----------------------------+--------------+----------+------------+------------+-----------+--------+-------+--------+----------+--------------------+----------+---------------------+---------+---------------+-------+--------+------------+ 4 rows in set (0.129 sec)
问题原因
迁移复制任务在源端执行宏块拉取时,RPC 请求发起方没有进行 consumer group 打标,导致这些 IO 被默认归类到 other group。 由于 other group 本质为业务 SQL 前台请求保留组,无法进行有效的 IO 限流和隔离,造成后台迁移 IO 和业务 SQL 抢占同一 IO 配额,最终拖高 SQL RT。
问题的风险及影响
对业务 SQL 请求的实时性能造成直接影响,RT 升高,SQL 延迟变差。
大并发环境下可能引发 SQL 超时或失败。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
影响版本
OceanBase 数据库企业版 V4.2.1 GA(oceanbase-4.2.1.0-100000182023092722)及之后版本、V4.2.2 GA(oceanbase-4.2.2.0-100000082024011317)及之后版本、V4.2.5 GA(oceanbase-4.2.5.0-100000082024102022)及之后版本、V4.3.0(oceanbase-4.3.0.0-100000072024020200)及之后版本、V4.3.5 GA(oceanbase-4.3.5.0-100000122024123020)及之后版本。
解决方法
升级到问题已修复版本。目前已修复的版本包含 OceanBase 数据库企业版 V4.2.5 BP4(oceanbase-4.2.5.4-104000082025052817)及之后版本、V4.3.5 BP3(oceanbase-4.3.5.3-103000102025071821)及之后版本。
若问题已发生且正在影响业务,可临时采取以下应急措施:
暂停当前迁移任务,待业务低峰时段重新安排。
临时调大
other group的 IO 限额(可以通过降低其他group的 IO 配额实现),缓解 SQL IO 抢占。如有可能,可通过调小迁移并发数(租户级别 ha_high_thread_score 与 ha_mid_thread_score),降低源端 IO 压力。
规避方式
短期规避:
在迁移窗口选择业务低峰时段执行。
提前调大
other group限额,避免迁移期间 SQL 被过度抢占。
长期规避(推荐):
升级至包含迁移 RPC 源端 IO 打标修复的版本,确保后续迁移流量正确归类到 background group 或 HA group 等非 SQL 前台组。