问题现象
恢复长时间卡在 restore 阶段,查询 DBA_OB_TENANTS 视图,发现 readablse scn = sync scn < recovery_until_scn 可知 SCN 号有 gap,如下图所示。

关键日志信息如下。
observer.log.20240827133839344:[2024-08-27 13:38:35.972498] WDIAG [CLOG] check_restore_done (ob_log_restore_handler.cpp:640) [1691220][T1010_HAService][T1010][xxxxx-xxxxx-xxxxx-xxxxx] [lt=16][errcode=-4023] log restore not finish(ret=-4023, id=1032, end_scn={val:1724672293587653973, v:0}, recovery_end_scn={val:1724673120414091419, v:0})
observer.log.20240827133839344:[2024-08-27 13:38:36.322933] INFO [SHARE] update_tenant_recovery_status_in_trans (ob_tenant_info_proxy.cpp:458) [1691028][T1010_RecLSSer][T1010][xxxxx-xxxxx-xxxxx-xxxxx] [lt=17] tenant scn gap info(IS_MAX_GAP_REACHED=false, REAL_GAP=0, MAX_GAP=900000000000, new_sync_scn={val:1724672293587653973, v:0}, new_replayable_scn={val:1724672293587653973, v:0}, new_readable_scn={val:1724672293587653973, v:0}, old_tenant_info={tenant_id:1010, tenant_role:"RESTORE", switchover_status:"NORMAL", switchover_epoch:0, sync_scn:1724672293587653973, replayable_scn:1724672293587653973, readable_scn:1724672293587653973, recovery_until_scn:1724673120414091419, log_mode:"NOARCHIVELOG", max_ls_id:1032})
问题原因
该问题原因是 clog 有缺口,无法恢复到最终需要的 SCN 位置。
问题的风险及影响
无法恢复成功,一直卡在 restore 阶段。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
适用版本
OceanBase 数据库 V4.x 版本。
解决方法及规避方式
解决方法:
重新备份恢复,且使用标准方式进行恢复,不使用 cp 备份等方式。
规避方式:
使用标准方式进行恢复。