RMAN备份到ASM必须使用带数据库名和子目录的完整ASM别名路径(如'+RECO/ORCL/BACKUPSET/%d_BACKUP_%U'),不可仅写'+RECO';需提前用ASMCMD创建目录,且CONTROLFILE AUTOBACKUP必须显式配置为ASM路径(如'+RECO/ORCL/CONTROLFILE/%F'),否则默认写入$ORACLE_HOME/dbs导致恢复失败。
RMAN备份到ASM必须用带别名的完整路径,不能只写磁盘组名
rman不认+reco这种纯磁盘组名作为备份目标——它需要的是带数据库名、日期、子目录结构的asm别名路径。直接配置configure channel device type disk format '+reco';会触发ora-19570: file number 1 is not valid for this operation或静默失败。
实操建议:
- 先用
asmcmd -p进入ASM命令行,确认目标磁盘组可写:lsdg看USABLE_FILE_MB是否足够,cd +RECO后mkdir ORCL/BACKUPSET(路径必须已存在) - 检查当前RMAN配置:
SHOW ALL,若DEVICE TYPE DISK FORMAT仍残留/u01/backup等本地路径,必须覆盖掉 - 正确格式示例:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '+RECO/ORCL/BACKUPSET/%d_BACKUP_%U';,其中%d展开为DB name,%U生成唯一文件名,ASM自动映射到AU并生成物理别名
CONTROLFILE AUTOBACKUP必须显式指定ASM路径,否则默认写到$ORACLE_HOME/dbs
即使主备份路径设对了,CONTROLFILE AUTOBACKUP仍默认落盘到$ORACLE_HOME/dbs/c-*,恢复时若只查ASM就找不到最新控制文件,导致RESTORE CONTROLFILE失败。
实操建议:
- 运行
SHOW CONTROLFILE AUTOBACKUP FORMAT;验证当前设置,若返回类似/u01/app/oracle/product/12c/dbhome_1/dbs/c-1234567890-20260625-00,说明没生效 - 强制重设:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '+RECO/ORCL/CONTROLFILE/%F';,%F是Oracle官方推荐格式,生成标准c-DBID-YYYYMMDD-HH命名 - 注意:该命令只影响后续备份;已有auto backup需手动
COPY进ASM,并用CATALOG START WITH '+RECO/ORCL/CONTROLFILE/'注册进RMAN目录
RMAN连接必须走SYSDBA且数据库处于MOUNT或OPEN状态
用普通用户、或rman target /但OS认证未配好,会导致RMAN无法读取ASM元数据,LIST BACKUP为空或报ORA-15000: command disallowed by current instance type。
实操建议:
- 先验证ASM连通性:
sqlplus / as sysdba后查SELECT NAME, STATE FROM V$ASM_DISKGROUP;,若报错,检查ORACLE_SID是否误设为+ASM(应为数据库实例名,如ORCL) - RMAN必须连接数据库实例(非ASM实例),且状态至少为
MOUNT;NOMOUNT下无法执行BACKUPSET级操作 - 连接命令必须明确:
rman target /仅当OS认证有效;更稳妥写法是rman target sys/<password>@ORCL as sysdba</password>
备份前必须手动创建ASM子目录,RMAN不会自动建路径
ASM不支持+RECO/ORCL/BACKUPSET/这种路径自动递归创建——若ORCL或BACKUPSET目录不存在,RMAN直接报ORA-17502: ksfdcre:4 Failed to create file。
实操建议:
- 用
asmcmd -p逐级创建:cd +RECO→mkdir ORCL→cd ORCL→mkdir BACKUPSET CONTROLFILE ARCHIVELOG - 目录名区分大小写,
+RECO/orcl/backupset和+RECO/ORCL/BACKUPSET是不同路径,RMAN按配置字符串严格匹配 - 备份脚本里不要依赖
mkdir命令——ASMCMD的mkdir是同步阻塞操作,但RMAN不感知,必须提前完成
CONTROLFILE AUTOBACKUP FORMAT和子目录预创建,这两项不手动验,恢复时第一秒就会卡住。











