【产品名称】
OceanBase
【产品版本】
3.1.1
【问题描述】
正常情况下,OB可以通过 cdb_ob_backup_set_details 以及 cdb_ob_backup_archivelog_summary两张表的数据获取某个租户的可恢复时间窗口。
但如果设置了自动清理备份时间,某些备份被清理,这个时候如何获取正确的恢复窗口?
【产品名称】
OceanBase
【产品版本】
3.1.1
【问题描述】
正常情况下,OB可以通过 cdb_ob_backup_set_details 以及 cdb_ob_backup_archivelog_summary两张表的数据获取某个租户的可恢复时间窗口。
但如果设置了自动清理备份时间,某些备份被清理,这个时候如何获取正确的恢复窗口?
看文档keep,keep_until这个字段有点像用来标记保存时间,但测试下来好像这两个字段不更新
Hi,盟主熊
非常感谢你对OB的关注,关于你的问题:
正常情况下可恢复窗口在
视图CDB_OB_BACKUP_SET_DETAILS 的 START_TIME 与 视图CDB_OB_BACKUP_ARCHIVELOG_SUMMARY 的 MAX_NEXT_TIME 之间
如果要打开自动清理功能,你需要设置recovery_window选项,假如你设置的是5day,那可以恢复的正确时间窗口就是 当前时间 - 5day
所以我的确无法从keep,keep_until这两个字段准确获知备份是否被删除,这两个字段的确不更新是么
是可以的,我们来举一个例子
存在 backupset 1 backupset 2. backupset 3 backupset 4 个全备
他们的时间分别是 大前天 前天 昨天 和 昨天
日志归档一直不断流
如果我们设置了recovery_window = 1day
那实际上我们承诺的恢复窗口就是1day,也就是可以恢复到昨天的任意时刻
此时 backupset1 会被删除 backupset2会被保留
您通过视图仍然可以找到正确的恢复时间,当然,这个时间可能存在间隙(大于1day),但是这部分gap的恢复区间我们不承诺一定可以恢复成功。
这个是用来标记备份恢复任务的保留时间,和备份集并无关系
了解了
多谢