首批通过分布式安全可靠测评,为关键业务系统打造
OceanBase 集群备份目录变更后,清理历史残留备份信息的方法
更新时间:2026-05-11 09:51
问题原因
OceanBase 相关的内部基表都会记录每次备份信息,当变更备份目的地后,由于之前的备份没有正常通过 OceanBase 清理,导致 OceanBase 内部表会残留历史备份信息。
解决方法
通过修改内部表,删除 OceanBase 元数据中的历史残留信息。
OceanBase 数据库内核清理机制 V2.x 和 V3.x 版本是以租户为单位清理租户所有的过期备份,包括日志和数据,然后再是清理下一个租户所有过期备份。
OceanBase 数据库清理备份完成后,会自动更新内核备份相关的基表数据信息,包含:
- 备份任务记录内部表:
__all_backup_task_history/__all_backup_log_archive_status_history。 - 备份状态记录内部表:
__all_backup_set_files/__all_backup_piece_files。
因此对于没有正常清理的备份信息可以通过手动修改备份任务记录表/备份状态记录表来清理。
注意
这里没有以备份 backup_set 维度来清理。
此操作必须在研发人员指导下进行,禁止人为手动修改 OceanBase 数据库内部表数据。
根据老的
backup_dest目录来删除内部表的任务记录。delete from __all_backup_task_history where backup_dest='cos://ob-bkt-xxxx'; delete from __all_backup_log_archive_status_history where backup_dest='cos://ob-bkt-xxxx';根据老的
backup_dest目录来修改内部表的状态记录。update __all_backup_set_files set file_status='DELETED' where backup_dest='cos://ob-bkt-xxxx'; update __all_backup_piece_files set file_status='DELETED' where backup_dest='cos://ob-bkt-xxxx';
适用版本
OceanBase 数据库 V2.x、V3.x 版本。