Des fois RMAN a besoin de certains variables pour mieux intéragir avec Netbackup et pouvoir réussir à trouver des fichiers d'une sauvegarde
Une tentative de duplicate de base de données avec une configuration des channels de cette manière déclenchait des erreurs auprès de Netbackup
run
{
allocate
auxiliary channel c1 device type SBT_TAPE ;
send
'NB_ORA_POLICY=XXXXX;NB_ORA_CLIENT=YYYY';
...
duplicate
target database to .... ;
...
release channel c1;
}
Voici l'erreur affichée :
Starting restore at 12-MAY-17
channel c1: starting datafile backup set restore
channel c1: restoring control file
channel c1: reading from backup piece /SOURCE/Ctl_SOURCE_sls3fnov
channel c1: ORA-19870: error while restoring backup piece /SOURCE/Ctl_SOURCE_sls3fnov
ORA-19507: failed to retrieve sequential file, handle="/SOURCE/Ctl_SOURCE_sls3fnov", parms=""
ORA-27029: skgfrtrv: sbtrestore returned error
ORA-19511: Error received from media manager layer, error text:
Backup file </SOURCE/Ctl_SOURCE_sls3fnov> not found in NetBackup catalog
Une fois confirmé que la configuration sur place de Netbackup était la bonne on a commencé à regarder si c'était possible d'assurer que les variables étaient vraiment prises en compte par Rman et envoyées à Netbackup on a décidé de changer l'allocate pour forcer les variables d'environnement de cette façon :
run
{
allocate auxiliary channel ch01 device type 'SBT_TAPE' parms="ENV=(NB_ORA_POLICY=XXXXX,NB_ORA_CLIENT=YYYY)";
...
duplicate target database to .... ;
...
release channel c1;
}