【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】OBV4.2.1
【问题描述】
@论坛小助手
备份之后,设置租户清理策略,7天清理一次
ALTER SYSTEM ADD DELETE BACKUP POLICY ‘default’ RECOVERY_WINDOW ‘7d’ TENANT mysqlt;
现在想把这个清理策略修改为1天清理一次,
ALTER SYSTEM ADD DELETE BACKUP POLICY ‘default’ RECOVERY_WINDOW ‘1d’ TENANT mysqlt;
报错:ERROR 1062 (23000): Duplicate entry ‘1002-default’ for key ‘PRIMARY’
必须得把这个策略删除才可以重新add 新的清理策略吗?有没有直接更改原清理策略RECOVERY_WINDOW的sql?
论坛小助手
#3
根据文档库中的信息,目前 OceanBase 数据库并不支持直接修改已有的备份清理策略的 RECOVERY_WINDOW
参数。如果需要调整清理策略的时间窗口,必须先删除已有的策略,然后再添加新的策略。
具体操作步骤如下:
-
删除现有的清理策略
使用以下 SQL 删除现有的清理策略:
ALTER SYSTEM REMOVE DELETE BACKUP POLICY 'default' TENANT mysqlt;
-
重新添加新的清理策略
在删除旧策略后,可以重新添加新的清理策略,设置 RECOVERY_WINDOW
为 '1d'
:
ALTER SYSTEM ADD DELETE BACKUP POLICY 'default' RECOVERY_WINDOW '1d' TENANT mysqlt;
注意事项
- 根据文档片段 1 和文档片段 10 的描述,
ALTER SYSTEM ADD DELETE BACKUP POLICY
是用于添加清理策略的语句,而当前系统不支持直接修改已存在的策略。
- 如果尝试直接添加同名策略(如
'default'
),会报错 Duplicate entry ... for key 'PRIMARY'
,这是因为策略名称在租户内是唯一的,不能重复定义。
总结
目前没有直接修改原清理策略 RECOVERY_WINDOW
的 SQL 语句,必须先删除原有策略再重新添加新的策略以实现时间窗口的调整。这是 OceanBase 数据库当前版本(V4.2.1)的设计行为。
检索到的文档如下:
- 自动清理过期备份
- 清理备份相关视图介绍
- 恢复租户
- 自动收集统计信息
- 备份架构
- SET DATA_BACKUP_DEST
- 恢复完成后升级租户
- 执行物理恢复
- 按表恢复前准备
- DELETE BACKUP POLICY
1 个赞