mardi 24 mars 2009

RMAN ne veut rien savoir, "Incarnation is not current"

Hier après-midi, je m’apprêtais à faire des essais de sauvegarde/récupération sur un serveur Unix.

Après avoir enregistré les bases de données MIG10203 et MIG10204 au catalogue RMAN, j’ai eu un problème lors d’une tentative de sauvegarde.

J’obtenais l’erreur suivante :

RMAN-20011: target database incarnation is not current in recovery catalog

Après quelques recherches, je me suis rendu compte que l’identifiant unique de la base de données (DBID) était le même pour les 2 bases de données.

C’est normal car la base de données MIG10204 a été créée en dupliquant manuellement la base de données MIG10203.

Donc, pour corriger le tout, j’ai désinscrit les 2 bases de données :

RMAN> unregister database;

Puis, j’ai suivi les étapes ci-dessous pour changer le DBID d’une des bases de données :

1. Prendre une copie de sécurité de la base de données

2. Fermer la base de données

shutdown immediate

3. Démarrer en mode « mount »

startup mount

4. démarrer une session Unix et exécuter "NID" avec les privilèges SYSDBA

$ nid TARGET=SYS/password@MIG10204

5. Fermer la base de données

shutdown immediate

6. si non fait, initialiser le paramètre "db_name" au nom désiré

7. créer un fichier de mot de passe

orapwd file=/juliet_u01/home/dba/oracle/product/10.2.0.4.0/dbs/orapwmig10204 password= entries=20

8. Démarrer et ouvrir la base de données en réinitialisant les journaux

startup mount
alter database open resetlogs

4 commentaires:

  1. Bonjour,

    Tout d'abord si vous utilisez RMAN pour vos sauvegardes, utilisez le aussi pour faire vos copie avec la commande DUPLICATE. Elle vous évitera d'avoir plusieurs bases avec le même DBID. Ensuite utiliser unregister est une mauvaise idée, vous venez de perdre vos sauvegardes.

    Cdt,
    B.VO

    RépondreEffacer
  2. Merci pour ton commentaire, ils sont appréciés !

    RépondreEffacer
  3. Bonjour,
    Merci pour ces infos, elles m'ont permis de retomber sur mes pattes dans la même situation.

    à B.VO : Si on ne fait pas unregister, comment réassocier le DBID à la bonne base ?
    De plus j'ai fait un unregister de la mauvaise base, suivi d'un register de la bonne base : rman a fait un resync et retrouvé toutes mes sauvegardes.

    RépondreEffacer
  4. Je ne l'ai jamais essayé, mais sur le site "The Pythian Group" (
    http://www.pythian.com/news/1491/how-to-choose-your-oracle-database-id-dbid), il démontre comment donner le DBID que l'on veut. Si tu tentes l'expérience, je t'invite à m'en donner des nouvelles.

    RépondreEffacer