Aucun message portant le libellé ORACLE_SID. Afficher tous les messages
Aucun message portant le libellé ORACLE_SID. 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.

mercredi 16 février 2011

Identifier la base de données utilisée par le processus

En surveillant la performance des processus sur un serveur Linux, j'ai remarqué qu'il y avait un processus qui était réellement gourmand en temps CPU. Pour mieux comprendre, j'ai voulu obtenir plus de détails sur celui-ci.

La seule chose que je savais, c'est que le processus concerné avait été démarré avec le compte Oracle et c'est tout. Aucune autre information m'indiquait sur quelles bases de données je devais investiguer et, disons que ça ne me tentait pas de les faire une à une car ce serveur en héberge plusieurs.

En sachant que chaque processus démarré sur le serveur a ses propres valeurs de variables d'environnement, nous pouvons connaître sur quelle base de données il a effectué sa connexion en consultant le contenu du fichier intitulé "environ". Ce fichier est situé sous le répertoire "/proc/". Dans mon cas, j'ai identifié l'identifiant du processus (13198) via l'outil "top" et ensuite, j'ai exécuté la commande suivante :

cat /proc/13198/environ

La commande affiche toutes les variables d'environnement et leurs valeurs. Il suffit d'y repérer la valeur de la variable "ORACLE_SID" et vous saurez sur quelle base de données le processus s'exécute.