RMAN不完全恢复必须明确目标后执行,需先MOUNT数据库,再按SET UNTIL TIME/SCN/SEQUENCE指定终点,依次RESTORE、RECOVER,最后OPEN RESETLOGS;顺序错误或状态不符将报ORA-01126等错,RESETLOGS后须立即全备并验证归档生成。
RMAN 不完全恢复不是“能不能做”,而是“必须明确恢复目标再动手”。它不还原到最新状态,而是倒退到某个可控点——时间、SCN 或归档序列号。一旦执行 ALTER DATABASE OPEN RESETLOGS,就不可逆,后续所有归档日志起点重置,旧备份和日志基本失效。不完全恢复不能在 OPEN 状态下进行,否则 RESTORE 和 RECOVER 会直接报错 ORA-01127: database name length exceeds 30 characters(实际是状态冲突的伪装错误)或更常见的 ORA-01126: database must be mounted in this instance。
实操建议:
sqlplus / as sysdba 连接后执行 SHUTDOWN IMMEDIATE,再 STARTUP MOUNT
MOUNT 直接 STARTUP —— 即使数据库能启动,RMAN 也会拒绝执行 SET UNTIL 后的恢复SELECT status FROM v$instance; 输出必须是 MOUNTED
时间、SCN、归档序列号三者本质等价,但实操中容错性和可追溯性差异很大:
SET UNTIL TIME 最直观,适合知道大概时间点(如“上午10:23误删表”),但要注意时区:RMAN 默认用数据库服务器本地时间,不是客户端时间;格式必须严格为 'YYYY-MM-DD HH24:MI:SS',少空格或大小写错就报 ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode(其实是解析失败)SET UNTIL SCN 最精确,适合已知误操作前一刻的 SCN(比如从 v$archived_log 查到某条日志的 FIRST_CHANGE#),但 SCN 无法直接“猜”,必须查表或日志,否则容易设高(跳过误操作)或设低(多删数据)SET UNTIL SEQUENCE 依赖归档连续性,只适用于单实例且归档未缺失的场景;若中间缺一个归档(如 sequence=11 被删),RMAN 可能自动跳过,也可能卡在 waiting for archive log,需提前用 LIST ARCHIVELOG ALL 核对序列完整性RESTORE DATABASE 是把备份文件拷回数据文件位置,RECOVER DATABASE 是用归档日志“重演”变更。顺序错了会报错:
RECOVER 后 RESTORE → ORA-00283: recovery session canceled due to errors + ORA-01110: data file 1: ...(找不到物理文件)RESTORE 不 RECOVER → 数据库能 OPEN,但状态是“非一致性”,查询表会报 ORA-01578: ORACLE data block corrupted
RECOVER DATABASE 必须紧接在 SET UNTIL 之后,且不能加 NOLOGGING 或其他干扰参数——RMAN 会自动按 UNTIL 截断应用日志ALTER DATABASE OPEN RESETLOGS 不是终点,而是新起点的开关。它重置日志序列、清空在线日志内容、让控制文件标记“incarnation change”。这意味着:
RESET DATABASE TO INCARNATION 切回去BACKUP DATABASE PLUS ARCHIVELOG
RESETLOGS 后的备份开始恢复,中间几天的变更彻底丢失真正容易被忽略的,是 RESETLOGS 后没验证归档是否正常生成——用 ARCHIVE LOG LIST 确认 Automatic archival 是 Enabled,再手动 ALTER SYSTEM SWITCH LOGFILE 看新归档是否落地。
小米路由器3G怎么恢复出厂设置(小米路由器3G该如何恢复出厂设置)
小米路由器3g和4a千兆版哪个好(小米路由器3g和4a千兆版对比区别)
Sensor Tower:ChatGPT全球份额跌破50%,Gemini与Claude加速追赶
OpenAI提速狂飙16倍!GPT-5.6多智能体V2上线,741轮怪物对话1秒打开
“十五五”时期 煤矿危险繁重岗位将由机器人替代
waytouniverse/ppt-generator:从 Markdown 大纲生成风格统一的 PPT 图片