最近做某数据库恢复演练,数据库版本是10.2.0.4,恢复控制文件一直报错,报错如下,经过反复折腾,原来恢复机上oracle用户不是oracle导致(我的是oraclev4),查看源库oracle用户gid为dba,最终在恢复机上新建oracle用户(gid=oinstall groups=dba)或oraclev4不变(gid=dba groups=oinstall)均可顺利恢复。以下是nbu官网说明:
https://www.veritas.com/support/zh_CN/article.TECH164901
使用不同用户对Oracle数据库进行异机恢复,失败,错误:Backup file not found in NetBackup catalog:
RMAN> run {
2> allocate channel t1 type 'sbt_tape';
3> SEND 'NB_ORA_CLIENT=oracleserver1';
4> restore controlfile from 'cntrl_1234_1_756800000';
5> release channel t1;
6> }
allocated channel: t1
channel t1: SID=982 device type=SBT_TAPE
channel t1: Veritas NetBackup for Oracle - Release 7.1 (2011020316)
sent command to channel: t1
Starting restore at 18-JUL-11
channel t1: restoring control file
released channel: t1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 07/18/2011 17:21:19
ORA-19870: error while restoring backup piece cntrl_1234_1_756800000
ORA-19507: failed to retrieve sequential file, handle="cntrl_1234_1_756800000", parms=""
ORA-27029: skgfrtrv: sbtrestore returned error
ORA-19511: Error received from media manager layer, error text:
Backup file <cntrl_1234_1_756800000> not found in NetBackup catalog
而在root用户下,使用bplist 命令可以列出备份集信息:
# /usr/openv/netbackup/bin/bplist -C oracleserver1 -t 4 -R /
/cntrl_1234_1_756800000
...
错误信息
RMAN-03002: failure of restore command at 07/18/2011 17:21:19
ORA-19870: error while restoring backup piece cntrl_1234_1_756800000
ORA-19507: failed to retrieve sequential file, handle="cntrl_1234_1_756800000", parms=""
ORA-27029: skgfrtrv: sbtrestore returned error
ORA-19511: Error received from media manager layer, error text:
Backup file <cntrl_1234_1_756800000> not found in NetBackup catalog
原因
目标主机(Client B)上的Oracle用户与不属于源主机(Client A)上备份时Oracle用户所在的数据库组。
Symantec NetBackup ™ for Oracle Administrator's Guide
UNIX and Linux
Release 7.0中第95页“Redirecting a restore to a different client”节有如下描述:
"The user on client A cannot initiate a redirected restore to client B. Only the user
on client B, which is the client receiving the backup image, can initiate the
redirected restore. Any user who belongs to the database group that performed
the backup can restore it, unless the BKUP_IMAGE_PERM variable is set to USER."
解决方案
确保目标机上数据库组(database group)与源主机相同,恢复时所用的用户属于该数据库组。