IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

Renommer base Oracle: procédure testé avec succès


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 126
    Par défaut Renommer base Oracle: procédure testé avec succès
    Bonjour à tous,

    J'avais une base portant le SID "MAT" que j'ai voulu changer en "PRD", voici la procédure que j'ai effectuée et qui a fonctionnée sur une 10g2.

    1/Base démarrée, sauvegarder le fichier de controle:
    #alter database backup controlfile to trace;

    2/shutdown;

    3/editer le fichier initMAT.ora et remplacer le db_name=MAT par le nouveau SID PRD
    Ajouter aussi la ligne instance_name=PRD

    4/Etant donné que la version 10 travaille avec le spfile, j'ai du le mettre à jours après avoir modifié le pfile:
    #create spfile from pfile;

    5/Se rendre dans le dossier udump pour éditer le fichier de controle sauvegarder au format ASCII lors de l"étape 1. Voici les seuls lignes à copier/coller dans un nouveau fichier texte "toto.sql" (on s'en servira plus tard):
    STARTUP NOMOUNT
    CREATE CONTROLFILE SET DATABASE "PRD" RESETLOGS NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
    LOGFILE
    GROUP 1 '/oracle/product/oradata/MAT/redo01.log' SIZE 50M,
    GROUP 2 '/oracle/product/oradata/MAT/redo02.log' SIZE 50M,
    GROUP 3 '/oracle/product/oradata/MAT/redo03.log' SIZE 50M
    -- STANDBY LOGFILE
    DATAFILE
    '/oracle/product/oradata/MAT/system01.dbf',
    '/oracle/product/oradata/MAT/undotbs01.dbf',
    '/oracle/product/oradata/MAT/sysaux01.dbf',
    '/oracle/product/oradata/MAT/users01.dbf',
    '/oracle/product/oradata/MAT/example01.dbf'
    CHARACTER SET WE8ISO8859P1
    ;
    Explication: Bien choisir le SET DATABASE "nouveau_SID" et indiquer aux controlfiles que les redo vont être reseter à la premiere ouverture avec l'option "RESETLOGS".

    6/supprimer les controlfiles existants; Si vous ne savez pas quels fichiers ce sont, regarder dans la vue v$controlfile ou dans votre fichier initSID.ora.

    7/Executer toto.sql créé à l'étape 5. Se placer dans son répertoire, se connecter sous sqlplus (connect / as sysdba) et taper @toto.sql;

    8/reseter les redo
    #alter datbase openresetlogs

    9/shutdown

    10/changer la variable ORACLE_SID de l'user oracle et verifier qu'elle est bien active "echo $ORACLE_SID"

    11/Modifier le listener.ora et tnsname.ora pour mettre le nouveau SID

    12/modier initMAT en initPRD et pareil pour le spfile au niveau de l'OS

    12/démarrer le listener

    13/démarrer la base


    Finalement c'est assez rapide, pour vérifier que tout est OK vous pouvez visualiser les vues v$instances, v$parameters et v$database. En espérant que ça aidera qqes personnes. J'ai voulu suivre au début des tutoriels mais ils sont incomplets, y'a toujours une erreur qui reste à droit ou à gauche.

  2. #2
    Membre Expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Par défaut
    Merci pour cette petite doc.

    Par contre, pour renommer le SID, tu n'a pas besoin de créer un nouveau fichier de contrôle ou faire un resetlog, et tu a oublié de modifier le fichier password.

    1. Arrêter la base en mode Normal ou en Immediat
    2. Sauvegarder tous les fichiers de contrôles, redo et de données
    3. Modifier .profile, oratab, tnsnames.ora
    4. Dans $ORACLE_HOME/dbs, renommer le fichier init<SID>.ora et si le spfile est utilisés, alors il faut renommer spfile<SID>.ora
    5. Changer la variable d'environnement ORACLE_SID par le nouveau SID
    6. Si le fichier password est activée, il faut recréer un nouveau dans$ORACLE_HOME/dbs
    7. Démarrer la base
    8. Et enfin faire une sauvegarde

    On crée le fichier de contrôle lorsqu'on modifie le DB_NAME et non pas l' ORACLE_SID.

    Et merci lecharcutierdelinux.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 126
    Par défaut
    Salut Bouyao,

    Précision cependant, pour renommer proprement une base, il faut bien modifier à la fois le db_name et le oracle_SID n'est ce pas?

    J'ai tout modifié pour rien?

  4. #4
    Membre Expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Par défaut
    Pour renommer la base, c'est mieu de renommer les deux, ORACLE_SID et DB_NAME.
    Il y a un article de fadace ici : http://fadace.developpez.com/oracle/ren/

Discussions similaires

  1. base oracle en local avec php pour langage
    Par hpl76 dans le forum Débuter
    Réponses: 2
    Dernier message: 07/03/2008, 09h23
  2. Migration de base oracle vers mysql avec Perl
    Par kasnej dans le forum SGBD
    Réponses: 0
    Dernier message: 01/11/2007, 13h24
  3. couplage base de données oracle et sqlserver avec c et c++
    Par mloul dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 22/11/2004, 14h00
  4. Executer procédure stockée base oracle ADOStoredProc
    Par Akei dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/06/2004, 08h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo