Versión de Oracle: 11g
corriendo en sistema operativo Windows de 64 bits.
La documentación, acerca
de este error dice lo siguiente:
Causa:
El listener recibe una petición para establecer una conexión a la
base de datos o a otro servicio. El descriptor de conexión recibió
en el listener especificado un SID (System ID) para una instancia
(usualmente una instancia de base de datos) que o no ha sido
registrado dinámicamente con ese listener aún, o no ha sido
estáticamente configurado para el listener. Esta puede ser una
condición temporal tal que ocurre después de que el listener ha
iniciado, pero antes de que la instancia de la base de datos haya
sido registrada con el listener.
Acción:
- Esperar un momento e intentar conectarse por segunda vez.
- Checar cuales instancias son actualmente conocidas por el listener ejecutando: lsnrctl services <listener_name>
- Checar que el parámetro SID en el descriptor de conexión especifique una instancia conocida por el listener
- Checar eventos en el archivo listener.log
Podemos para
empezar, como la documentación sugiere, abrir una consola de
windows y ejecutar el comando lsnrctl
services LISTENER (este es el nombre que tiene mi Listener).
Aunque no creo necesario decirlo, al menos los servicios
OracleServiceORCL y Oracleoradb11 homeTNSListener deben estar
encendidos.
Idealmente aquí debería
aparecer, entre los servicios registrados por el listener, el correspondiente con la base de
datos definida normalmente con un SID como puede ser “ORCL”.
Seguramente no aparecerá dicha instancia, hay que resolverlo.
Para comenzar, buscamos
las herramientas de configuración y migración de
Oracle en “Todos los programas”, luego ubicamos y entramos en
“Net manager”. En el
explorador de objetos que ahí aparece ubiquemos el nodo Listeners y
despleguémoslo, seleccionemos el listener que deseamos configurar
Del lado derecho de la
pantalla veremos un combobox, escojamos Database Services para
agregar la base de datos. Luego un formulario solicitará tres
elementos: el nombre global de la base de datos, la ruta del
directorio home de Oracle, y el SID. El nombre global de la base
puede ser consultado en el archivo de configuración init.ora,
ubicado en ORACLE_HOME\dbs, el SID lo consultamos en el archivo
tnsnames.ora ubicado en ORACLE_HOME\NETWORK\ADMIN. En mi caso,
- El nombre global de la base de datos resultó ser: ORCL,
- El directorio home de Oracle: C:\app\Villalobos\product\11.2.0\dbhome_1
- y el SID: orcl
El SID también
puede ser consultado y establecido, me parece, en el mismo Net
Manager, en el nodo Service Naming. Para terminar, guardamos los
cambios, en el menú File, escogemos Save Network Configuration y
reiniciamos el
servicio OracleOraDb11g TNSListener para que los cambios sean
aplicados. La configuración bien pudo haberse hecho manualmente
modificando los archivos de configuración, pero en este caso
utilizamos las herramientas que instalamos con Oracle para facilitar
la tarea.
Con imágenes -> Error ORA 12505