备份成功后,您可以根据业务需要,自动清理备份数据。

使用说明

  • 自动清理仅支持删除配置项 backup_dest 中设置的备份目的端的数据,对于更换备份目的端的场景,需要手动清理过期数据。

  • 自动清理会保留至少一份有效的备份数据,如果唯一的一份有效数据已过期,则这份有效数据不能被自动清理。

通过 backup_dest_option 配置项开启自动清理功能

  1. 使用 sys 租户的 root 用户登录数据库。

  2. 执行以下命令,通过 backup_dest_option 配置项设置备份数据的过期时间和清理策略。

    开启自动清理功能,并自动清理 7 天之前的数据的示例如下:

    1. obclient> ALTER SYSTEM SET backup_dest_option='log_archive_checkpoint_interval=2m&recovery_window=7d&auto_delete_obsolete_backup=true&log_archive_piece_switch_interval=120s&backup_copies=2';

    其中:

    • log_archive_checkpoint_interval 用于控制日志备份的时间间隔。

      如果不通过 backup_dest_option 配置项设置,则默认使用集群级别的配置项 log_archive_checkpoint_interval 的值。如果 backup_dest_optionlog_archive_checkpoint_interval 均未设置,则使用默认值 120s。建议使用 backup_dest_option 配置项来设置日志备份的时间间隔。

    • recovery_window 用于控制备份数据的保留时间。

      如果不通过 backup_dest_option 配置项设置,则默认使用集群级别的配置项 backup_recovery_window 的值。如果 backup_dest_optionbackup_recovery_window 均未设置,则使用默认值 0,表示备份数据不过期。建议使用 backup_dest_option 配置项来来控制备份数据的保留时间。

      对于自动清理场景,备份的数据过期后,系统会按照一定的规则自动清理过期的数据。

    • auto_delete_obsolete_backup 用于控制是否自动删除过期的备份数据。

      如果不通过 backup_dest_option 配置项设置,则默认使用集群级别的配置项 auto_delete_expired_backup 的值。如果 backup_dest_optionauto_delete_expired_backup 均未设置,则系统会使用默认值 false,表示不自动删除过期的备份数据,此处需要将 auto_delete_obsolete_backup 设置为 true。建议使用 backup_dest_option 配置项来配置是否自动删除过期的备份数据。

    • log_archive_piece_switch_interval 用于控制自动按照时间段来切日志文件的目录,默认值为 0,表示不切分 Piece, 有效范围为 [1d, 7d]。

    • backup_copies 用于指定一个备份级的冗余度。默认值为 1。如果设置了 backup_backup_dest,建议该参数设置为 2,其有效范围为 [1,8]。

      如果 backup_copies 设置为 1,则在清理备份时,系统不会考虑备份备份是否已成功;如果 backup_copies 设置为 2,则仅当成功备份备份数据到 backup_backup_dest 后才会自动删除 backup_dest 下的备份。

    更多 backup_dest_option 配置项的使用说明,请参见《参考指南(MySQL 模式)》 或《参考指南 (Oracle 模式》文档中 backup_dest_option 章节。

通过 auto_delete_expired_backup 配置项开启自动清理功能

集群级别配置项 auto_delete_expired_backup 也可以用来开启自动清理功能。在日常使用中,建议您使用 backup_dest_option 配置项来开启自动清理功能。

  1. 使用 sys 租户的 root 用户登录数据库。

  2. 根据以下命令,通过 backup_recovery_window 配置项设置备份数据的过期时间。

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

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

    示例如下:

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

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

    说明

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

通过 OCP 开启自动过期备份清理开关

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