RMAN : Protéger et faire évoluer le catalogue

Pour administrer et gérer de nombreuses sauvegardes de bases données oracle, dans des versions et environnements différents, on utilise RMAN. Au travers d’une console Oracle Enterprise Manager 11g ou 12c, il faut référencer et donc cataloguer les sauvegardes.

Pour créer un catalogue RMAN, il suffit d’effectuer les opérations suivantes :

  1. Créer ou choisir une base de données dans laquelle nous souhaitons stocker le catalogue (référentiel) de restauration.
  2. Créer le propriétaire du catalogue de restauration.
  3. Créer les objets du schéma du nouveau catalogue de restauration.
  4. Enregistrer les bases de données à sauvegarder au travers de ce catalogue

Pour la 12c vous avez le lien « Create Catalog »  < http://docs.oracle.com/database/121/RCMRF/rcmsynta012.htm#RCMRF117> pour les commandes détaillées.
Notez bien que nous pouvons créer autant de propriétaires et donc de schémas qui seront autant de catalogues de restauration qui pourront être dans différentes DataBases.
Par exemple, sur un site où sont gérés des centaines de DataBases Oracle, nous pourrons cataloguer nos sauvegardes de la façon suivante :
Deux DataBases, une pour les catalogues de dev et tests et l’autre pour ceux de qualification et pré-production. Chaque DataBase ayant chacune trois catalogues, un par version majeur de DataBase à sauvegarder 10g, 11g, 12c.
Deux DataBases pour les catalogues de production, une pour les données hautement critiques l’autre pour les autres bases. Chaque DataBasee ayant chacune trois catalogues, un par version majeur de database à sauvegarder 10g, 11g, 12c.
Notre ou nos catalogues sont donc dans une ou des bases de données, qu’il faut sauvegarder !
Pour effectuer cette sauvegarde, Oracle recommande d’utiliser … RMAN.  Mais pas avec un catalogue 🙂 :  Il faut simplement utiliser le controlfile comme référentiel RMAN. Chaque controlfile de nos bases de catalogues RMAN est donc la clé de la sauvegarde de nos sauvegardes !
Chaque fois que vous effectuez une sauvegarde au travers d’un catalogue, il faudrait le sauvegarder pour que l’enregistrement de la dernière sauvegarde soit protégé ! En fait, on le sauvegardera comme une DataBase de production critique.
La méthode de configuration de l’environnement de sauvegarde et de récupération pour le catalogue de restauration est la suivante :

  • Mettre en mode ARCHIVELOG la base qui contient le catalogue de restauration
  • Attribuer à la stratégie de conservation une valeur REDUNDANCY supérieure à un
  • Sauvegarder le catalogue de restauration sur disque et sur support externalisable
  • Utiliser la commande BACKUP DATABASE PLUS ARCHIVELOG.
  • Utiliser comme référentiel RMAN le fichier de contrôle (NOCATALOG) non pas un catalogue de restauration.
  • rman

    Activer la sauvegarde automatique du fichier de contrôle (AUTOBACKUP ON). Nous aurons d’ailleurs ajusté la variable CONTROL_FILE_RECORD_KEEP_TIME en fonction de la fréquence de nos sauvegardes totales du catalogue et multiplexé intelligemment le controlfile 😉

 
 
Alors, comment gérer la DataBase des catalogues lorsque les versions changent au niveau DataBases ?!
Les opérations sur le catalogue RMAN :
IMPORT CATALOG
Cette commande « IMPORT CATALOG » permet de déplacer un catalogue ou une DataBase dans un autre catalogue en gardant les backup precedents !
 Attention, <CAT_SOURCE> et <CAT_TARGET> doivent être dans la même version.
On peut controller la version avec sqlplus:
SQL>Select * from RMAND_10G.rcver
VERSION
————
11.02.0
Si les versions sont différentes, il faut upgrader le catalogue ayant la plus vieille version vers celle du plus recent.
Par exemple : Importer un catalogue de version non compatible va générer l’erreur:
RMAN> IMPORT CATALOG RMAND_11G@mabase DB_NAME=’MABD’;
Starting import catalog at XXX
source recovery catalog database Password:
connected to source recovery catalog database
DBMS_RCVCAT package version 11.02.00.03 in source database is not of version 11.02.00.02
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of import catalog command at dd/mm/yy
RMAN-06429: IMPCAT database is not compatible with this version of RMAN
Il faut que les commandes suivantes produisent le warning suivant !
rman catalog <CAT_TARGET>
RMAN> IMPORT CATALOG <CAT_SOURCE> DB_NAME='<DB_NAME>’;
 

Warning
The commande Import catalog makes an UNREGISTER DATABASE in the <CAT_SOURCE> rman catalog.
If you want to keep the database in the <CAT_SOURCE> rman catalog, you do have to add the UNREGISTER option in the commande IMPORT CATALOG.

 
Pour upgrader le catalogue qui n’est pas à niveau :
rman catalog <CAT_TARGET>
RMAN> upgrade catalog;
recovery catalog owner is RMANàupgrader
enter UPGRADE CATALOG command again to confirm catalog upgrade
RMAN> upgrade catalog;
recovery catalog upgraded to version 11.02.00.03
DBMS_RCVMAN package upgraded to version 11.02.00.03
DBMS_RCVCAT package upgraded to version 11.02.00.03
RMAN>
Full exemple:
oracle@XXXXXXX:# rman catalog RMANP_10G@O1P00002
Recovery Manager: Release 11.2.0.3.0 – Production on Thu Nov 22 11:45:54 2012
Copyright (c) 1982, 2011, Oracle and/or its affiliates.&nbsp; All rights reserved.
connected to recovery catalog database
PL/SQL package RMANP_10G.DBMS_RCVCAT version 11.02.00.02 in RCVCAT database is not current
PL/SQL package RMANP_10G.DBMS_RCVMAN version 11.02.00.02 in RCVCAT database is not current
RMAN> upgrade catalog;
recovery catalog owner is RMANP_10G
enter UPGRADE CATALOG command again to confirm catalog upgrade
RMAN> upgrade catalog;
recovery catalog upgraded to version 11.02.00.03
DBMS_RCVMAN package upgraded to version 11.02.00.03
DBMS_RCVCAT package upgraded to version 11.02.00.03
Verify the version on the database with sqlplus:
On vérifie la version du catalogue
Select * from RMAND_10G.rcver
VERSION
————
11.02.00.03
En 12c :
http://petesdbablog.wordpress.com/2014/08/15/upgrade-rman-catalog-to-12-1-0-2/