Pregunta

Necesitaba cambiar el SID de una base de datos Oracle XE (no el nombre del servicio) para que coincida con una base de datos de producción.

Cuando intenté buscar en línea, la mayoría de las páginas describían cómo cambiar o agregar un nombre de servicio a través de tnsnames.ora; eso no es lo que necesitaba hacer.

¿Fue útil?

Solución

El asktom el artículo tiene la respuesta, pero el formato y la verbosidad hacen que sea difícil de seguir, así que aquí hay un resumen:

[XE_HOME] significa donde está instalado Oracle XE. Normalmente esto es C: \ oraclexe \ app \ oracle \ product \ 10.2.0 \ server .

Asegúrese de tener privilegios de administrador o el procedimiento fallará.

  1. Configure el SPFILE (puede eliminar el archivo antiguo si lo desea)
    1. copia [XE_HOME] \ dbs \ spfileXE.ora [XE_HOME] \ dbs \ spfileNEW_SID_NAME.ora
    2. copia [XE_HOME] \ database \ initXE.ora [XE_HOME] \ database \ initNEW_SID_NAME.ora
    3. Editar [XE_HOME] \ database \ initNEW_SID_NAME.ora : debe contener una sola línea como esta: SPFILE = '[XE_HOME] \ server \ dbs / spfileNEW_SID_NAME.ora'
  2. Apague y reemplace el servicio anterior por uno nuevo:
    1. sqlplus / as sysdba y ejecute 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. Actualice la propiedad del entorno ORACLE_SID (Configuración del sistema > Advanced > Environment)
  4. Obligar a Oracle a registrarse con el oyente
    • sqlplus / as sysdba y ejecute alterar el registro del sistema;

Puede verificar que se haya cambiado el SID ejecutando la siguiente consulta: seleccione nombre_instancia de v $ instancia;

Otros consejos

Asktom tiene la respuesta , tuve que pasar por un montón de google-fu para llegar a él.

Tuve algunos problemas con la solución publicada por Johannes, así que tuve que hacer algunos pasos adicionales. Al intentar conectarme a Oracle (paso 4) haciendo sqlplus / as sysdba obtuve:

ERROR: ORA-12560: TNS:protocol adapter error

La solución para esto fue ejecutar la siguiente línea:

oradim -start -sid NEW_SID_NAME

Luego, conectarme con / funcionó bien, pero tratar de conectarme a NEW_SID_NAME con el sistema o RRHH me dio otro problema:

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

Verifiqué que con la consulta seleccione nombre_instancia de v $ instancia; que el oyente sería NEW_SID_NAME, y así lo hizo. Pero ejecutar lsnrctl status en la línea de comando o consultar seleccione el nombre de dba_services; no mostró NEW_SID_NAME como oyente. La solución de este problema fue ejecutar la siguiente oración en sqlplus:

alter system set service_names='NEW_SID_NAME';

Quizás necesite ejecutar alterar el registro del sistema; después de esto también.

Después de hacer estos dos pasos, puedo conectarme a NEW_SID_NAME con el sistema y los recursos humanos.

Espero que ayude

En la versión 11g, toda la solución anterior no funcionó ... Siempre recibo el siguiente error cuando intento hacer el sqlplus / as sysdba :

ERROR: ORA-12560: TNS: error del adaptador de protocolo

Afortunadamente, encontré un script para hacer lo que quería hacer en [XE_HOME] \ config \ scripts. El script se llama XE.bat y creará una nueva base de datos desde cero pidiéndole la contraseña sys a lo largo del proceso. Entonces, lo que hice fue:

  1. Detenga y elimine el servicio existente, si lo hay:
  

oradim -delete -sid XE

  1. Detener al oyente
  2. Configure el SPFILE como lo explicó Johannes
  3. Haga una copia del script XE.bat, puede nombrarlo como quiera
  4. Edite la copia del script de la siguiente manera:

    1. Cambiar línea " set ORACLE_SID = XE " para " establecer ORACLE_SID = NEW_SID_NAME "
    2. Cambia donde veas " -sid XE " a " -sid NEW_SID_NAME "
    3. Actualice la línea donde se llama " orapwd.exe " comando para apuntar a un archivo llamado PWDNEW_SID_NAME.ora en lugar de PWDXE.ora
    4. Actualice la línea que hace eco de spfileXE.ora en initXE.ora para hacer eco de spfileNEW_SID_NAME.ora en initNEW_SID_NAME.ora (esta parte puede hacer que el paso 3 sea inútil, pero prefiero hacerlo de todos modos, por si acaso ...)
  5. Ejecute el script ... Le pedirá la contraseña del SISTEMA varias veces diciendo

  

Ingrese el valor para 1:

o

  

Ingrese el valor para 2:

¡Eso es, la nueva base de datos con su NEW_SID_NAME está en funcionamiento!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top