基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
升级混跑期间 PX PKEY 计划结果不正确
更新时间:2026-05-26 09:46
问题现象
在升级混跑期间,PX 分区表 JOIN 场景,如查询选择了 PKEY 计划(计划里有 EXCHANGE OUT DISTR (PKEY) 字段),执行计划如下。
=====================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
---------------------------------------------------------------------
|0 |PX COORDINATOR | |10 |27 |
|1 |└─EXCHANGE OUT DISTR |:EX10001|10 |23 |
|2 | └─HASH JOIN | |10 |20 |
|3 | ├─EXCHANGE IN DISTR | |10 |10 |
|4 | │ └─EXCHANGE OUT DISTR (PKEY)|:EX10000|10 |9 |
|5 | │ └─PX BLOCK ITERATOR | |10 |8 |
|6 | │ └─TABLE FULL SCAN |t3 |10 |8 |
|7 | └─PX PARTITION ITERATOR | |10 |8 |
|8 | └─TABLE FULL SCAN |t2 |10 |8 |
=====================================================================
如果接收 SQL 请求的机器(这里 PX COORDINATOR 所在机器)与数据所在机器(这里 t2 的 TABLE SCAN),版本不一致则会出现正确性问题。proxy 路由不准,无 primary zone(leader 打散)等原因都存在接收 SQL 请求机器与数据所在机器不一致。
问题原因
PKEY 计划的兼容性问题,导致不同版本看到的分区映射关系不一致,从而结果不一致。
问题的风险及影响
结果正确性风险。
影响版本
OceanBase 数据库 V3.2.3 BP10(oceanbase-3.2.3.3-110000092023091219), V3.2.3 BP10 Hotfix1(oceanbase-3.2.3.3-110010042023092216)、V4.1.0 BP4(oceanbase-4.1.0.2-104000032023092119) 版本。
说明
更低版本升级以上版本期间会出现此问题。
解决方法及规避方式
- 升级期间碰到此问题可以将并行度改为 1,或用 PQ_DISTRIBUTE hint 改为非 PKEY 计划。
- 升级到问题已修复版本,目前已修复的版本包含 OceanBase 数据库 V3.2.3 BP10 Hotfix2(oceanbase-3.2.3.3-110020022023092816)、V4.1.0 BP4 Hotfix1(oceanbase-4.1.0.2-104010012023092816)及之后版本。