# Erreur RMAN-03014 après upgrade d'une base RMAN

##### PROBLEME :

La base RMAN a été upgradée de 11.2.0.2 en 11.2.0.4. La base elle-même a subit un "startup upgrade"+upgrade, et redémarrage, mais lors des sauvegardes on a l'erreur :

<p class="callout warning">The database reported error while performing requested operation.  
SBT\_LIBRARY=/opt/omni/lib/libob2oracle8\_64bit.so  
CHILDERROR:1  
Process exit code: 1, Signal: 0  
RMAN PID=21788  
APPERROR:  
RMAN-00571: ===========================================================  
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============  
RMAN-00571: ===========================================================  
RMAN-03002: failure of allocate command at 03/13/2019 19:52:30  
RMAN-03014: implicit resync of recovery catalog failed  
RMAN-03009: failure of full resync command on default channel at 03/13/2019 19:52:30  
RMAN-10015: error compiling PL/SQL program  
RMAN-10014: PL/SQL error 0 on line 3244 column 3: Statement ignored  
RMAN-10014: PL/SQL error 302 on line 3244 column 22: component 'GETPOLLEDREC' must be declared  
RMAN-10014: PL/SQL error 0 on line 2280 column 6: Statement ignored  
RMAN-10014: PL/SQL error 306 on line 2280 column 13: wrong number or types of arguments in call to 'BEGINRMANOUTPUTRESYNC'  
RMAN-10014: PL/SQL error 0 on line 1757 column 12: Statement ignored  
RMAN-10014: PL/SQL error 306 on line 1757 column 12: wrong number or types of arguments in call to 'CHECKTABLESPACE'  
RMAN-10014: PL/SQL error 0 on line 1189 column 9: Statement ignored  
RMAN-10014: PL/SQL error 302 on line 1189 column 25: component 'ISROUTDUPLICATERECORD' must be declared  
Recovery Manager complete.</p>

##### SOLUTION :

il faut AUSSI (condition mal documentée) mettre à jour le CATALOG RMAN.

Procédure :  
Connexion à une base quelconque , en ouvrant le catalogue

```SQL
$ . oraenv
ORCL
$ rman target / catalog RMAN/RMANPASSWD@RMAN
RMAN> upgrade catalog;

recovery catalog owner is RMAN
enter UPGRADE CATALOG command again to confirm catalog upgrade

RMAN> upgrade catalog;

recovery catalog upgraded to version 11.02.00.04
DBMS_RCVMAN package upgraded to version 11.02.00.04
DBMS_RCVCAT package upgraded to version 11.02.00.04
```

Ressortir de RMAN et revenir afin qu'il reconnecte le catalog par rapport à la base, sinon on aura l'erreur :

<p class="callout warning">RMAN-06004: ORACLE error from recovery catalog database: RMAN-20021:  
database not set  
RMAN-06031: could not translate database keyword)</p>

Lancer ensuite une commande quelconque, list backup par exemple, ce qui force la resynchronisation :

```SQL
RMAN> list backup summary;
starting full resync of recovery catalog
full resync complete

```

La resynchronisation remonte dans le catalogue RMAN les backups présents dans les control files, s'il y en a. Après le resync, tous les backups sont donc accessibles à partir du catalogue.