问题现象
OceanBase 集群归档状态变为 INTERRUPTED,日志存在如下异常。
WARN [ARCHIVE] locate_ilog_by_log_id (ob_archive_log_wrapper.cpp:99) [228860][3125][Y0-0000000000000000] [lt=8] [dc=0] start_log_id ilog smaller than minimum ilog file exists(ret=-4233, ret="OB_ERR_OUT_OF_LOWER_BOUND", pg_key={tid:1106108697593600, partition_id:1152921607954497548, part_idx:24, subpart_idx:12}, start_log_id=362798, retry_time=0, max_retry_times=3)
问题原因
OceanBase 集群在进行归档时需要依赖 ilog 文件,ilog 文件并不是永久保存,ilog 文件也会不断地被 OceanBase 集群清理,并且 ilog 的清理并不会顾及归档是否还需要使用,如果归档所使用的 ilog 被清理,归档就会中断(INTERRUPTED),导致 ilog 被清理的常见原因是:备份介质性能较差,日志归档效率低无法及时的将 Clog 进行归档。
关键信息
关键日志如下。
WARN [CLOG] locate_ilog_file_by_log_id (ob_log_engine.cpp:2840) [228860][3125][Y0-0000000000000000] [lt=7] [dc=0] locate_ilog_file_by_log_id failed(ret=-4233, pkey={tid:1106108697593600, partition_id:1152921607954497548, part_idx:24, subpart_idx:12})
WARN [ARCHIVE] locate_ilog_by_log_id (ob_archive_log_wrapper.cpp:99) [228860][3125][Y0-0000000000000000] [lt=8] [dc=0] start_log_id ilog smaller than minimum ilog file exists(ret=-4233, ret="OB_ERR_OUT_OF_LOWER_BOUND", pg_key={tid:1106108697593600, partition_id:1152921607954497548, part_idx:24, subpart_idx:12}, start_log_id=362798, retry_time=0, max_retry_times=3)
问题的风险及影响
归档中断。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
适用版本
OceanBase 数据库 V2.x 和 V3.x 版本。
解决方法及规避方式
解决方法:
重启归档即可解决。
规避方式:
需要具体问题具体分析,确认问题点是归档介质性能问题还是其他原因,然后针对性进行处理。