Aucun message portant le libellé NID. Afficher tous les messages
Aucun message portant le libellé NID. Afficher tous les messages

vendredi 28 octobre 2011

Renommer une base de données

Renommer une base de données n’est pas si compliqué. Oracle offre un utilitaire qui simplifie grandement les opérations qui sont à réalisées. Voici l’ensemble des étapes à suivre :

Note: Les étapes ci-dessous ont été réalisées sur une base de données Oracle 11gR2 EE sous Linux Red Hat 5.5 64bits. Le DB_NAME d'origine était "orcl" et, il est changé pour "lab11g".
  • Prendre une copie de sécurité de la base de données
  • Démarrer l’outil SQL*Plus en établissant une connexion avec le compte « SYS »

(oracle)$ sqlplus / as sysdba

  • Arrêter la base de données

SQL> SHUTDOWN IMMEDIATE

  • Démarrer la base de données en mode « mount »

SQL> STARTUP MOUNT

  • Extraire les paramètres de la base de données

SQL> create pfile='/tmp/pfile.ora' from spfile;

  • Éditer le fichier de paramètres (pfile)

Le fichier de paramètre contient un paramètre intitulé « DB_NAME » qui doit être réinitialisé à la nouvelle valeur. Veuillez suivre ces étapes :

SQL> create spfile from pfile='/tmp/pfile.ora';

  • Quitter l’outil SQL*Plus

SQL> exit

  • Démarrer l’utilitaire

L’utilitaire doit être démarré avec le compte « SYS » puis vous devez spécifier le nouveau nom de la base de données.

(oracle)$ nid TARGET=SYS DBNAME=[nom BD] SETNAME=YES

L’utilitaire vérifie les entêtes des fichiers de contrôle puis ensuite, il demande une confirmation de l’opération.

  • Créer le fichier de mot de passe

(oracle)$ orapwd FILE=orapw[SID] ENTRIES=30

  • Arrêter le programme d’écoute (listener)

(oracle)$ lsnrctl stop

  • Changer la variable d’environnement ORACLE_SID

Le changement doit s’effectuer dans tous les scripts utilisés ainsi que la variable d’environnement « ORACLE_SID »

(oracle)$ export ORACLE_SID=[SID]

  • Recréer le fichier système de paramètres

(oracle)$ sqlplus / as sysdba

SQL> create spfile from pfile='/tmp/pfile.ora';

SQL> exit

  • Démarrer le programme d’écoute (listener)

(oracle)$ lsnrctl start

  • Démarrer normalement la base de données

(oracle)$ sqlplus / as sysdba

SQL> startup

Suite à cette opération, assurez-vous que le fichier « listener.ora » ne fait pas de référence à l’ancien nom de la base de données. De plus, n’oubliez pas de modifier les chaînes de connexion contenues dans les fichiers de configuration, par exemple « tnsnames.ora », « dads.conf », etc.

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