4.3.5集群备份不自动清理

通过ocp配置清理备份清理,清理记录CDB_OB_BACKUP_DELETE_JOB_HISTORY也是成功执行了 但是备份的磁盘空间没有被释放 依然存在一周前的备份数据


下图是该视图的执行清理记录CDB_OB_BACKUP_DELETE_JOB_HISTORY

下两张图是自建的minio的磁盘占用情况
image
image

  1. 确认是否设置了有效的备份清理策略

检查 Oracle/OceanBase 的备份策略配置,例如:

SELECT * FROM CDB_OB_BACKUP_POLICY;

确认是否设置了:

retention_days

delete_policy = 'AUTO'

清理任务是否启用并调度执行
  1. 查看备份任务和清理任务的执行日志

可以执行如下语句查看历史执行状态:

SELECT * FROM DBA_OB_BACKUP_DELETE_JOBS ORDER BY START_TIME DESC;

重点查看 STATUS 和 ERROR_MSG 字段。
3. 确认备份文件是否实际还存在

登录备份目标存储位置(如本地磁盘、NAS 或 OSS),检查文件是否确实未删除。也可以查看备份路径下的时间戳目录结构。
4. 手动尝试清理过期备份

如果自动清理无效,可尝试执行手动清理命令,例如(OceanBase 环境):

ALTER SYSTEM DELETE BACKUP PIECE BEFORE ‘2024-05-05 00:00:00’;

或指定保留策略:

ALTER SYSTEM SET BACKUP_RETENTION_POLICY=‘RETENTION 7 DAYS’;

然后重新运行清理任务。
5. 权限或存储问题

确认 Oracle 或 OB 备份服务对目标存储路径有写权限。尤其是对象存储类(如 OSS)可能需要额外权限或签名校验。

1 个赞

OCP是什么版本

个人看到你备份目录时root 用户,个人估计看看是不是目录管理权限导致的,安装1楼的方法去处理一下,如果不行,就看看删除日志,是不是操作系统权限的问题哈!

你知道日志在哪看吗 就是ob的日志吗

4.3.5 自建的s3 存储 minio 自测新建和删除文件都没啥问题

CDB_OB_BACKUP_POLICY 这表不存在 社区版本的ob
这是现有的清理策略 查的这个表CDB_OB_BACKUP_DELETE_POLICY
image

这个OB集群呢?版本麻烦看下

另外确认下备份文件是一直没删除过?还是有删除但是保留大于7天?

show variables like '%version_comment%';

从目前来看 一次没有删除过

一开始建测试集群 有删除过桶 后来重建生产用的是新桶

这个查询结果贴下看下

SELECT * FROM CDB_OB_BACKUP_DELETE_JOB_HISTORY where TENANT_ID=1002 ORDER BY START_TIMESTAMP desc limit 5\G;


这个感觉有问题 似乎每次执行1s就结束了 taskcount都是0 这跑的是不是有点频繁了 一小时跑一次吗

自动清理是每一小时触发一次,这个是正常的

那这文件没删除 是啥情况呢也没报失败 :fearful:

这个查下 结果发下

select * from cdb_ob_backup_set_files where TENANT_ID = 1002 order by START_TIMESTAMP desc limit 20;


这个没什么问题 我本地用aws client 测试看看吧 感觉像是ob执行了 但是minio没有执行删除 你们删除是直接删除的文件夹吗

是的,这里删除到了5.2日的增量备份,记录是正常的

不是直接删除文件夹,保留文件及路径

……/xxx/xxx/tenant_incarnation_1/租户id/data/backup_set_xx_full/infos/table_list]
$ls
table_list.1725528258374708000.1.obbak  table_list_meta_info.1725528258374708000.obbak

查看下日志级别

show parameters like '%syslog_level%'\G;

使用obdiag分析下最近一小时的日志

https://www.oceanbase.com/docs/common-obdiag-cn-1000000002821497

obdiag analyze log --from "2023-10-08 10:25:00" --to "2023-10-08 11:30:00" \
  --config obcluster.servers.nodes[0].ip=xx.xx.xx.1 \
  --config obcluster.servers.nodes[1].ip=xx.xx.xx.xx.2 \
  --config obcluster.servers.global.ssh_username=test \
  --config obcluster.servers.global.ssh_password=****** \
  --config obcluster.servers.global.home_path=/home/admin/oceanbase


这个看着没啥问题 我分析日志吧

日志级别是info 需要先调低级别吗