别再混淆了!一张图看懂OceanBase物理备份恢复中的RESTORE和RECOVER到底谁先谁后

很多同学在做OB物理恢复时,对两个命令很懵:

为什么执行完RESTORE,租户还是STANDBY且不可读写?

为什么还要执行RECOVER?不恢复就不能用吗?

RECOVER UNTIL UNLIMITED和RECOVER CANCEL到底什么区别?

今天不绕弯子,直接上全流程图+命令对照表,看完这辈子都不会混。

一、核心关系一句话
RESTORE是把“备份文件”变成“可追日志的备租户”;
RECOVER是控制这个备租户“要把日志追到哪个时间点”。

二、流程图(建议收藏)
text
┌──────────────────────────────────────────────────┐
│ 第一步:RESTORE TENANT │
│ 命令:ALTER SYSTEM RESTORE … FROM … │
│ 作用:从“全量备份集”+“归档日志”重建出一个STANDBY租户 │
│ 结果:租户存在,角色=STANDBY,但可能落后N小时 │
└────────────────────┬─────────────────────────────┘

┌──────────────────────────────────────────────────┐
│ 第二步:RECOVER STANDBY TENANT │
│ 这里有三种玩法: │
│ │
│ ① RECOVER UNTIL UNLIMITED │
│ → 一直追最新日志,永远保持同步 │
│ │
│ ② RECOVER UNTIL TIME/SCN ‘2026-02-12 10:00:00’ │
│ → 追到指定时间点后自动停止 │
│ │
│ ③ RECOVER CANCEL │
│ → 手动停止日志回放 │
└────────────────────┬─────────────────────────────┘

┌──────────────────────────────────────────────────┐
│ 第三步:(可选)切换为主租户 │
│ ALTER SYSTEM SWITCHOVER TO PRIMARY │
│ 备租户 → 主租户,业务可读写 │
└──────────────────────────────────────────────────┘
三、命令详解 + 真实业务语义
:one: RESTORE —— “起死回生”
sql
ALTER SYSTEM RESTORE hr FROM ‘file:///backup/obs’ UNTIL SCN=‘1712345678’;
你告诉数据库:
“用上周日的全备 + 这周一到今天10点的归档日志,给我造一个和原来一模一样的租户出来,状态要停在10点整。”

数据库执行后:
租户有了,数据也到10点了,但这个租户现在是STANDBY角色——就像从备份里“克隆”出来的副本,能查不能写。

:two: RECOVER —— “追进度”或“定锚点”
场景A:做实时灾备

sql
ALTER SYSTEM RECOVER STANDBY TENANT hr UNTIL UNLIMITED;
租户会持续不断地从主集群拉取归档日志,永远保持最新。
:white_check_mark: 典型用途:同城容灾、异地只读副本

场景B:做时间点恢复(PITR)

sql
ALTER SYSTEM RECOVER STANDBY TENANT hr UNTIL TIME ‘2026-02-12 09:30:00’;
日志追到9:30立刻停住。
:white_check_mark: 典型用途:误删数据,恢复到删之前

场景C:手动暂停

sql
ALTER SYSTEM RECOVER STANDBY TENANT hr CANCEL;
正在追的日志立即中断,租户停留在当前SCN。
:white_check_mark: 典型用途:需要先做数据校验,再决定是否继续

四、新人最容易犯的3个错
:x: 错误1:以为RESTORE完就能读写
→ 真相:RESTORE产出的永远是备租户,必须SWITCHOVER才能变主。

:x: 错误2:RECOVER只执行一次
→ 真相:UNTIL UNLIMITED是持续任务,节点重启后需重新执行RECOVER才能继续追日志。

:x: 错误3:混淆RECOVER和物理归档清理
→ 真相:RECOVER只管“回放日志”,不管“备份日志”。日志清理是PURGE命令的事。

五、一句话记忆口诀
RESTORE是“建房子”,RECOVER是“搞装修”——
房子没建好(RESTORE失败),没法装修;
装修没搞完(RECOVER未完成),没法入住(SWITCHOVER)。

【标签】 #备份恢复 #RESTORE #RECOVER #PITR #DBA入门

2 个赞

好,加油

1 个赞

给力

加油