2009-01-04 8 views
11

J'avais besoin de changer le SID d'une base de données Oracle XE (pas le nom du service) pour correspondre à une base de données de production.Comment puis-je modifier le SID d'une instance Oracle XE

Lorsque j'ai essayé de rechercher en ligne, la plupart des pages décrivaient la modification ou l'ajout d'un nom de service via tnsnames.ora; ce n'est pas ce que je devais faire.

Répondre

12

L'article asktom a la réponse, mais la mise en forme et verbosité rend difficile à suivre, alors voici un petit résumé:

[XE_HOME] signifie où Oracle XE est installé. Normalement, c'est C:\oraclexe\app\oracle\product\10.2.0\server.

Assurez-vous d'avoir les privilèges d'administrateur ou la procédure échouera.

  1. Configurer le SPFILE (vous pouvez supprimer l'ancien fichier si vous voulez)
    1. copy [XE_HOME]\dbs\spfileXE.ora [XE_HOME]\dbs\spfileNEW_SID_NAME.ora
    2. copy [XE_HOME]\database\initXE.ora [XE_HOME]\database\initNEW_SID_NAME.ora
    3. Modifier [XE_HOME]\database\initNEW_SID_NAME.ora: Il doit contenir une seule ligne comme celui-ci: SPFILE='[XE_HOME]\server\dbs/spfileNEW_SID_NAME.ora'
  2. Arrêtez et remplacez l'ancien service par un nouveau:
    1. sqlplus/as sysdba et execute shutdown
    2. lsnrctl stop
    3. oradim -new -sid NEW_SID_NAME -startmode auto -pfile [XE_HOME]\database\initNEW_SID_NAME.ora
    4. oradim -delete -sid XE
    5. lsnrctl start
  3. Mise à jour la propriété de l'environnement ORACLE_SID (Paramètres système> Avancé> Environnement)
  4. force Oracle pour vous inscrire à l'écoute er
    • sqlplus/as sysdba et execute alter system register;

Vous pouvez vérifier que le SID a été changé en exécutant la requête suivante: select instance_name from v$instance;

+0

Merci, je n'ai pas aimé l'idée d'accepter ma propre réponse. Votre réponse est beaucoup plus claire, –

4

Asktom a the answer, j'ai dû passer par beaucoup de google-fu pour y accéder.

2

J'ai eu quelques problèmes avec la solution affichée par Johannes, donc J'ai dû faire quelques pas supplémentaires. Lorsque vous essayez de vous connecter à Oracle (étape 4) en faisant sqlplus/as sysdba J'obtenu:

ERROR: ORA-12560: TNS:protocol adapter error 

La solution pour ce exécutait la ligne suivante:

oradim -start -sid NEW_SID_NAME 

Puis la connexion avec/a bien fonctionné, mais en essayant de se connecter à NEW_SID_NAME avec système ou HR m'a fait un autre problème:

ERROR: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor 

J'ai vérifié que avec la requête select instance_name from v$instance; que l'écouteur serait NEW_SID_NAME, et ainsi de suite. Mais l'exécution de lsnrctl status dans la ligne de commande ou l'interrogation select name from dba_services; n'affiche pas NEW_SID_NAME en tant qu'auditeur. La solution de ce problème exécutait la peine de followind sur sqlplus:

alter system set service_names='NEW_SID_NAME'; 

Peut-être que vous aurez besoin d'exécuter alter system register; après cela aussi. Après avoir fait cela en deux étapes, je peux me connecter à NEW_SID_NAME avec le système et les ressources humaines.

J'espère que ça aide

+0

Désolé, j'ai oublié, les liens que j'ai utilisés pour résoudre ce problème où http://mdvreddy.blogspot.com.ar/2011/12/how-to-solve-ora-12560-tnsprotocol. html et https://forums.oracle.com/forums/thread.jspa?messageID=10201664 – nMoncho

Questions connexes