手动清理方式主要通过 命令删除指定的 backup_set_id
、backup_piece_id
、backup_round_id
或者过期的数据。
手动清理已经过期的备份数据前,需要先配置备份数据的过期时间和清理策略,即配置 backup_dest_option
配置项中的 recovery_window
和 auto_delete_obsolete_backup
。
配置 recovery_window
和 auto_delete_obsolete_backup
的示例如下:
示例中:
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
设置为false
。建议使用backup_dest_option
配置项来配置是否自动删除过期的备份数据。log_archive_piece_switch_interval
用于控制自动按照时间段来切日志文件的目录,默认值为0
,表示不切分 Piece, 有效范围为 [1d, 7d]。backup_copies
用于指定一个备份级的冗余度。默认值为1
。如果设置了backup_backup_dest
,建议该参数设置为2
,其有效范围为 [1,8]。
更多 backup_dest_option
配置项的使用说明,请参见《参考指南(MySQL 模式)》 或《参考指南 (Oracle 模式》文档中 章节。
使用 sys 租户的 root 用户登录数据库。
分别查询视图
CDB_OB_BACKUP_SET_DETAILS
和CDB_OB_BACKUP_PIECE_FILES
,找到待删除的备份数据的backup_set_id
、piece_id
和round_id
。和
CDB_OB_BACKUP_PIECE_FILES
视图各字段的详细说明请参见《参考指南(MySQL 模式)》文档中 oceanbase.CDB_OB_BACKUP_SET_DETAILS 和 章节。
使用 sys 租户的 root 用户登录数据库。
执行以下命令,立即清理过期的备份数据。
obclient> ALTER SYSTEM DELETE OBSOLETE;
DELETE OBSOLETE
命令的使用限制如下:如果没有有效的
backup_set
或者仅有一份有效的backup_set
,则日志归档的数据切分 Piece 后不能被清理。DELETE OBSOLETE
命令仅支持删除过期的备份数据,且过期数据所在的路径需要与配置项backup_dest
的设置相同。对于更换过备份目的端的过期数据,请参见本节 清理指定备份的备份数据 中的内容。