数据备份成功后,您可以根据业务需要,参考本节选择合适的操作进行备份数据的清理。
当前 OceanBase 数据库提供了以下三种方式清理备份数据:
指定某一个备份的 backup_set_id 进行清理
手动触发过期数据的清理
自动进行过期数据的清理
清理指定备份
查询
CDB_BACKUP_SET_DETAILS
表,找到待删除的备份数据的backup_set_id
。CDB_BACKUP_SET_DETAILS
表展示了历史上备份的 backup_set 信息,包括backup_set_id
和status
。其中,
status
对应的状态目前有三种:COMPELETED:表示备份数据清理完成
FAILED:表示备份数据清理失败
DELETING:表示某个 backup_set_id 的备份数据正在删除
执行以下命令,清理备份数据。
obclient> ALTER SYSTEM DELETE BACKUPSET backup_set_id;
例如,执行以下命令,表示删除 backup_set_id 为 1 的备份数据。
obclient> ALTER SYSTEM DELETE BACKUPSET 1;
说明
如果出现了
9044
的报错,则表示数据清理任务已开始,不允许再次发起清理任务。
手动清理过期数据
根据以下命令,设置备份数据的过期时间。
ALTER SYSTEM SET backup_recovery_window = <过期时间>;
其中,
backup_recovery_window
是一个配置项,用于表示成功备份的数据可以提供恢复的时间窗口,默认值为 0,表示永久保留;建议设置为'7d'
,表示备份数据保留一周后过期。对于手动清理的场景,备份数据过期后,您可以手动清理过期的备份数据。示例如下:
obclient> ALTER SYSTEM SET backup_recovery_window = '7d';
执行以下命令,立即清理过期的备份数据。
obclient> ALTER SYSTEM SET DELETE OBSOLETE;
说明
如果出现了
9044
的报错,则表示数据清理任务已开始,不允许再次发起清理任务。
自动清理过期数据
方法一:通过配置项开启自动清理功能
根据以下命令,设置备份数据的过期时间。
ALTER SYSTEM SET backup_recovery_window = <过期时间>;
其中,
backup_recovery_window
是一个配置项,用于表示成功备份的数据可以提供恢复的时间窗口,默认值为 0,表示永久保留;建议设置为'7d'
,表示备份数据保留一周后过期。对于自动清理场景,备份数据过期后系统会自动清理备份的数据。示例如下:
obclient> ALTER SYSTEM SET backup_recovery_window = '7d';
执行以下命令,开启备份数据的自动清理功能。
obclient> ALTER SYSTEM SET auto_delete_expired_backup = 'True';
说明
如果出现了
9044
的报错,则表示数据清理任务已开始,不允许再次发起清理任务。
方法二:通过 OCP 开启自动过期备份清理开关
在 OCP 上创建备份策略时,您可以开启 过期备份清理调度配置 开关,待备份数据过期后系统会自动清理过期的数据。通过 OCP 创建备份策略的详细操作请参见 通过 OCP 备份。