问题现象
OceanBase 数据库 V3.x 环境下拷贝 OSS 中的备份数据,异地恢复时报错 CLOG : OB_INVALID_ARGUMENT(-4002)。
关键日志信息。
[2023-12-29 13:16:12.927162] INFO ob_storage_oss_base.cpp:1728 [101771][0][xxxxx-xxxxx-xxxxx-xxxxx] [lt=8] [dc=0] list files count(dir_path=oss://restoredata/backupfile/xxxxx_xxxxx/xxxxx/incarnation_1/1008/clog/1/index/xxxxx/0, file_names.count()=1)
[2023-12-29 13:16:12.927185] WARN [ARCHIVE] extract_file_id_ (ob_archive_file_utils.cpp:358) [101771][0][xxxxx-xxxxx-xxxxx-xxxxx] [lt=9] [dc=0] invalid argument(ret=-4002, file_name=)
[2023-12-29 13:16:12.927196] WARN [ARCHIVE] get_file_range (ob_archive_file_utils.cpp:55) [101771][0][xxxxx-xxxxx-xxxxx-xxxxx] [lt=9] [dc=0] extract_file_id_ fail(ret=-4002, file_name=, tmp_file_id=0)
问题原因
该问题原因为拷贝 OSS 文件时,产生了中间多余对象。
问题的风险及影响
备份数据恢复任务失败。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
适用版本
OceanBase 数据库 V3.x 版本。
解决方法
重新拷贝备份数据,再次恢复。