问题现象
OceanBase 数据库 V4.x 集群执行如下命令启动归档。
ALTER SYSTEM ARCHIVELOG TENANT = ALL;
命令执行成功,查看 oceanbase.DBA_OB_TENANTS 视图时,业务租户的 log_mode 处于 ARCHIVELOG,查看 oceanbase.CDB_OB_ARCHIVELOG 视图时,业务租户的 STATUS 为 STOP,同时 rootservice 日志内伴随如下调度归档异常关键信息。
[2024-07-03 17:40:44.702209] WDIAG [SHARE] list_directories (ob_storage_file.cpp:492) [2454189][T1007_ArchiveSv][T1007][xxxxx-xxxxx-xxxxx-xxxxx] [lt=9][errcode=-5331] fail to operate dir entry(ret=-5331, entry.d_name=check_file)
[2024-07-03 17:40:44.702209] WDIAG [SHARE] list_directories (ob_storage_file.cpp:492) [2454189][T1007_ArchiveSv][T1007][xxxxx-xxxxx-xxxxx-xxxxx] [lt=9][errcode=-5331] fail to operate dir entry(ret=-5331, entry.d_name=check_file)
[2024-07-03 17:40:44.708676] WDIAG [SHARE] check_dest_validity (ob_backup_store.cpp:443) [2454189][T1007_ArchiveSv][T1007][xxxxx-xxxxx-xxxxx-xxxxx] [lt=10][errcode=-9080] format file does not exist(ret=-9080, backup_dest={root_path:"file:///obbackup/xxx/xxxxxx/tenant_incarnation_1/xxxxxx/clog", storage_info:{endpoint:"", access_id:"", extension:"", type:"FILE"}})
问题原因
在 OceanBase 数据库集群内部启动归档时,需要检查集群内配置的归档目录下的文件信息,出现此类问题一般是因为备份文件不符合 OceanBase 所预期的情况导致,可能的原因是手动删除或移动过备份目录下的文件,导致备份文件不符合预期。
问题的风险及影响
无法正常启动备份。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
适用版本
OceanBase 数据库 V4.x 版本。
解决方法及规避方式
建议按照如下方式重新配置备份。
删除 OCP 的备份策略。
完全清空目前的备份目录下的所有文件。
清空完成后,建议创建新的备份目录,然后重新配置 OCP 的备份策略。
OCP 备份策略配置完成后,重新发起备份。