数据备份成功后,您可以根据业务需要,参考本节选择合适的操作进行备份数据的清理。

当前 OceanBase 数据库提供了以下三种方式清理备份数据:

  • 指定某一个备份的 backup_set_id 进行清理

  • 手动触发过期数据的清理

  • 自动进行过期数据的清理

清理指定备份

  1. 查询 CDB_BACKUP_SET_DETAILS 表,找到待删除的备份数据的 backup_set_id

    CDB_BACKUP_SET_DETAILS表展示了历史上备份的 backup_set 信息,包括 backup_set_idstatus

    其中,status 对应的状态目前有三种:

    • COMPELETED:表示备份数据清理完成

    • FAILED:表示备份数据清理失败

    • DELETING:表示某个 backup_set_id 的备份数据正在删除

  2. 执行以下命令,清理备份数据。

    1. obclient> ALTER SYSTEM DELETE BACKUPSET backup_set_id;

    例如,执行以下命令,表示删除 backup_set_id 为 1 的备份数据。

    1. obclient> ALTER SYSTEM DELETE BACKUPSET 1;

    说明

    如果出现了 9044 的报错,则表示数据清理任务已开始,不允许再次发起清理任务。

手动清理过期数据

  1. 根据以下命令,设置备份数据的过期时间。

    1. ALTER SYSTEM SET backup_recovery_window = <过期时间>;

    其中,backup_recovery_window 是一个配置项,用于表示成功备份的数据可以提供恢复的时间窗口,默认值为 0,表示永久保留;建议设置为 '7d',表示备份数据保留一周后过期。对于手动清理的场景,备份数据过期后,您可以手动清理过期的备份数据。

    示例如下:

    1. obclient> ALTER SYSTEM SET backup_recovery_window = '7d';
  2. 执行以下命令,立即清理过期的备份数据。

    1. obclient> ALTER SYSTEM SET DELETE OBSOLETE;

    说明

    如果出现了 9044 的报错,则表示数据清理任务已开始,不允许再次发起清理任务。

自动清理过期数据

方法一:通过配置项开启自动清理功能

  1. 根据以下命令,设置备份数据的过期时间。

    1. ALTER SYSTEM SET backup_recovery_window = <过期时间>;

    其中,backup_recovery_window 是一个配置项,用于表示成功备份的数据可以提供恢复的时间窗口,默认值为 0,表示永久保留;建议设置为 '7d',表示备份数据保留一周后过期。对于自动清理场景,备份数据过期后系统会自动清理备份的数据。

    示例如下:

    1. obclient> ALTER SYSTEM SET backup_recovery_window = '7d';
  2. 执行以下命令,开启备份数据的自动清理功能。

    1. obclient> ALTER SYSTEM SET auto_delete_expired_backup = 'True';

    说明

    如果出现了 9044 的报错,则表示数据清理任务已开始,不允许再次发起清理任务。

方法二:通过 OCP 开启自动过期备份清理开关

在 OCP 上创建备份策略时,您可以开启 过期备份清理调度配置 开关,待备份数据过期后系统会自动清理过期的数据。通过 OCP 创建备份策略的详细操作请参见 通过 OCP 备份