首批通过分布式安全可靠测评,为关键业务系统打造
V4.2.1.5 之前的版本升级 V4.2.1.5、V4.2.1.6 版本,触发迁移、复制、rebuild 失败,补副本流程,报错 -4735
更新时间:2026-06-01 09:21
问题现象
OceanBase 数据库 V4.2.1 BP5(oceanbase-4.2.1.5-105000072024041817)之前的版本升级至 V4.2.1 BP5(oceanbase-4.2.1.5-105000072024041817)、V4.2.1 BP6(oceanbase-4.2.1.6-106000022024042414)版本,触发迁移、复制、rebuild 失败,补副本流程,报错 -4735。
查询的 SQL 如下。
select * from oceanbase.__all_rootservice_event_history where event like '%finish_mig%' and value6 like '%-4735%' order by gmt_create desc limit 10;
关键诊断信息
触发条件
OceanBase 数据库 V4.2.1 BP5(oceanbase-4.2.1.5-105000072024041817)之前的版本升级至 V4.2.1 BP5(oceanbase-4.2.1.5-105000072024041817)、V4.2.1 BP6(oceanbase-4.2.1.6-106000022024042414)版本,触发迁移、复制、rebuild 失败、补副本流程。
事前巡检
无
事后诊断
通过查询 __all_rootservice_event_history 视图获取有关 -4735 报错信息。
查询的 SQL 如下:
select * from oceanbase.__all_rootservice_event_history where event like '%finish_mig%' and value6 like '%-4735%' order by gmt_create desc limit 10;
上述如果有记录,可以通过记录中的 task_id 搜索迁移目的端机器对应时间的日志找到报错信息,进行确认。
grep "Y1ED264586ADE-000618254CC3906A-0-0" observer.log
输出结果如下:
observer.log.20240511115653449:[2024-05-11 11:56:52.790197] WDIAG [STORAGE] build_tablets_sstable_info_ (ob_ls_migration.cpp:1854) [11244][T1006_SYS_TABLE][T1006][Y1ED364586ADE-000618257AB2714A-0-0] [lt=30][errcode=-4735] failed to build tablets sstable info(ret=-4735, ctx_={ObIHADagNetCtx:{"ObIHADagNetCtx":"ObIHADagNetCtx", result_mgr:{result:0, retry_count:1, allow_retry:true, failed_task_id_list:[]}}, arg:{ls_id:{id:1003}, type:"ADD_LS_OP", cluster_id:1, priority:0, src:{server:"xxx.xx.xxx.xxx:xxxx", timestamp:1, flag:0, replica_type:0, region:"default_region", memstore_percent:100}, dst:{server:"xxx.xx.xxx.xxx:xxxx", timestamp:1715399811958098, flag:0, replica_type:0, region:"default_region", memstore_percent:100}, data_src:{server:"xxx.xx.xxx.xxx:xxxx", timestamp:1, flag:0, replica_type:0, region:"default_region", memstore_percent:100}, paxos_replica_number:3}, local_clog_checkpoint_scn:{val:0, v:0}, local_rebuild_seq:0, start_ts:1715399812742809, finish_ts:0, task_id:Y1ED264586ADE-000618254CC3906A-0-0, xxxxxxx)
取报错日志的 trace_id 进行 grep 过滤,命令如下。
grep "Y1ED364586ADE-000618257AB2714A-0-0" observer.log
关键信息如下:
迁移目的端日志,RPC 报错-4735 。
observer.log.20240511115653449:[2024-05-11 11:56:52.790018] WDIAG [RPC] send (ob_poc_rpc_proxy.h:170) [11244][T1006_SYS_TABLE][T1006][Y1ED364586ADE-000618257AB2714A-0-0] [lt=9][errcode=-4735] execute rpc fail(addr="xxx.xx.xxx.xxx:xxxx", pcode=1175, ret=-4735, timeout=30000000)
observer.log.20240511115653449:[2024-05-11 11:56:52.790032] WDIAG log_user_error_and_warn (ob_poc_rpc_proxy.cpp:244) [11244][T1006_SYS_TABLE][T1006][Y1ED364586ADE-000618257AB2714A-0-0] [lt=12][errcode=-4735]
observer.log.20240511115653449:[2024-05-11 11:56:52.790044] WDIAG [STORAGE] init (ob_storage_ha_reader.cpp:1075) [11244][T1006_SYS_TABLE][T1006][Y1ED364586ADE-000618257AB2714A-0-0] [lt=5][errcode=-4735] failed to send fetch tablet info rpc(ret=-4735, src_info={src_addr:"xxx.xx.xxx.xxx:xxxx", cluster_id:1}, rpc_arg={tenant_id:1006, ls_id:{id:1003}, need_check_seq:true, ls_rebuild_seq:0, is_only_copy_major:false, tablet_sstable_info_arg_list:[{tablet_id:{id:49402}, max_major_sstable_snapshot:0, minor_sstable_scn_range:{start_scn:{val:1, v:0}, end_scn:{val:4611686018427387903, v:0}}, ddl_sstable_scn_range:{start_scn:{val:0, v:0}, end_scn:{val:0, v:0}}}, {tablet_id:{id:49401}, max_major_sstable_snapshot:0, minor_sstable_scn_range:{start_scn:{val:1, v:0}, end_scn:{val:4611686018427387903, v:0}}, ddl_sstable_scn_range:{start_scn:{val:0, v:0}, end_scn:{val:0, v:0}}}, {tablet_id:{id:49403}, max_major_sstable_snapshot:0, minor_sstable_scn_range:{start_scn:{val:1, v:0}, end_scn:{val:4611686018427387903, v:0}}, ddl_sstable_scn_range:{start_scn:{val:0, v:0}, end_scn:{val:0, v:0}}}], version:17180000519})
observer.log.20240511115653449:[2024-05-11 11:56:52.790071] WDIAG [STORAGE] get_tablets_sstable_ob_reader_ (ob_storage_ha_tablet_builder.cpp:739) [11244][T1006_SYS_TABLE][T1006][Y1ED364586ADE-000618257AB2714A-0-0] [lt=27][errcode=-4735] failed to init copy tablet info ob reader(ret=-4735, param_={tenant_id:1006, ls:{ls_meta:{tenant_id:1006, ls_id:{id:1003}, ls_create_status:1, clog_checkpoint_scn:{val:1715399808394538349, v:0}, clog_base_lsn:{lsn:0}, rebuild_seq:1, migration_status:1, gc_state_:1, offline_scn_:{val:18446744073709551615, v:3}, restore_status:{status:0}, replayable_point:{val:1715399809119611313, v:0}, tablet_change_checkpoint_scn:{val:1715398518949199764, v:0}, all_id_meta:{id_meta:[{limited_id:1, latest_log_ts:{val:18446744073709551615, v:3}},xxxxxxxx)
observer.log.20240511115653449:[2024-05-11 11:56:52.790116] WDIAG [STORAGE] get_tablets_sstable_reader_ (ob_storage_ha_tablet_builder.cpp:662) [11244][T1006_SYS_TABLE][T1006][Y1ED364586ADE-000618257AB2714A-0-0] [lt=42][errcode=-4735] failed to get tablets sstable ob reader(ret=-4735, param_={tenant_id:1006, ls:{ls_meta:{tenant_id:1006, ls_id:{id:1003}, ls_create_status:1, clog_checkpoint_scn:{val:1715399808394538349, v:0}, clog_base_lsn:{lsn:0}, rebuild_seq:1, migration_status:1, gc_state_:1, offline_scn_:{val:18446744073709551615, v:3}, restore_status:{status:0}, replayable_point:{val:1715399809119611313, v:0}, tablet_change_checkpoint_scn:{val:1715398518949199764, v:0}, all_id_meta:{id_meta:[{limited_id:1, latest_log_ts:{val:18446744073709551615, v:3}}, xxxxxxxxxxx)
前往 RPC fail 目的端机器,通过 task_id 搜索对应时间的日志。
grep "Y1ED364586ADE-000618257AB2714A-0-0" observer.log
输出结果如下:
observer.log.20240511115853221:[2024-05-11 11:56:52.789744] WDIAG [STORAGE] init (ob_storage_ha_reader.cpp:1665) [98119][T509_L0_G0][T1006][Y1ED364586ADE-000618257AB2714A-0-0] [lt=49][errcode=-4735] src tablet clog_checkpoint_scn is smaller than dest needed log ts(ret=-4735, tablet_sstable_info={tablet_id:{id:49402}, max_major_sstable_snapshot:0, minor_sstable_scn_range:{start_scn:{val:1, v:0}, end_scn:{val:4611686018427387903, v:0}}, ddl_sstable_scn_range:{start_scn:{val:0, v:0}, end_scn:{val:0, v:0}}}, tablet={this:0x7f4c98fabfe0, is_inited:true, wash_score:1715399812759592168, hold_ref_cnt:true, ref_cnt:2, version:2, length:456, tablet_addr:[561-562-0-2305843593329979392-0](offset=733184,size=544,type=2,seq=0), allocator:null, tablet_meta:{xxxxxxxxxxx})
observer.log.20240511115853221:[2024-05-11 11:56:52.789887] WDIAG [STORAGE] build_sstable_info_ (ob_storage_rpc.cpp:1593) [98119][T509_L0_G0][T1006][Y1ED364586ADE-000618257AB2714A-0-0] [lt=141][errcode=-4735] failed to init copy sstable info ob producer(ret=-4735, arg={tablet_id:{id:49402}, max_major_sstable_snapshot:0, minor_sstable_scn_range:{start_scn:{val:1, v:0}, end_scn:{val:4611686018427387903, v:0}}, ddl_sstable_scn_range:{start_scn:{val:0, v:0}, end_scn:{val:0, v:0}}})
observer.log.20240511115853221:[2024-05-11 11:56:52.789906] WDIAG [STORAGE] build_tablet_sstable_info_ (ob_storage_rpc.cpp:1573) [98119][T509_L0_G0][T1006][Y1ED364586ADE-000618257AB2714A-0-0] [lt=10][errcode=-4735] failed to get next tablet sstable info(arg={tablet_id:{id:49402}, max_major_sstable_snapshot:0, minor_sstable_scn_range:{start_scn:{val:1, v:0}, end_scn:{val:4611686018427387903, v:0}}, ddl_sstable_scn_range:{start_scn:{val:0, v:0}, end_scn:{val:0, v:0}}})
observer.log.20240511115853221:[2024-05-11 11:56:52.789918] WDIAG [STORAGE] process (ob_storage_rpc.cpp:1538) [98119][T509_L0_G0][T1006][Y1ED364586ADE-000618257AB2714A-0-0] [lt=10][errcode=-4735] failed to build tablet sstable info(ret=-4735, arg_={tenant_id:1006, ls_id:{id:1003}, need_check_seq:true, ls_rebuild_seq:0, is_only_copy_major:false, tablet_sstable_info_arg_list:[{tablet_id:{id:49402}, max_major_sstable_snapshot:0, minor_sstable_scn_range:{start_scn:{val:1, v:0}, end_scn:{val:4611686018427387903, v:0}}, ddl_sstable_scn_range:{start_scn:{val:0, v:0}, end_scn:{val:0, v:0}}}, {tablet_id:{id:49401}, max_major_sstable_snapshot:0, minor_sstable_scn_range:{start_scn:{val:1, v:0}, end_scn:{val:4611686018427387903, v:0}}, ddl_sstable_scn_range:{start_scn:{val:0, v:0}, end_scn:{val:0, v:0}}}, {tablet_id:{id:49403}, max_major_sstable_snapshot:0, minor_sstable_scn_range:{start_scn:{val:1, v:0}, end_scn:{val:4611686018427387903, v:0}}, ddl_sstable_scn_range:{start_scn:{val:0, v:0}, end_scn:{val:0, v:0}}}], version:17180000519}
问题原因
之前修改兼容性遗留的问题。
问题的风险及影响
OceanBase 数据库 V4.2.1 BP5(oceanbase-4.2.1.5-105000072024041817)之前的版本升级至 V4.2.1 BP5(oceanbase-4.2.1.5-105000072024041817)、V4.2.1 BP6(oceanbase-4.2.1.6-106000022024042414)版本期间迁移复制 rebuild 无法成功。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
影响版本
OceanBase 数据库企业版本 V4.2.1 BP4(oceanbase-4.2.1.4-104000062024022914)及之后版本。
解决方法及规避方式
解决方法:
解决方法一: 升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库 V4.2.1 BP7(oceanbase-4.2.1.7-107000112024052920)版本。
解决方法二: 对于 OceanBase 数据库 V4.2.1 BP5(oceanbase-4.2.1.5-105000072024041817)之前的版本升级至 V4.2.1 BP5(oceanbase-4.2.1.5-105000072024041817)、V4.2.1 BP6(oceanbase-4.2.1.6-106000022024042414)版本,若触发迁移、复制、rebuild 无法成功,补副本流程,需要手动运维。
手动运维方法。
迁移。
迁移失败等可以等升级成功再次发起。
补副本。
升级前的要求是全部机器必须在线,若在升级期间一台 server 宕机,宕机 72 小时后才会触发补副本的流程。所以升级期间触发补副本的概率相对较低。若触发了需联系 OceanBase 技术支持团队。
rebuild 。
需联系 OceanBase 技术支持团队。
规避方式:
无法回避。