备份成功后,您可以根据业务需要,自动清理备份数据。
使用说明
自动清理仅支持删除配置项
backup_dest
中设置的备份目的端的数据,对于更换备份目的端的场景,需要手动清理过期数据。自动清理会保留至少一份有效的备份数据,如果唯一的一份有效数据已过期,则这份有效数据不能被自动清理。
通过 backup_dest_option 配置项开启自动清理功能
使用 sys 租户的 root 用户登录数据库。
执行以下命令,通过
backup_dest_option
配置项设置备份数据的过期时间和清理策略。开启自动清理功能,并自动清理 7 天之前的数据的示例如下:
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_option
和log_archive_checkpoint_interval
均未设置,则使用默认值120s
。建议使用backup_dest_option
配置项来设置日志备份的时间间隔。recovery_window
用于控制备份数据的保留时间。如果不通过
backup_dest_option
配置项设置,则默认使用集群级别的配置项backup_recovery_window
的值。如果backup_dest_option
和backup_recovery_window
均未设置,则使用默认值0
,表示备份数据不过期。建议使用backup_dest_option
配置项来来控制备份数据的保留时间。对于自动清理场景,备份的数据过期后,系统会按照一定的规则自动清理过期的数据。
auto_delete_obsolete_backup
用于控制是否自动删除过期的备份数据。如果不通过
backup_dest_option
配置项设置,则默认使用集群级别的配置项auto_delete_expired_backup
的值。如果backup_dest_option
和auto_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
配置项来开启自动清理功能。
使用 sys 租户的 root 用户登录数据库。
根据以下命令,通过
backup_recovery_window
配置项设置备份数据的过期时间。obclient>ALTER SYSTEM SET backup_recovery_window = <过期时间>;
其中,
backup_recovery_window
是一个配置项,用于表示成功备份的数据可以提供恢复的时间窗口,默认值为0
,表示永久保留;建议设置为'7d'
,表示备份数据保留一周后过期。对于自动清理场景,备份数据过期后系统会自动清理备份的数据。示例如下:
obclient> ALTER SYSTEM SET backup_recovery_window = '7d';
执行以下命令,通过
auto_delete_expired_backup
配置项开启备份数据的自动清理功能。obclient> ALTER SYSTEM SET auto_delete_expired_backup = 'True';
说明
如果出现了
9044
的报错,则表示数据清理任务已开始,不允许再次发起清理任务。
通过 OCP 开启自动过期备份清理开关
在 OCP 上创建备份策略时,您可以开启 过期备份清理调度配置 开关,待备份数据过期后系统会自动清理过期的数据。通过 OCP 创建备份策略的详细操作请参见 通过 OCP 备份。