Translate

Affichage des articles dont le libellé est duplicate. Afficher tous les articles
Affichage des articles dont le libellé est duplicate. Afficher tous les articles

mardi 16 mai 2017

RMAN Duplicate et Netbackup - ORA-19511 - ORA-19507



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;

}

Avec cette configuration le restore des fchiers se fait sans problème.




vendredi 24 avril 2015

ORA-17628: Oracle error 19505



Si jamais vous avez ce message d'erreur lors d'un duplicate de base de données avec RMAN 

Ci-dessous j'ai reproduit le problème avec une petite base de données d'essai.


$ rman target sys@test_p auxiliary sys@test_s


Recovery Manager: Release 11.2.0.1.0 - Production on Thu Apr 23 21:36:37 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

target database Password:
connected to target database: TEST (DBID=2174328171)
auxiliary database Password:

connected to auxiliary database: TEST (not mounted)

RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE ;
...
...
...
Starting backup at 23-APR-2015 20:14:38
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
copying standby control file
RMAN-00571: =======================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===========
RMAN-00571: =======================================================
RMAN-03002: failure of Duplicate Db command at 04/23/2015 20:14:46
RMAN-03015: error occurred in stored script Memory Script
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 04/23/2015 20:14:46
ORA-17628: Oracle error 19505 returned by remote Oracle server



C'est presque sûr que le problème soit relié à un répertoire manquant.

Dans mon cas, j'ai regardé le spfile utilisé pour la base de données auxiliaire -celle à créer- et j'ai pu constater qu'un des répertoires des controlfile n'existait pas. 


$cat initTEST.ora

*.audit_file_dest='/DISK2/oracle/admin/TEST/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/DISK2/oracle/oradata/TEST/control01.ctl','/DISK2/oracle/flash_recovery_area/TEST/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_flashback_retention_target=1440
*.db_name='TEST'
*.db_recovery_file_dest='/DISK2/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=3145728000
*.db_unique_name='TEST_S'
*.diagnostic_dest='/DISK2/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=TESTXDB)'
*.log_archive_dest_1='LOCATION=/DISK2/oracle/archives/dest1'
*.log_archive_format='%t_%s_%r.arc'
*.memory_target=606076928
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'


Une fois ajouté le répertoire vous pouvez relancer le DUPLICATE et tout devrait bien fonctionner.