必须先配置sbt通道,否则rman无法识别磁带设备;默认只认磁盘,未配置则list backup看不到磁带备份片,restore会因rman-06023等错误失败。

必须先配置介质管理器(SBT)通道,否则RMAN不认识磁带设备
RMAN默认只认磁盘,连list backup都看不到磁带上的备份片,更别说restore了。没配SBT,所有后续操作都是空谈。
常见错误:RMAN-06023: no backup or copy of datafile found to restore,不是备份不存在,是RMAN压根没扫描磁带。
- 确认已安装并配置第三方介质管理软件(如NetBackup、Oracle Secure Backup),且
libobk.so(Linux)或oraclient11.dll(Windows)在$ORACLE_HOME/lib可加载 - 检查
v$backup_device:运行SELECT * FROM v$backup_device WHERE type = 'SBT_TAPE';,无结果说明SBT未注册成功 - 在RMAN中执行
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 'ENV=(NB_ORA_CLIENT=your_client_name)';(以NetBackup为例),参数值必须与备份时一致,否则crosscheck会失败
恢复归档日志前必须crosscheck archivelog all并delete noprompt expired
磁带库上归档日志的生命周期和磁盘不同——RMAN把restore archivelog当成“move”而非“copy”,一旦从磁带恢复出来,控制文件就认为该归档已存在、路径固定。下次backup archivelog all delete input会因找不到原文件报错,备份链断裂。
- 每次从磁带恢复归档前,先运行
crosscheck archivelog all,让RMAN重新探测磁带设备上实际存在的归档序列 - 立刻跟
delete noprompt expired,清除控制文件里残留的、指向旧磁盘路径或已过期的归档记录 - 若目标路径非默认
log_archive_dest_1,需提前SET ARCHIVELOG DESTINATION TO '/NewRmanbak/restore_archive/',否则恢复后归档仍写入原位置,可能覆盖或权限失败
restore database必须配合set newname和switch datafile all在同一个run块里
异地恢复时路径不一致是常态,但set newname不是全局配置,出run块即失效;漏掉switch则控制文件仍指旧路径,recover database直接报ORA-01152。
- 必须写成:
run { set newname for datafile 1 to '/u01/app/oracle/oradata/orcl/system01.dbf'; set newname for datafile 2 to '/u01/app/oracle/oradata/orcl/sysaux01.dbf'; restore database; switch datafile all; } -
switch datafile all只切换你显式set newname过的文件,未声明的数据文件仍用原路径——别指望它自动推导 - 临时文件要单独处理:
set newname for tempfile 1 to '/u01/app/oracle/oradata/orcl/temp01.dbf';,否则open resetlogs时报ORA-01119
恢复时间点不能靠猜,必须用restore database until time预检
磁带库恢复耗时长,等restore跑完再recover发现时间点不对,重来一次几小时就没了。RMAN不会自动选截止时间,异地恢复几乎必然是不完全恢复。
- 先试运行:
restore database until time "to_date('2026-09-28 14:30:00','yyyy-mm-dd hh24:mi:ss')";,观察是否报RMAN-06026(缺少归档)或RMAN-06100(归档不可用) - 若报缺归档,用
list backup of archivelog from time '...'反查磁带上是否有对应序列,避免盲目指定时间点 - 注意:
until time的精度是秒级,但磁带定位有延迟,建议预留至少5分钟缓冲,比如业务停在14:30:00,恢复时间设为14:29:55
关键点其实就两个:SBT通道配错,后面全白忙;时间点没预检,恢复中途卡死。磁带不是插上就能读的U盘,每一步都要验证RMAN是否“看见”了你要的东西。











