Oracle RMAN 100 条备份恢复常用命令(11g/12c/19c 通用,分 7 大类)

一、连接、启动关闭、基础环境(1~15)

  1. rman target / 本地操作系统认证连接目标库
  2. rman target sys/xxx@orcl 远程连接目标库
  3. rman target / catalog rman/xxx@rcat 连接目标 + 恢复目录
  4. RMAN> CONNECT TARGET sys/xxx@orcl RMAN 内连接目标库
  5. RMAN> CONNECT CATALOG rman/xxx@rcat 连接恢复目录
  6. RMAN> CONNECT AUXILIARY / 连接辅助实例(duplicate 异机克隆)
  7. RMAN> STARTUP MOUNT 启动数据库到 mount 状态
  8. RMAN> STARTUP NOMOUNT 仅启动实例(恢复控制文件用)
  9. RMAN> SHUTDOWN IMMEDIATE 立即关闭数据库
  10. RMAN> SHUTDOWN ABORT 强制关闭(故障场景慎用)
  11. RMAN> ALTER DATABASE OPEN; 打开数据库
  12. RMAN> ALTER DATABASE OPEN RESETLOGS; 不完全恢复后打开库
  13. RMAN> SQL 'ALTER DATABASE MOUNT'; RMAN 内执行 SQL
  14. RMAN> SET ECHO ON; 开启命令回显,方便日志记录
  15. RMAN> SET DBID 123456789; 指定 DBID(无 catalog 恢复控制文件必备)

二、RMAN 持久化配置 CONFIGURE(16~30)

  1. RMAN> SHOW ALL; 查看全部 RMAN 当前配置
  2. RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2; 磁盘通道并行度
  3. RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; 开启控制文件自动备份(生产必开)
  4. RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/ctl_%F.bkp'; 控制文件备份路径
  5. RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; 保留策略:可恢复窗口 7 天
  6. RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2; 保留 2 份冗余备份
  7. RMAN> CONFIGURE RETENTION POLICY CLEAR; 清除保留策略,恢复默认
  8. RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/rman_%U.bkp'; 默认备份片命名
  9. RMAN> CONFIGURE DEVICE TYPE DISK COMPRESSION ALGORITHM BASIC; 开启备份压缩
  10. RMAN> CONFIGURE BACKUP OPTIMIZATION ON; 开启备份优化,跳过已备份归档
  11. RMAN> CONFIGURE EXCLUDE TABLESPACE TEMP; 备份时永久排除临时表空间
  12. RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/backup/snap_ctl.f'; 快照控制文件位置
  13. RMAN> CONFIGURE DEVICE TYPE SBT_TAPE PARALLELISM 1; 磁带通道配置
  14. RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 2 TIMES TO DISK; 归档删除策略:备份 2 次后可删
  15. RMAN> CONFIGURE CLEAR CHANNEL 1 DEVICE TYPE DISK; 清除通道配置恢复默认

三、备份命令 BACKUP(31~50)

  1. RMAN> BACKUP DATABASE; 全库备份(含所有数据文件,不含归档)
  2. RMAN> BACKUP DATABASE PLUS ARCHIVELOG; 全库 + 归档联机备份(生产日常全备首选)
  3. RMAN> BACKUP INCREMENTAL LEVEL=0 DATABASE; 0 级增量备份(增量基线,等价全备)
  4. RMAN> BACKUP INCREMENTAL LEVEL=1 DATABASE; 1 级差异增量备份(上次同级 / 低级后变化块)
  5. RMAN> BACKUP INCREMENTAL LEVEL=1 CUMULATIVE DATABASE; 1 级累计增量(上次 0 级后所有变化块)
  6. RMAN> BACKUP TAG='FULL_WEEK' DATABASE PLUS ARCHIVELOG; 带 TAG 标记备份集
  7. RMAN> BACKUP TABLESPACE USERS,UNDOTBS1; 备份指定表空间
  8. RMAN> BACKUP DATAFILE 1,3,5; 备份指定 datafile 文件号
  9. RMAN> BACKUP CURRENT CONTROLFILE; 单独备份当前控制文件
  10. RMAN> BACKUP SPFILE; 单独备份 spfile 参数文件
  11. RMAN> BACKUP ARCHIVELOG ALL; 备份所有归档重做日志
  12. RMAN> BACKUP ARCHIVELOG FROM SEQUENCE 100 UNTIL SEQUENCE 150; 备份指定序列号归档
  13. RMAN> BACKUP BACKUPSET 120,121; 备份已有备份集(备份集二次拷贝)
  14. RMAN> BACKUP AS COPY DATABASE; 镜像拷贝备份(image copy,非备份集)
  15. RMAN> BACKUP VALIDATE DATABASE ARCHIVELOG ALL; 仅验证可备份性,不产生备份文件
  16. RMAN> BACKUP KEEP UNTIL TIME "TO_DATE('2026-12-31','yyyy-mm-dd')" DATABASE; 长期保留备份,不受保留策略清理
  17. RMAN> BACKUP PLUS ARCHIVELOG DELETE ALL INPUT; 备份归档成功后删除原归档
  18. RMAN> BACKUP SECTION SIZE 500M DATABASE; 分块并行大文件备份(12c+)
  19. RMAN> BACKUP PLUGGABLE DATABASE PDB1; 12c + 备份单个 PDB
  20. RMAN> BACKUP NOEXCLUDE DATABASE; 覆盖 configure exclude,强制备份所有表空间

四、查询、列表、交叉校验 LIST / CROSSCHECK(51~65)

  1. RMAN> LIST BACKUP; 列出所有备份集详情
  2. RMAN> LIST BACKUP SUMMARY; 备份集汇总简表
  3. RMAN> LIST BACKUP TAG='FULL_WEEK'; 根据 TAG 查询备份
  4. RMAN> LIST BACKUPSET 123; 查询指定备份集号
  5. RMAN> LIST CONTROLFILE BACKUP; 查看控制文件备份
  6. RMAN> LIST SPFILE BACKUP; 查看 SPFILE 备份
  7. RMAN> LIST ARCHIVELOG BACKUP; 归档日志备份清单
  8. RMAN> LIST COPY; 列出 image copy 镜像拷贝
  9. RMAN> LIST EXPIRED BACKUP; 列出 EXPIRED 失效备份
  10. RMAN> LIST OBSOLETE BACKUP; 列出按保留策略过期可删除备份
  11. RMAN> CROSSCHECK BACKUP; 交叉校验磁盘 / 磁带备份集,更新元数据状态
  12. RMAN> CROSSCHECK ARCHIVELOG ALL; 校验归档日志文件
  13. RMAN> CROSSCHECK COPY; 校验镜像拷贝
  14. RMAN> REPORT SCHEMA; 查看当前库数据文件、表空间结构
  15. RMAN> REPORT UNRECOVERABLE; 检查是否存在不可恢复对象(无备份)

五、恢复还原 RESTORE / RECOVER(66~82)

RESTORE:从备份把文件放回磁盘;RECOVER:应用 redo / 增量,推进 SCN

  1. RMAN> RESTORE DATABASE; 还原全库所有数据文件
  2. RMAN> RECOVER DATABASE; 完全恢复,应用归档 / 在线 redo
  3. RMAN> RESTORE TABLESPACE USERS; 还原指定表空间
  4. RMAN> RECOVER TABLESPACE USERS; 恢复指定表空间
  5. RMAN> RESTORE DATAFILE 7; 还原单个数据文件
  6. RMAN> RECOVER DATAFILE 7; 恢复单个数据文件
  7. RMAN> RESTORE CONTROLFILE FROM '/backup/ctl_xxx.bkp'; 从备份还原控制文件(nomount 下执行)
  8. RMAN> RESTORE SPFILE FROM BACKUPSET 10; 还原 spfile
  9. RMAN> RESTORE ARCHIVELOG ALL; 还原所有归档日志
  10. RMAN> RESTORE ARCHIVELOG FROM SEQUENCE 100 UNTIL 120; 还原指定序列归档
  11. RMAN> RESTORE DATABASE VALIDATE; 预校验还原,不落地文件,验证备份可用性
  12. RMAN> RESTORE DATABASE PREVIEW; 预览恢复需要哪些备份片
  13. RMAN> RECOVER DATABASE UNTIL TIME "TO_DATE('2026-10-01 10:00:00','yyyy-mm-dd hh24:mi:ss')"; 时间点不完全恢复
  14. RMAN> RECOVER DATABASE UNTIL SCN 12589632; SCN 点不完全恢复(推荐优先用 SCN)
  15. RMAN> RECOVER DATABASE UNTIL SEQUENCE 110 THREAD 1; 按 redo 序列号恢复
  16. RMAN> SWITCH DATAFILE ALL; 切换数据文件指向 image copy(镜像拷贝恢复场景)
  17. RMAN> SET NEWNAME FOR DATAFILE 1 TO '/oradata/orcl/system01.dbf'; 异机恢复修改数据文件路径

六、备份维护、删除清理 DELETE(83~92)

  1. RMAN> DELETE OBSOLETE; 删除按保留策略过期备份
  2. RMAN> DELETE EXPIRED BACKUP; 删除状态为 EXPIRED 的备份元数据(文件物理丢失)
  3. RMAN> DELETE BACKUPSET 123; 删除指定备份集
  4. RMAN> DELETE TAG='FULL_WEEK' BACKUP; 删除指定 TAG 的备份
  5. RMAN> DELETE ARCHIVELOG ALL BACKED UP 2 TIMES TO DISK; 删除已备份 2 次的归档
  6. RMAN> DELETE NOPROMPT BACKUP; 无交互直接删除(脚本自动化用,谨慎)
  7. RMAN> DELETE COPY; 删除所有 image copy 镜像拷贝
  8. RMAN> CHANGE BACKUPSET 100 UNAVAILABLE; 修改备份集状态不可用(临时屏蔽坏备份)
  9. RMAN> CHANGE BACKUPSET 100 AVAILABLE; 恢复备份集可用状态
  10. RMAN> CHANGE ARCHIVELOG ALL CROSSCHECK; 批量更新归档状态

七、验证、克隆、catalog 维护、run 块常用(93~100)

  1. RMAN> VALIDATE DATABASE; 验证全库数据文件块(物理坏块)
  2. RMAN> VALIDATE CHECK LOGICAL DATABASE; 物理 + 逻辑坏块校验
  3. RMAN> VALIDATE BACKUPSET 123; 校验备份集是否损坏
  4. RMAN> VALIDATE DATAFILE 5 BLOCK 1000 TO 1050; 校验指定数据块范围
  5. RMAN> DUPLICATE DATABASE TO CLONE FROM ACTIVE DATABASE; 活动数据库克隆(在线 duplicate,11g+)
  6. RMAN> DUPLICATE DATABASE TO CLONE BACKUP LOCATION '/backup'; 基于备份集异机克隆数据库
  7. RMAN> REGISTER DATABASE; 恢复 catalog 注册目标库
  8. RMAN> UPGRADE CATALOG; 升级 RMAN 恢复目录 schema 版本

配套 RUN 块示例

RUN{
ALLOCATE CHANNEL c1 DEVICE TYPE DISK PARALLEL 1;
BACKUP TAG='FULL_DB' DATABASE PLUS ARCHIVELOG DELETE ALL INPUT;
CROSSCHECK BACKUP;
DELETE OBSOLETE;
RELEASE CHANNEL c1;
}

重要注意事项

  1. 不完全恢复(UNTIL TIME/SCN)完成后,必须 ALTER DATABASE OPEN RESETLOGS,重置 redo 日志,旧备份失效;
  2. 生产库务必开启 CONTROLFILE AUTOBACKUP ON;
  3. DELETE 命令高危,执行前先 LIST OBSOLETE / LIST EXPIRED 确认;
  4. 异机恢复、duplicate 克隆需要注意 DBID、路径转换、密码文件、监听;
  5. 12c CDB 库备份恢复 root + 所有 PDB,单独 PDB 恢复语法略有差异。

 

上一篇 AnyBackup - Sangfor Cloud Platform 恢复提示错误信息: IPv4地址和网关不在同一网段
下一篇 Oracle RMAN 全量 + 增量备份 Shell 脚本(crontab 定时版,11g/12c/19c 通用)
易读格

易读格管理员

易读存知,格聚运维。

本月创作热力图

少
多
目录
最新评论
暂无评论