首批通过分布式安全可靠测评,为关键业务系统打造
自动清理过期备份
更新时间:2026-06-17 13:13:40
备份成功后,可以根据业务需要,为租户设置清理策略,设置了清理策略的租户将会每小时触发一次自动清理,以便过期的备份或归档数据能够及时得到清理。
注意事项
由于日志归档数据的清理依赖数据的备份,在清理日志归档数据前,请确认已存在数据备份文件,如果没有数据备份文件,则无法清理日志归档数据。
自动清理仅支持清理
DATA_BACKUP_DEST和LOG_ARCHIVE_DEST中当前指定的路径下的备份或归档数据,不会清理不再使用的备份路径和归档路径中的数据,对于已更换备份目的端或归档目的端的场景,原备份路径或归档路径下的数据只能通过手动方式进行清理。手动清理备份或归档数据的详细操作及说明,参见 手动清理指定的备份或归档数据 和 手动清空备份路径或归档路径。
自动清理会保留至少一份有效的备份数据,如果仅有一份有效的备份数据,则这份有效数据将一直不会被清理。
不同的备份介质,其备份或归档数据的自动清理结果有所不同:
- 对于备份介质为 NFS 或兼容 S3 协议的对象存储(OBS、GCS 等) 的场景,在进行备份数据的清理时,系统会直接删除满足要求的备份文件。
- 对于备份目的端为 S3/COS(以 S3 协议访问) 的场景,其备份文件的清理方式取决于
data_backup_dest以及log_archive_dest中delete_mode参数的值,该参数的详细介绍,参见 SET LOG_ARCHIVE_DEST 和 SET DATA_BACKUP_DEST。
特别地,对于路径属性中配置了
enable_worm=true参数,在进行备份或归档数据的自动清理时,系统将按照RECOVERY_WINDOW指定的时间选择满足条件的备份或归档数据进行清理,但最终能否成功清理与该路径对应的清理模式(delete_mode参数的值)以及对应 Bucket 的保留策略有关。注意
enable_worm=true参数适用于开启了合规保留策略(WORM)的场景。例如,某一备份集在
RECOVERY_WINDOW指定的时间之外,但其仍然在 WORM(Write Once Read Many)保留期内,则:如果该备份集的清理模式为
delete,则 OceanBase 数据库在清理该备份集时将会失败,需要等到该 Object 的保留期到期后,才能清理该备份集。如果该备份集的清理模式为
tagging,则 OceanBase 数据库会将该备份集打上 tag,最终由对象存储在生命周期结束并且过了 WORM 保留期后来执行删除。
系统租户为指定用户租户设置清理策略
使用
root用户登录集群的sys租户。设置清理策略,相当于开启租户的自动清理功能。
语句如下:
ALTER SYSTEM ADD DELETE BACKUP POLICY [=] policy_name RECOVERY_WINDOW [=] recovery_window TENANT [=] tenant_name;其中:
policy_name:指定清理策略名,支持的取值如下:default:表示自动清理的范围仅为租户当前DATA_BACKUP_DEST以及LOG_ARCHIVE_DEST参数中指定的路径下的备份和归档数据。log_only:表示自动清理的范围仅为租户当前LOG_ARCHIVE_DEST参数中设置的归档路径中的日志。适用于没有数据备份,仅开启了日志归档的场景。清理策略设置为log_only时,要求该租户当前DATA_BACKUP_DEST参数的值必须为空,即未配置数据备份目的端。相应的,如果设置了清理策略为log_only,则无法再通过设置DATA_BACKUP_DEST参数配置备份目的端。
recovery_window参数用于控制备份数据可恢复的时间窗口。更多该参数的详细说明请参见 recovery_window 参数介绍。TENANT参数用以指定清理策略生效的租户,需指定用户租户的租户名,且当前仅支持指定一个租户名。
注意
当前仅支持设置租户级清理策略,不支持设置集群级清理策略,每条命令只能为一个租户设置一个清理策略。
示例如下:
系统租户为
mysql001租户指定清理策略obclient(root@sys)[(none)]> ALTER SYSTEM ADD DELETE BACKUP POLICY 'default' RECOVERY_WINDOW '7d' TENANT mysql001;系统租户为
oracle001租户指定清理策略obclient(root@sys)[(none)]> ALTER SYSTEM ADD DELETE BACKUP POLICY 'log_only' RECOVERY_WINDOW '7d' TENANT oracle001;
说明
自动清理任务由后台系统每小时定时触发,因此清理策略设置完成后,可能需要等待一段时间(不超过一小时)才能查询到相对应的清理任务。
查看已设置的清理策略。
设置成功后,可以通过
oceanbase.CDB_OB_BACKUP_DELETE_POLICY视图查看所有租户清理策略。obclient(root@sys)[oceanbase]> SELECT TENANT_ID, POLICY_NAME, RECOVERY_WINDOW FROM oceanbase.CDB_OB_BACKUP_DELETE_POLICY;查询结果如下:
+-----------+-------------+-----------------+ | TENANT_ID | POLICY_NAME | RECOVERY_WINDOW | +-----------+-------------+-----------------+ | 1002 | default | 7d | | 1004 | log_only | 7d | +-----------+-------------+-----------------+ 2 rows in set
用户租户设置本租户的清理策略
用户租户的租户管理员登录到数据库。
说明
MySQL 租户的管理员用户为
root用户,Oracle 租户的管理员用户为SYS用户。设置清理策略,相当于开启租户的自动清理功能。
语句如下:
ALTER SYSTEM ADD DELETE BACKUP POLICY [=] policy_name RECOVERY_WINDOW [=] recovery_window;其中:
policy_name:指定清理策略名,支持的取值如下:default:表示自动清理的范围仅为租户当前DATA_BACKUP_DEST以及LOG_ARCHIVE_DEST参数中指定的路径下的备份和归档数据。log_only:表示自动清理的范围仅为租户当前LOG_ARCHIVE_DEST参数中设置的归档路径中的日志。适用于没有数据备份,仅开启了日志归档的场景。清理策略设置为log_only时,要求该租户当前DATA_BACKUP_DEST参数的值必须为空,即未配置数据备份目的端。相应的,如果设置了清理策略为log_only,则无法再设置DATA_BACKUP_DEST参数。
recovery_window:用于控制备份数据可恢复的时间窗口。更多该参数的详细说明请参见 recovery_window 参数介绍。
示例如下:
MySQL 模式Oracle 模式MySQL 模式下,指定本租户的清理策略为
default,且备份可恢复的时间窗口为 7 天。obclient(root@mysql001)[(none)]> ALTER SYSTEM ADD DELETE BACKUP POLICY 'default' RECOVERY_WINDOW '7d';Oracle 模式下,指定本租户的清理策略为
log_only,且备份可恢复的时间窗口为 7 天。obclient(SYS@oracle001)[SYS] ALTER SYSTEM ADD DELETE BACKUP POLICY 'log_only' RECOVERY_WINDOW '7d';说明
自动清理任务由后台系统每小时定时触发,因此清理策略设置完成后,可能需要等待一段时间(不超过一小时)才能查询到相对应的清理任务。
查看已设置的清理策略。
设置成功后,可以通过
oceanbase.DBA_OB_BACKUP_DELETE_POLICY(MySQL 模式) 视图或sys.DBA_OB_BACKUP_DELETE_POLICY(Oracle 模式) 视图查看当前租户的清理策略。MySQL 模式Oracle 模式MySQL 模式下的查询示例如下:
obclient(root@mysql001)[oceanbase]> SELECT POLICY_NAME, RECOVERY_WINDOW FROM oceanbase.DBA_OB_BACKUP_DELETE_POLICY;查询结果如下:
+-------------+-----------------+ | POLICY_NAME | RECOVERY_WINDOW | +-------------+-----------------+ | default | 7d | +-------------+-----------------+ 1 row in setOracle 模式下的查询示例如下:
obclient(SYS@oracle001)[SYS]> SELECT POLICY_NAME, RECOVERY_WINDOW FROM SYS.DBA_OB_BACKUP_DELETE_POLICY;查询结果如下:
+-------------+-----------------+ | POLICY_NAME | RECOVERY_WINDOW | +-------------+-----------------+ | log_only | 7d | +-------------+-----------------+ 1 row in set
后续操作
清理策略设置成功后,如果需要更换清理策略,需要先删除清理策略后再重新设置新的清理策略。删除清理策略的详细操作,参见 删除清理策略。
清理策略设置成功后,如果期望尽快进行过期清理,可以通过手动方式立即触发一次过期清理。手动清理过期备份的详细操作及说明,参见 手动触发过期清理。