Question

Je devais modifier le SID d'une base de données Oracle XE (pas le nom du service) afin qu'il corresponde à une base de données de production.

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.

Était-ce utile?

La solution

Le asktom article a la réponse, mais la mise en forme et la verbosité le rendent difficile à suivre. Voici donc un résumé:

[XE_HOME] signifie où Oracle XE est installé. Normalement, il s’agit de C: \ oraclexe \ app \ oracle \ product \ 10.2.0 \ serveur .

Assurez-vous de disposer des privilèges d’administrateur, sinon la procédure échouera.

  1. Configurez le SPFILE (vous pouvez supprimer l'ancien fichier si vous le souhaitez)
    1. copier [XE_HOME] \ dbs \ spfileXE.ora [XE_HOME] \ dbs \ spfileNEW_SID_NAME.ora
    2. copier [XE_HOME] \ database \ initXE.ora [XE_HOME] \ database \ initNEW_SID_NAME.ora
    3. Éditer [XE_HOME] \ database \ initNEW_SID_NAME.ora : il devrait contenir une seule ligne comme celle-ci: SPFILE = '[XE_HOME] \ serveur \ dbs / spfileNEW_SID_NAME.ora'
  2. Arrêtez et remplacez l'ancien service par un nouveau:
    1. sqlplus / as sysdba et exécutez shutdown
    2. lsnrctl stop
    3. oradim -new -nom NEW_SID_NAME -startmode auto -pfile [XE_HOME] \ database \ initNEW_SID_NAME.ora
    4. oradim -delete -sid XE
    5. lsnrctl start
  3. Mettez à jour la propriété d'environnement ORACLE_SID (Paramètres système > Options avancées > Environnement)
  4. .
  5. Forcer Oracle à s'enregistrer avec le programme d'écoute
    • sqlplus / as sysdba et exécutez modifiez le registre système;

Vous pouvez vérifier que le SID a été modifié en exécutant la requête suivante: select nom_instance dans v $ instance;

Autres conseils

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

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

ERROR: ORA-12560: TNS:protocol adapter error

La solution pour cela consistait à exécuter la ligne suivante:

oradim -start -sid NEW_SID_NAME

La connexion avec / a bien fonctionné, mais le fait de me connecter à NEW_SID_NAME avec le système ou les ressources humaines m'a posé un autre problème:

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

J'ai vérifié qu'avec la requête , sélectionnez nom_instance dans v $ instance; , le programme d'écoute serait NEW_SID_NAME, et il en a été de même. Mais exécuter lsnrctl status dans la ligne de commande ou interroger , sélectionnez un nom dans dba_services; n'affichait pas NEW_SID_NAME en tant qu'écouteur. La solution à ce problème consistait à exécuter la phrase suivante sur sqlplus:

alter system set service_names='NEW_SID_NAME';

Peut-être aurez-vous besoin d'exécuter alter registre système; après ceci également.

Après avoir effectué ces deux étapes, je peux me connecter au NEW_SID_NAME avec le système et les ressources humaines.

J'espère que ça aide

Dans la version 11g, toute la solution précédente ne fonctionnait pas ... J'obtiens toujours l'erreur suivante lorsque j'essaie de faire sqlplus / as sysdba :

ERREUR: ORA-12560: TNS: erreur d'adaptateur de protocole

Heureusement, j'ai trouvé un script pour faire ce que je voulais faire sous [XE_HOME] \ config \ scripts. Le script s'appelle XE.bat et instanciera une nouvelle base de données en vous demandant le sysPassword tout au long du processus. Alors ce que j'ai fait était:

  1. Arrêtez et supprimez le service existant, le cas échéant:
  

oradim -delete -sid XE

  1. Arrêtez l'écouteur
  2. Configurez le SPFILE comme expliqué par Johannes
  3. Faites une copie du script XE.bat, vous pouvez le nommer comme vous le souhaitez
  4. Modifiez la copie du script comme suit:

    1. Ligne de changement "Définissez ORACLE_SID = XE". définir "ORACLE_SID = NEW_SID_NAME"
    2. Changez où vous voyez "-sid XE " vers "-sid NEW_SID_NAME"
    3. Mettez à jour la ligne où il appelle le "orapwd.exe" commande pour pointer sur un fichier nommé PWDNEW_SID_NAME.ora au lieu de PWDXE.ora
    4. Mettez à jour la ligne qui renvoie le fichier spfileXE.ora au fichier initXE.ora pour faire écho au fichier spfileNEW_SID_NAME.ora au fichier initNEW_SID_NAME.ora (cette partie peut rendre l'étape 3 inutile, mais je préfère le faire de toute façon, au cas où ...)
  5. Exécutez le script ... Il vous demandera plusieurs fois de saisir le mot de passe SYSTEM en disant

  

Entrez une valeur pour 1:

ou

  

Entrez une valeur pour 2:

Ça y est, la nouvelle base de données avec votre NEW_SID_NAME est opérationnelle !!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top