适用版本
OceanBase 数据库 V3.x 版本。
问题现象
增量备份报 4201 错误,日志示例如下。
[2023-02-23 11:08:24.305820] WDIAG [STORAGE] ob_partition_base_data_backup.cpp:4047 [32501][0][YFA0AC1000D5-0005F54C1B1C68F0-0-0] [lt=5] [dc=0][errcode=-4201] fetch prev macro index fail(ret=-4201, macro_arg={fetch_arg:{macro_block_index:0, data_version:"2-0-0", data_seq:1048576}, table_key_ptr:{table_type:1, pkey:{tid:1100611139453821, partition_id:45, part_cnt:0}, table_id:1100611139453927, trans_version_range:{multi_version_start:1677099450028183, base_version:0, snapshot_version:1677099450028183}, log_ts_range:{start_log_ts:0, end_log_ts:0, max_log_ts:0}, version:"2-0-0"}, need_copy:false})
问题原因
全量备份的时候备份了一个主表,data version 为 2, data seq 为 0,在全量备份后有一个后建索引,并且也有一个宏块 data version 为 2,data seq 为 0,增量备份的检查重用的逻辑有问题,没有判断 table_id。
解决方法
临时规避方法
重新来一次全量备份后继续增量备份。
解决方法
需要升级来解决。
- V3.1.2 版本升级到 V3.1.2 BP12 及之后版本。
- V3.2.3 版本升级到 V3.2.3 BP8 (oceanbase-3.2.3.3-108000062023041511) 及之后版本。