如何获取正确的租户恢复时间窗口

【产品名称】

OceanBase

【产品版本】

3.1.1

【问题描述】

正常情况下,OB可以通过 cdb_ob_backup_set_details 以及 cdb_ob_backup_archivelog_summary两张表的数据获取某个租户的可恢复时间窗口。

但如果设置了自动清理备份时间,某些备份被清理,这个时候如何获取正确的恢复窗口?

1 个赞

看文档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的恢复区间我们不承诺一定可以恢复成功。

这个是用来标记备份恢复任务的保留时间,和备份集并无关系

了解了


多谢