共计 3535 个字符,预计需要花费 9 分钟才能阅读完成。
今天在 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 *
更多 Oracle 相关信息见Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12