一、连接、启动关闭、基础环境(1~15)
rman target /本地操作系统认证连接目标库rman target sys/xxx@orcl远程连接目标库rman target / catalog rman/xxx@rcat连接目标 + 恢复目录RMAN> CONNECT TARGET sys/xxx@orclRMAN 内连接目标库RMAN> CONNECT CATALOG rman/xxx@rcat连接恢复目录RMAN> CONNECT AUXILIARY /连接辅助实例(duplicate 异机克隆)RMAN> STARTUP MOUNT启动数据库到 mount 状态RMAN> STARTUP NOMOUNT仅启动实例(恢复控制文件用)RMAN> SHUTDOWN IMMEDIATE立即关闭数据库RMAN> SHUTDOWN ABORT强制关闭(故障场景慎用)RMAN> ALTER DATABASE OPEN;打开数据库RMAN> ALTER DATABASE OPEN RESETLOGS;不完全恢复后打开库RMAN> SQL 'ALTER DATABASE MOUNT';RMAN 内执行 SQLRMAN> SET ECHO ON;开启命令回显,方便日志记录RMAN> SET DBID 123456789;指定 DBID(无 catalog 恢复控制文件必备)
二、RMAN 持久化配置 CONFIGURE(16~30)
RMAN> SHOW ALL;查看全部 RMAN 当前配置RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2;磁盘通道并行度RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;开启控制文件自动备份(生产必开)RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/ctl_%F.bkp';控制文件备份路径RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;保留策略:可恢复窗口 7 天RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2;保留 2 份冗余备份RMAN> CONFIGURE RETENTION POLICY CLEAR;清除保留策略,恢复默认RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/rman_%U.bkp';默认备份片命名RMAN> CONFIGURE DEVICE TYPE DISK COMPRESSION ALGORITHM BASIC;开启备份压缩RMAN> CONFIGURE BACKUP OPTIMIZATION ON;开启备份优化,跳过已备份归档RMAN> CONFIGURE EXCLUDE TABLESPACE TEMP;备份时永久排除临时表空间RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/backup/snap_ctl.f';快照控制文件位置RMAN> CONFIGURE DEVICE TYPE SBT_TAPE PARALLELISM 1;磁带通道配置RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 2 TIMES TO DISK;归档删除策略:备份 2 次后可删RMAN> CONFIGURE CLEAR CHANNEL 1 DEVICE TYPE DISK;清除通道配置恢复默认
三、备份命令 BACKUP(31~50)
RMAN> BACKUP DATABASE;全库备份(含所有数据文件,不含归档)RMAN> BACKUP DATABASE PLUS ARCHIVELOG;全库 + 归档联机备份(生产日常全备首选)RMAN> BACKUP INCREMENTAL LEVEL=0 DATABASE;0 级增量备份(增量基线,等价全备)RMAN> BACKUP INCREMENTAL LEVEL=1 DATABASE;1 级差异增量备份(上次同级 / 低级后变化块)RMAN> BACKUP INCREMENTAL LEVEL=1 CUMULATIVE DATABASE;1 级累计增量(上次 0 级后所有变化块)RMAN> BACKUP TAG='FULL_WEEK' DATABASE PLUS ARCHIVELOG;带 TAG 标记备份集RMAN> BACKUP TABLESPACE USERS,UNDOTBS1;备份指定表空间RMAN> BACKUP DATAFILE 1,3,5;备份指定 datafile 文件号RMAN> BACKUP CURRENT CONTROLFILE;单独备份当前控制文件RMAN> BACKUP SPFILE;单独备份 spfile 参数文件RMAN> BACKUP ARCHIVELOG ALL;备份所有归档重做日志RMAN> BACKUP ARCHIVELOG FROM SEQUENCE 100 UNTIL SEQUENCE 150;备份指定序列号归档RMAN> BACKUP BACKUPSET 120,121;备份已有备份集(备份集二次拷贝)RMAN> BACKUP AS COPY DATABASE;镜像拷贝备份(image copy,非备份集)RMAN> BACKUP VALIDATE DATABASE ARCHIVELOG ALL;仅验证可备份性,不产生备份文件RMAN> BACKUP KEEP UNTIL TIME "TO_DATE('2026-12-31','yyyy-mm-dd')" DATABASE;长期保留备份,不受保留策略清理RMAN> BACKUP PLUS ARCHIVELOG DELETE ALL INPUT;备份归档成功后删除原归档RMAN> BACKUP SECTION SIZE 500M DATABASE;分块并行大文件备份(12c+)RMAN> BACKUP PLUGGABLE DATABASE PDB1;12c + 备份单个 PDBRMAN> BACKUP NOEXCLUDE DATABASE;覆盖 configure exclude,强制备份所有表空间
四、查询、列表、交叉校验 LIST / CROSSCHECK(51~65)
RMAN> LIST BACKUP;列出所有备份集详情RMAN> LIST BACKUP SUMMARY;备份集汇总简表RMAN> LIST BACKUP TAG='FULL_WEEK';根据 TAG 查询备份RMAN> LIST BACKUPSET 123;查询指定备份集号RMAN> LIST CONTROLFILE BACKUP;查看控制文件备份RMAN> LIST SPFILE BACKUP;查看 SPFILE 备份RMAN> LIST ARCHIVELOG BACKUP;归档日志备份清单RMAN> LIST COPY;列出 image copy 镜像拷贝RMAN> LIST EXPIRED BACKUP;列出 EXPIRED 失效备份RMAN> LIST OBSOLETE BACKUP;列出按保留策略过期可删除备份RMAN> CROSSCHECK BACKUP;交叉校验磁盘 / 磁带备份集,更新元数据状态RMAN> CROSSCHECK ARCHIVELOG ALL;校验归档日志文件RMAN> CROSSCHECK COPY;校验镜像拷贝RMAN> REPORT SCHEMA;查看当前库数据文件、表空间结构RMAN> REPORT UNRECOVERABLE;检查是否存在不可恢复对象(无备份)
五、恢复还原 RESTORE / RECOVER(66~82)
RESTORE:从备份把文件放回磁盘;RECOVER:应用 redo / 增量,推进 SCN
RMAN> RESTORE DATABASE;还原全库所有数据文件RMAN> RECOVER DATABASE;完全恢复,应用归档 / 在线 redoRMAN> RESTORE TABLESPACE USERS;还原指定表空间RMAN> RECOVER TABLESPACE USERS;恢复指定表空间RMAN> RESTORE DATAFILE 7;还原单个数据文件RMAN> RECOVER DATAFILE 7;恢复单个数据文件RMAN> RESTORE CONTROLFILE FROM '/backup/ctl_xxx.bkp';从备份还原控制文件(nomount 下执行)RMAN> RESTORE SPFILE FROM BACKUPSET 10;还原 spfileRMAN> RESTORE ARCHIVELOG ALL;还原所有归档日志RMAN> RESTORE ARCHIVELOG FROM SEQUENCE 100 UNTIL 120;还原指定序列归档RMAN> RESTORE DATABASE VALIDATE;预校验还原,不落地文件,验证备份可用性RMAN> RESTORE DATABASE PREVIEW;预览恢复需要哪些备份片RMAN> RECOVER DATABASE UNTIL TIME "TO_DATE('2026-10-01 10:00:00','yyyy-mm-dd hh24:mi:ss')";时间点不完全恢复RMAN> RECOVER DATABASE UNTIL SCN 12589632;SCN 点不完全恢复(推荐优先用 SCN)RMAN> RECOVER DATABASE UNTIL SEQUENCE 110 THREAD 1;按 redo 序列号恢复RMAN> SWITCH DATAFILE ALL;切换数据文件指向 image copy(镜像拷贝恢复场景)RMAN> SET NEWNAME FOR DATAFILE 1 TO '/oradata/orcl/system01.dbf';异机恢复修改数据文件路径
六、备份维护、删除清理 DELETE(83~92)
RMAN> DELETE OBSOLETE;删除按保留策略过期备份RMAN> DELETE EXPIRED BACKUP;删除状态为 EXPIRED 的备份元数据(文件物理丢失)RMAN> DELETE BACKUPSET 123;删除指定备份集RMAN> DELETE TAG='FULL_WEEK' BACKUP;删除指定 TAG 的备份RMAN> DELETE ARCHIVELOG ALL BACKED UP 2 TIMES TO DISK;删除已备份 2 次的归档RMAN> DELETE NOPROMPT BACKUP;无交互直接删除(脚本自动化用,谨慎)RMAN> DELETE COPY;删除所有 image copy 镜像拷贝RMAN> CHANGE BACKUPSET 100 UNAVAILABLE;修改备份集状态不可用(临时屏蔽坏备份)RMAN> CHANGE BACKUPSET 100 AVAILABLE;恢复备份集可用状态RMAN> CHANGE ARCHIVELOG ALL CROSSCHECK;批量更新归档状态
七、验证、克隆、catalog 维护、run 块常用(93~100)
RMAN> VALIDATE DATABASE;验证全库数据文件块(物理坏块)RMAN> VALIDATE CHECK LOGICAL DATABASE;物理 + 逻辑坏块校验RMAN> VALIDATE BACKUPSET 123;校验备份集是否损坏RMAN> VALIDATE DATAFILE 5 BLOCK 1000 TO 1050;校验指定数据块范围RMAN> DUPLICATE DATABASE TO CLONE FROM ACTIVE DATABASE;活动数据库克隆(在线 duplicate,11g+)RMAN> DUPLICATE DATABASE TO CLONE BACKUP LOCATION '/backup';基于备份集异机克隆数据库RMAN> REGISTER DATABASE;恢复 catalog 注册目标库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;
}
重要注意事项
- 不完全恢复(UNTIL TIME/SCN)完成后,必须
ALTER DATABASE OPEN RESETLOGS,重置 redo 日志,旧备份失效; - 生产库务必开启
CONTROLFILE AUTOBACKUP ON; DELETE命令高危,执行前先LIST OBSOLETE / LIST EXPIRED确认;- 异机恢复、duplicate 克隆需要注意 DBID、路径转换、密码文件、监听;
- 12c CDB 库备份恢复 root + 所有 PDB,单独 PDB 恢复语法略有差异。