← 返回题目列表

Oracle 备份恢复怎么做?RMAN、归档日志和恢复点有什么关系?

高频 困难 第 19 / 32 题 更新于 2026/07/28
OracleRMAN备份恢复归档日志数据库运维

简化版

Oracle 备份恢复常用 RMAN。完整备份保存数据文件等基础数据,归档日志记录备份之后的变化,两者结合可以把数据库恢复到故障前或指定时间点。数据库开启归档模式后,联机重做日志切换产生归档日志,才能支持更完整的介质恢复和时间点恢复。

详细版

常见概念:

  • RMAN:Oracle 官方备份恢复工具;
  • 全库备份:备份数据文件、控制文件等;
  • 增量备份:只备份变化块;
  • redo log:记录数据库修改;
  • archived redo log:归档后的重做日志;
  • restore:把备份文件还原回来;
  • recover:应用 redo 或归档日志追平变化;
  • point-in-time recovery:恢复到指定时间点。

备份不是有文件就结束,还要定期演练恢复。没有恢复验证的备份,线上价值很有限。

完整版教学

一、备份和恢复不是一回事

备份是把数据保存下来,恢复是故障后把系统拉回可用状态。很多事故不是没有备份,而是备份不可用、日志缺失、恢复流程没人演练。

Oracle 面试里问 RMAN 和归档日志,重点看你是否理解“备份 + 日志 = 可恢复到某个点”。

二、RMAN 是常用备份恢复工具

RMAN 可以备份数据库文件、归档日志、控制文件等,也能做增量备份、校验、恢复。

典型思路:

全量备份 + 增量备份 + 归档日志

全量备份提供基础数据,增量备份减少备份量,归档日志记录备份后发生的变化。

三、归档日志为什么重要

Oracle 在线 redo log 会循环使用。如果数据库处于非归档模式,日志覆盖后,旧的重做信息就没有了。

开启归档模式后,redo log 切换时会生成 archived redo log。这样即使数据文件损坏,也可以:

  1. restore 之前的备份;
  2. recover 应用归档日志和必要 redo;
  3. 把数据库恢复到较新的时间点。

没有归档日志,很多场景只能恢复到上一次备份时刻,数据损失会更大。

四、restore 和 recover 的区别

restore 是把备份文件还原回来,比如还原数据文件。

recover 是应用 redo 信息,把还原出来的旧数据推进到目标时间点。

可以类比:

  • restore:把旧照片拿出来;
  • recover:根据之后的操作记录,把照片更新到故障前状态。

面试时把这两个词区分清楚,会显得很专业。

五、时间点恢复要有完整链路

如果误删表或误更新大量数据,可能需要恢复到某个时间点。时间点恢复依赖:

  • 可用备份;
  • 完整归档日志;
  • 控制文件或恢复目录信息;
  • 明确的目标时间或 SCN;
  • 可接受的恢复策略。

实际生产中,很多团队会用备库、闪回、导出备份、审计表等多种手段一起降低恢复风险。

六、备份策略要服务 RPO 和 RTO

备份方案不能只问“每天备一次够不够”,要看两个目标:

  • RPO:最多能丢多少数据;
  • RTO:多久必须恢复服务。

如果业务只能丢 5 分钟数据,就必须保证日志归档、备份频率和异地复制能支撑这个目标。如果业务要求 30 分钟恢复,恢复流程就要演练到足够熟练。

七、常见误区与追问

概念做什么面试高频边界
RMAN backup备份数据文件、控制文件、归档日志等备份要可校验、可恢复
archived redo log保存 redo 历史支撑介质恢复和时间点恢复
restore/recover还原文件/应用日志两个动作不能混为一谈

记忆钩子:备份文件只是“底座”,归档日志才是“时间线”。没有时间线,很多故障只能回到上一次备份点。

用 RPO/RTO 举例:每天 0 点做一次全量备份,如果不开归档日志,下午 3 点磁盘坏了,最多只能回到 0 点,可能丢 15 小时数据;如果有完整归档日志,就可以 restore 0 点备份,再 recover 到故障前或指定 SCN,数据损失取决于日志是否完整和恢复目标。

  • 误区:有 RMAN 备份文件就一定能恢复。 控制文件、归档日志、备份集完整性、恢复步骤和演练都影响最终恢复成功率。
  • 误区:restore 和 recover 是同一件事。 restore 是还原备份文件,recover 是应用 redo/归档日志把数据推进到目标点。
  • 误区:归档模式只是多占磁盘。 归档日志是介质恢复、时间点恢复、备库同步和审计恢复链路的重要基础。
  • 追问:为什么要做恢复演练? 备份可读不等于恢复可用,演练能验证备份链、日志完整性、权限、时间和操作流程。
  • 追问:什么是时间点恢复? 将数据库恢复到某个时间或 SCN,常用于误删、误更新后回到事故前状态。
  • 追问:RPO 和 RTO 如何影响备份策略? RPO 决定能丢多少数据,影响归档和备份频率;RTO 决定多久恢复,影响备份形态、备库和演练要求。

八、加强记忆

Oracle 恢复记住“备份是底座,归档日志是时间线,RMAN 是工具”。restore 把备份拿回来,recover 用日志把数据推到目标点。真正可靠的备份体系一定要围绕 RPO、RTO,并定期做恢复演练。