今天在 RMAN 还原测试过程中, 遇到了 "RMAN-06172: no autobackup found or specified handle is not a valid copy or piece" 这个错误, 如下所示:
- RMAN> restore spfile to pfile "/u01/app/Oracle/product/10.2.0/db_1/dbs/initSCM2.ora"
- from "/u04/backup/backupsets/ora_cfc-4095319980-20180327-00";
- Starting restore at 28-MAR-18
- using channel ORA_DISK_1
- RMAN-00571: ===========================================================
- RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
- RMAN-00571: ===========================================================
- RMAN-03002: failure of restore command at 03/28/2018 14:20:12
- RMAN-06172: no autobackup found or specified handle is not a valid copy or piece
当然, 此处是还原参数文件, 其实还原控制文件或其它数据文件都会遇到这个错误, 关于这个错误, 官方解释为:
- Versions 11.1, 11.2, 12.1
- Error: RMAN-06172 no AUTOBACKUP found or specified handle is not a valid copy or piece
- ---------------------------------------------------------------------------
- Cause: A restore could not proceed because no AUTOBACKUP was found or
- specified handle is not a valid copy or backup piece. In case of
- restore from AUTOBACKUP, it may be the case that a backup exists, but
- it does not satisfy the criteria specified in the user's restore
- operands. In case of restore from handle, it may be the handle is not a
- backup piece or control file copy. In may be that it does not exist.
- Action: Modify AUTOBACKUP search criteria or verify the handle.
- Versions 9.2, 10.1, 10.2
- Error: RMAN-06172 no autobackup found or specified handle is not a valid copy or piece
- ---------------------------------------------------------------------------
- Cause: A restore could not proceed because no autobackup was found or
- specified handle is not a valid copy or backup piece. In case of
- restore from autobackup, it may be the case that a backup exists, but
- it does not satisfy the criteria specified in the user's restore
- operands. In case of restore from handle, it may be the handle is not a
- backup piece or controflile copy. In may be that it does not exist.
- Action: Modify autobackup search criteria or verify the handle.
导致 RMAN-06172 错误的原因如上, 但是引起这个错误的场景非常多, 个人总结了一下, 大概可以从下面几个方面去判别, 分析:
1: 备份集过期或备份文件不存在
- RMAN> list backup of controlfile;
- RMAN> list backup of spfile;
如果备份集文件不存在, 那么肯定会报这个错误, 另外 backuppiece 过期了, 那么上面命令就会显示 spfile 或 controlfile 过期(expired), 此时需要运行类似下面命令来解决问题.
RMAN> crosscheck backup of controlfile;
备份集有两种状态 A(Available,RMAN 认为该项存在于备份介质上);X(Expired, 备份存在于控制文件或恢复目录中, 但是并没有物理存在于备份介质上)
crosscheck backup 命令的目的是检查 RMAN 的目录以及物理文件, 如果物理文件不存在于介质上, 将标记为 Expired. 如果物理文件存在, 将维持 Available.
如果原先标记为 Expired 的备份集再次存在于备份介质上(如恢复了损坏的磁盘驱动器后),crosscheck backup 将把状态重新从 Expired 标记回 Available.
还有一种情况是从自动备份还原出现 RMAN-06172 错误. 这个是因为备份集不存在了, 也可以通过 list backup of xxx 查看确认.
RMAN> restore spfile from autobackup;
2:RMAN 通道 (CHANNEL) 配置不正确
参考官方文档: Restore of controlfile autobackup using LiteSpeed (tape) fails with RMAN-06172 (文档 ID 2021758.1)
原因分析:
- LiteSpeed requires a tape channel to be allocated. A disk channel will not work even though when using LiteSpeed you can see the controlfile backup on disk. If a 'list backup of controlfile" shows the backup as on tape, a tape channel must be allocated.
- LiteSpeed
需要分配一个磁带通道. 即使使用 LiteSpeed, 磁盘通道也不起作用, 您可以在磁盘上看到控制文件备份. 如果 "控制文件的列表备份" 将备份显示为磁带上, 则必须分配磁带通道.
解决方案:
- Use a run block with a tape channel allocation:
- run {
- allocate channel dev device type 'sbt_tape';
- restore controlfile from '<full path/file name to controlfile backup>';
- release channel dev;
- }
3:Media Manager 安装错误
参考官方文档 Cannot restore controlfile from RMAN backup (文档 ID 1054412.1)
解决方案:
- After reinstalling the Lite Speed Media Manager the controlfile was able to restore successfully.
- Support for third party Media Management software that interacts with RMAN is provided by the 3rd party software vendo
4: 文件权限问题
个人遇到的这个案例中, 在 root 账号下使用 SFTP 拷贝了备份文件, 文件的属主为 root 用户, 而 RMAN 命令运行在 oracle 用户下, 所以在还原时, 由于权限问题, RMAN 认为文件不存在, 从而报 RMAN-06172 错误.
这种情况的判别, 验证步骤如下:
1: 找到对应的备份文件
list backup of xxx
2: 使用 ls -lrt 检查文件权限属性.
3: 修改备份文件的属主
chown oracle:oinstall *
来源: http://www.linuxidc.com/Linux/2018-03/151629.htm