Usar Oracle-XE en Ubuntu sin conexiones de Red

Por fin en la Universidad un materia que no tiene que ver con Miscrosoft. A llegado el momento de aprender Oracle.

El problema que tenia es que solo me realizaba conexión a Oracle cuando estaba conectado a alguna red, ya fuera wifi o ethernet, pero si no tenia acceso a alguna de ellas el listener no era capaz de hacer conexión. Por ejemplo tratando de conectarme con SQL Developer me sacaba el error:
TNS-12505: TNS:listener does not currently know of SID given in connect descripton

La solucion es tan simple como increible, pues pase por varios foros de Ubuntu y Oracle y no encontré cuál era la causa del problema de forma concreta. Así que atando cabos encontré esta solución (y aparte aprendí mas de lo que esperaba).

Los pasos los ejecutare a través de una terminal.

1. Saber el nombre de la maquina:
sudo gedit /etc/hostname

El valor que se encuentre alli adentro se debe copiar (pues es importante para el siguiente paso). En mi caso se llama NaNo

2. Para saber si debes realizar esta configuración, solo hace falta que hagas un ping a tu propia maquina y si no hay resultados es porque no esta configurada como uno de los hosts.
ping NaNo

2. Abrir el archivo de los host de la maquina:
sudo gedit /etc/hosts

Este es el archivo que tengo actualmente:
192.xxx.xxx.xxx NaNo # Added by NetworkManager
127.0.0.1 localhost.localdomain localhost
::1 NaNo localhost6.localdomain6 localhost6

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Se le debe adicionar la misma maquina como Host:
192.xxx.xxx.xxx NaNo # Added by NetworkManager
127.0.0.1 localhost.localdomain localhost
::1 NaNo localhost6.localdomain6 localhost6
127.0.0.1 NaNo

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Guardar y cerrar el archivo. Luego se debe repetir el punto 2 y validar que retorne resultados.

Ahora es importante verificar los servicios y usar algunos comandos para reinicar Oracle. La mejor forma de saber si tenemos conexion con el Listener es ejecutar el comando:
sudo /etc/init.d/oracle-xe status

Para garantizar que los servicios quedan inicados debe aparecer esta parte en el mesaje:
Service "XE" has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service...
Service "XE_XPTsudo /etc/init.d/oracle-xe restart has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service...
The command completed successfully

Como ya configuramos nuestro equipo como un Host bastaría con reiniciar el servicio de Oracle con el comando:
sudo /etc/init.d/oracle-xe restart

Después de esto ya podemos conectarnos a Oracle sin problemas. Ya sea por Apex o por SQL Developer.

Otro comandos importantes en Oracle y es buenor tenerlos a la mano son:
sudo /etc/init.d/oracle-xe start
sudo /etc/init.d/oracle-xe stop
sudo /etc/init.d/oracle-xe start
sudo /etc/init.d/oracle-xe restart
sudo /etc/init.d/oracle-xe force-reload
sudo /etc/init.d/oracle-xe enable


Otros problemas que se pueden presentar pueden ser directamente con la configuración de los archivos de escucha, los cuales se pueden editar con los comandos:
sudo gedit /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin/tnsnames.ora
sudo gedit /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin/listener.ora


Donde la opción HOST = NaNo debe tener configurado el nombre del equipo (explicado al inicio de esta publicación).

Enlaces importantes:
- Como instalar Oracle-XE en Ubuntu
- Reconfigurar Oracle
- SQL Developer

Sueter de haber encontrado una solución.

Por:

Comentarios

  1. Muchas gracias.
    Hace casi un año usé Oracle 10g para un proyecto en la universidad, y también me intrigaba saber si era posible conectarse a la base de datos sin tener activa una conexión de red. Investigué un poco pero no lo logré, y como no era imprescindible pues no busqué más.
    Ahora he vuelto a trabajar con Oracle y necesitaba acceder a la base de datos sin conexión de red. Gracias por haber publicado la solución que encontraste.

    Un saludo!!
    Jesús

    ResponderEliminar
  2. Feedback:
    Mala suerte... probé tu solución pero sigue sin funcionar si no activo una conexión de red.
    Tendré que seguir investigando.
    Uso Ubuntu 10.04 y Oracle 10g (10.2). Probaré con Oracle 11g pero no creo que sea problema de la versión, es de alguna configuración en Ubuntu seguro.
    Saludos!

    ResponderEliminar
  3. Buscando un poco más encontré la solución que me funcionó. Lo he probado tanto en Unbuntu 9.10 como en el 10.04:
    http://aigloss.blogspot.com/2011/06/oracle-database-not-working-without.html

    Espero que le pueda ayudar a alguien más.
    Saludos!

    ResponderEliminar
  4. Que bien... gracias por publicar tu solucion!

    ResponderEliminar

Publicar un comentario

Entradas populares