在学习 OceanBase 的物理备份恢复时,我对 RESTORE 和 RECOVER 这两个命令的作用和顺序感到混淆。官方文档提到,执行完 RESTORE 命令后租户是 STANDBY 状态且不可读写,还需要执行 RECOVER。请问这两个步骤的核心区别是什么?RESTORE 是不是相当于把备份文件变成可恢复的基石,而 RECOVER 则是控制日志应用的时间点(比如追到最新或某个特定 SCN)?在实际操作中,如何正确组合使用它们来实现时间点恢复(PITR)?
3 个赞
坐等回复
在 OceanBase 数据库的物理备份恢复过程中,RESTORE 和 RECOVER 两个命令扮演了不同角色,其核心区别如下:
-
RESTORE 命令的主要作用是从备份集中恢复指定的数据文件(如基线数据和增量数据),并将这些数据恢复到指定的租户。此过程使得备份数据成为可恢复的基础,但此时租户处于 STANDBY 状态,即不可读也不可写。这意味着 RESTORE 仅仅是恢复流程的第一步,它将数据还原到了最近一次全量备份的状态。
-
RECOVER 命令则是在数据已经通过 RESTORE 恢复到某个基准点后,用于进一步应用日志文件,使数据状态向前推进至最新的提交状态或是某个特定的时间点(如指定的 SCN 或时间戳)。这一命令可以控制恢复的具体范围,比如可以选择恢复到某一时刻或持续回放日志直到达到某个条件。
如何组合使用实现时间点恢复 (PITR)
- 首先使用 RESTORE 命令将数据恢复到最近的一次全量备份状态,确保基础数据已就绪。
- 然后利用 RECOVER 命令,根据需求选择合适的参数(如 UNTIL TIME 或 UNTIL SCN),将事务日志应用于已恢复的数据,直到达到所需的时间点。这样即可实现精确到某个时间点的数据恢复。
综上所述,RESTORE 是为数据恢复打下一个坚实的基础,而 RECOVER 则是在这个基础上进行精细调整,实现更加灵活和精确的数据恢复。
检索到的文档如下: