Restoring Oracle database using the Duplicate command
Hello,
I have a backup image of an Oracle database that I would like to restore to an alternative client, the restore is unsuccessful with the error:
ORA-19507: failed to retrieve sequential file, handle="c-1454518342-20110713-01", parms=""
ORA-27029: skgfrtrv: sbtrestore returned error
ORA-19511: Error received from media manager layer, error text:
Backup file <c-1454518342-20110713-01> not found in NetBackup catalog
The source database
The source database was backed up from a 2 node cluster through the virtual host name, not the physical name. The RMAN command string is this:
CMD_STR="
ORACLE_HOME=$ORACLE_HOME
export ORACLE_HOME
ORACLE_SID=$ORACLE_SID
export ORACLE_SID
$RMAN target $TARGET_CONNECT_STR rcvcat $RMANCAT_CONNECT msglog $RMAN_LOG_FILE append << EOF
RUN {
configure retention policy to recovery window of 180 days;
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';
ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE';
SEND 'NB_ORA_CLIENT=Lonclupsdb01vip';
SEND 'NB_ORA_POLICY=Oracle_finlnprd_full';
BACKUP
$BACKUP_TYPE
SKIP INACCESSIBLE
TAG hot_db_bk_level0
FILESPERSET 5
# recommended format
FORMAT 'bk_%s_%p_%t'
DATABASE;
sql 'alter system archive log current';
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
# backup all archive logs
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';
ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE';
SEND 'NB_ORA_CLIENT=Lonclupsdb01vip';
SEND 'NB_ORA_POLICY=Oracle_finlnprd_full';
BACKUP
filesperset 20
FORMAT 'al_%s_%p_%t'
ARCHIVELOG ALL DELETE INPUT;
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
}
EOF
The physical node name is lonclupsdb01, but the VIP name is Lonclupsdb01vip. In bp.conf on the physical host, we have set the CLIENT_NAME = Lonclupsdb01 which is the physical node name and not the cluster name. We have used the SEND command to send the vip name to NetBackup and in the backup policy in NetBackup, the Client Name has been set to the VIP – Lonclupsdb01vip.
The backups work perfectly and finish in status code 0.
The destination
We want to restore the backups of the source to a different server into a different database.
On the NetBackup Master Server, we have created the touch file /usr/openv/netbackup/db/altnames/No.Restrictions
On the destination client, we have set in bp.conf CLIENT_NAME = Lonpclupsdbdev01 which is the physical host name on the node where we are running the RMAN restore
The RMAN command string we are using is this one:
run
{
set until time '11/08/2011 08:00:00';
ALLOCATE AUXILIARY CHANNEL FINLNQA device type sbt_tape;
SEND "NB_ORA_CLIENT=Lonclupsdb01vip";
duplicate target database to FINLNQA;
}
When we run this command, we see the following output:
channel FINLNQA: starting datafile backup set restore
channel FINLNQA: restoring control file
channel FINLNQA: reading from backup piece c-1454518342-20110713-02
channel FINLNQA: ORA-19870: error while restoring backup piece c-1454518342-20110713-02
ORA-19507: failed to retrieve sequential file, handle="c-1454518342-20110713-02", parms=""
ORA-27029: skgfrtrv: sbtrestore returned error
ORA-19511: Error received from media manager layer, error text:
Backup file <c-1454518342-20110713-02> not found in NetBackup catalog
I don't quite understand why I am seeing this error as we have used the SEND command to send the correct client name. There is a similar issue described in technote TECH43525.
Many thanks.
Richard.
I can confirm that this problem is due to Oracle bug ID 11783792
The workaround is either to use that in the bug ID, or to create a bp.conf file in /home/oracle and put in that bp.conf file
CLIENT_NAME = Lonclupsdb01vip