社区版OCP扩容

grep "YB420A000043-00063ED12F96B0FE-0-0" observer.log*
observer.log.20250917161512914:[2025-09-17 16:09:49.318373] WDIAG [SQL.RESV] resolve_add_partition (ob_alter_table_resolver.cpp:1469) [17350][T1004_L0_G0][T1004][YB420A000043-00063ED12F96B0FE-0-0] [lt=1][errcode=-4007] sub part template is null(ret=-4007)
observer.log.20250917161512914:[2025-09-17 16:09:49.318390] WDIAG resolve_add_partition (ob_alter_table_resolver.cpp:1470) [17350][T1004_L0_G0][T1004][YB420A000043-00063ED12F96B0FE-0-0] [lt=17][errcode=-4007] Add partition on subpart table without template not supported
observer.log.20250917161512914:[2025-09-17 16:09:49.318396] WDIAG [SQL.RESV] resolve_partition_options (ob_alter_table_resolver.cpp:3605) [17350][T1004_L0_G0][T1004][YB420A000043-00063ED12F96B0FE-0-0] [lt=4][errcode=-4007] Resolve add partition error!(ret=-4007)
observer.log.20250917161512914:[2025-09-17 16:09:49.318400] WDIAG [SQL.RESV] resolve_action_list (ob_alter_table_resolver.cpp:601) [17350][T1004_L0_G0][T1004][YB420A000043-00063ED12F96B0FE-0-0] [lt=4][errcode=-4007] Resolve partition option failed!(ret=-4007)
observer.log.20250917161512914:[2025-09-17 16:09:49.318404] WDIAG [SQL.RESV] resolve (ob_alter_table_resolver.cpp:201) [17350][T1004_L0_G0][T1004][YB420A000043-00063ED12F96B0FE-0-0] [lt=4][errcode=-4007] failed to resolve action list.(ret=-4007)
observer.log.20250917161512914:[2025-09-17 16:09:49.318409] WDIAG [SQL.RESV] stmt_resolver_func (ob_resolver.cpp:155) [17350][T1004_L0_G0][T1004][YB420A000043-00063ED12F96B0FE-0-0] [lt=3][errcode=-4007] execute stmt_resolver failed(ret=-4007, parse_tree.type_=3270)
observer.log.20250917161512914:[2025-09-17 16:09:49.318419] WDIAG [SQL] generate_stmt (ob_sql.cpp:2664) [17350][T1004_L0_G0][T1004][YB420A000043-00063ED12F96B0FE-0-0] [lt=7][errcode=-4007] failed to resolve(ret=-4007)
observer.log.20250917161512914:[2025-09-17 16:09:49.318426] WDIAG [SQL] generate_physical_plan (ob_sql.cpp:2786) [17350][T1004_L0_G0][T1004][YB420A000043-00063ED12F96B0FE-0-0] [lt=6][errcode=-4007] Failed to generate stmt(ret=-4007, result.get_exec_context().need_disconnect()=false)
observer.log.20250917161512914:[2025-09-17 16:09:49.318431] WDIAG [SQL] handle_physical_plan (ob_sql.cpp:4458) [17350][T1004_L0_G0][T1004][YB420A000043-00063ED12F96B0FE-0-0] [lt=4][errcode=-4007] Failed to generate plan(ret=-4007, result.get_exec_context().need_disconnect()=false)
observer.log.20250917161512914:[2025-09-17 16:09:49.318437] WDIAG [SQL] handle_text_query (ob_sql.cpp:2385) [17350][T1004_L0_G0][T1004][YB420A000043-00063ED12F96B0FE-0-0] [lt=5][errcode=-4007] fail to handle physical plan(ret=-4007)
observer.log.20250917161512914:[2025-09-17 16:09:49.318440] WDIAG [SQL] stmt_query (ob_sql.cpp:206) [17350][T1004_L0_G0][T1004][YB420A000043-00063ED12F96B0FE-0-0] [lt=4][errcode=-4007] fail to handle text query(stmt=alter table `metric_data_async` add partition(partition p20250919 values less than (1758211200)), ret=-4007)
observer.log.20250917161512914:[2025-09-17 16:09:49.318451] WDIAG [SERVER] after_func (ob_query_retry_ctrl.cpp:872) [17350][T1004_L0_G0][T1004][YB420A000043-00063ED12F96B0FE-0-0] [lt=8][errcode=-4007] [RETRY] check if need retry(v={force_local_retry:false, stmt_retry_times:0, local_retry_times:0, err_:-4007, err_:"OB_NOT_SUPPORTED", retry_type:0, client_ret:-4007}, need_retry=false)
observer.log.20250917161512914:[2025-09-17 16:09:49.318461] WDIAG [SERVER] do_process (obmp_query.cpp:795) [17350][T1004_L0_G0][T1004][YB420A000043-00063ED12F96B0FE-0-0] [lt=9][errcode=-4007] run stmt_query failed, check if need retry(ret=-4007, cli_ret=-4007, retry_ctrl_.need_retry()=0, sql=alter table `metric_data_async` add partition(partition p20250919 values less than (1758211200)))
observer.log.20250917161512914:[2025-09-17 16:09:49.318469] WDIAG [SERVER] do_process (obmp_query.cpp:920) [17350][T1004_L0_G0][T1004][YB420A000043-00063ED12F96B0FE-0-0] [lt=6][errcode=-4007] query failed(ret=-4007, session={this:0x7f461c33bcc8, id:3221502679, tenant:"ocp_monitor", tenant_id:1004, effective_tenant:"ocp_monitor", effective_tenant_id:1004, database:"monitor_database", user:"root@%", consistency_level:3, session_state:2, autocommit:true, tx:null}, sql=alter table `metric_data_async` add partition(partition p20250919 values less than (1758211200)), retry_ctrl_.need_retry()=0)
observer.log.20250917161512914:[2025-09-17 16:09:49.318487] INFO  [SERVER] send_error_packet (obmp_packet_sender.cpp:311) [17350][T1004_L0_G0][T1004][YB420A000043-00063ED12F96B0FE-0-0] [lt=13] sending error packet(err=-4007, extra_err_info=NULL, lbt()="0xf0bba8c 0x7f702dc 0x7f2d8b8 0x3fb494b 0x3fb0562 0x3fabed9 0x3fa9d9a 0x3fa6768 0x6a0ad14 0xf3666c7 0xf35faca 0x7f4781076ea5 0x7f4780d9f96d")

好,我查一下

也会报错

我测试了两个版本,4.2.1.10版本报不支持,咨询了下研发,说是之前的版本只能支持在 模版二级分区表 上加分区,由于这张表metric_data_async不是模版二级分区,所以报了不支持,具体从哪个版本开始支持的,我们再确认下

obclient [test]> alter table `metric_data_async` add partition(partition p20250919 values less than (1758211200));
ERROR 1235 (0A000): Add partition on subpart table without template not supported
obclient [test]> show variables like '%version_comment%';
+-----------------+-------------------------------------------------------------------------------------------------------------------+
| Variable_name   | Value                                                                                                             |
+-----------------+-------------------------------------------------------------------------------------------------------------------+
| version_comment | OceanBase_CE 4.2.1.10 (r110000072024112010-28c1343085627e79a4f13c29121646bb889cf901) (Built Nov 20 2024 10:10:50) |
+-----------------+-------------------------------------------------------------------------------------------------------------------+
1 row in set (0.004 sec)




obclient [test]> alter table `metric_data_async` add partition(partition p20250919 values less than (1758211200));
Query OK, 0 rows affected (0.165 sec)

obclient [test]> show variables like '%version_comment%';
+-----------------+------------------------------------------------------------------------------------------------------------------+
| Variable_name   | Value                                                                                                            |
+-----------------+------------------------------------------------------------------------------------------------------------------+
| version_comment | OceanBase_CE 4.3.5.3 (r103010012025090210-8b80b225c2dcba7dd0c83f3d5a24e3c1ffc03f24) (Built Sep  2 2025 10:24:21) |
+-----------------+------------------------------------------------------------------------------------------------------------------+
1 row in set (0.003 sec)

至于这里,应该是不同版本的OCP 的表是有差异的

42x 是 423,43x 是 4301开始支持,
这里支持的是指非模板二级分区,新增一级分区不指定二级分区定义,会补充一个默认二级分区

新增一级分区指定二级分区定义(模版)很早就支持了

1 个赞

谢谢解答

实践案例很有参考价值

技术细节讲得很清楚,学到了!

收藏了

赞一个!

经验分享很有价值

干货满满,受益匪浅

写得很详细

内容很好