Ajustando Oracle XE

Después de instalar Oracle XE en mi ubuntu 7.10 tenía tres inquietudes:

  1. Por error le había dicho al configurarlo que se iniciara al arrancar la máquina. Quiero que el inicio sea manual.
  2. Quería poder usar el sql*plus desde un terminal con mi usuario de linux habitual.
  3. Quería poder acceder al interfaz web de administración desde cualquier ordenador de mi red (por defecto sólo permite acceder desde localhost).

Quitar Oracle XE del arranque.

Pensé, bueno, esto está chupado. Edito el inittab y ya está. Pues no. Al parecer inittab es historia. Lo han sustituido por un tal upstart que es más rápido, más eficiente, más centralizado y más todo. El caso es que no he encontrado por ninguna parte dónde está puesto que en el runlevel en el que arranco la máquina se inicie la base de datos. He tenido que arrastrarme y editar el fichero /etc/default/oracle-xe y poner el parámetro ORACLE_DBENABLED a false. Un comentario al inicio del fichero advierte que se utilice /etc/init.d/oracle-xe para cambiarlo, pero no he encontrado cómo:

#This is a configuration file for automatic starting of the Oracle
#Database and listener at system startup.It is generated By running
#'/etc/init.d/oracle-xe configure'.Please use that method to modify this
#file

# ORACLE_DBENABLED:'true' means to load the Database at system boot.
ORACLE_DBENABLED=false

# LISTENER_PORT: Database listener
LISTENER_PORT=1521

# HTTP_PORT : HTTP port for Oracle Application Express
HTTP_PORT=8081

# Configuration : Check whether configure has been done or not
CONFIGURE_RUN=true

Poder usar el sql*plus desde un terminal con mi usuario de linux habitual.

La solución a esto la encontré en un artículo del blog “De mi vida con las máquinas y otros temas”. Edité el fichero .bashrc de mi usuario habitual y agregé al final:

# Ejecuto el bash de oracle para poder iniciar el sqlplus y para tener
# cargadas las variables de oracle
. /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh


Si queréis ser más finos podéis hacer un enlace simbólico, pero en mi caso no me hacía falta.
Al iniciar sesión me dio un error: “/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/nls_lang.sh: 114: [[: not found”. Por suerte nunca soy el primero en encontrarme con un problema. Bearded Magnum tenía la clave. Por lo visto es un pequeño fallo en el script nls_lang.sh de esta versión de XE. Hay que editar como root el fichero (sí, a mi también me patinan las venas cuando hay que hacer estas cosas) y donde pone:

# Detertmine the LANGUAGE_TERRITORY part of NLS_LANG
# we derive it from the current locale by inspecting the LC_ALL and
# the LANG environment variable. Other LC_* environment variables
# are not inspected.
#
if [[ -n "$LC_ALL" ]]; then
  locale=$LC_ALL
elif [[ -n "$LANG" ]]; then
  locale=$LANG
else
  locale=
fi

Hay que quitar los dobles corchetes y dejarlo así:

# Detertmine the LANGUAGE_TERRITORY part of NLS_LANG
# we derive it from the current locale by inspecting the LC_ALL and
# the LANG environment variable. Other LC_* environment variables
# are not inspected.
#
if [ -n "$LC_ALL" ]; then
  locale=$LC_ALL
elif [ -n "$LANG" ]; then
  locale=$LANG
else
  locale=
fi

Y voilà.

Poder acceder al interfaz web desde otra máquina.

Esto también es simple y también se describe en “De mi vida con las máquinas y otros temas”. Puede hacerse desde el SQL*plus conectado como system:

EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);

También accediendo a la interfaz web como system: Administración => Gestionar acceso HTTP => Disponible desde Servidor Local y Clientes Remotos.

Anuncios

2 comentarios en “Ajustando Oracle XE

  1. Buenassssssssssssssssssss.
    en el primer punto de la configuración donde quieres que el demonio no se ejecute al principio lo que deberías hacer (no estoy seguro, hablo de cabeza) sería ejecutar “sudo /etc/init.d/oracle-xe configure”, que realmente es el último punto de mi manual. Ya que es ese archivo el que se modifica en el paso de la configuración.
    De todas maneras como lo has hecho tu bien está.
    Si lo pruebas confirmamelo a ver si funciona.
    Buen blog. En cuanto tenga un rato libre profundizaré 🙂

  2. Hola TuxRoot. Eso fue lo primero que intenté, pero me daba el mensaje “Oracle Database 10g Express Edition is already configured”.
    De todas formas, gracias.

Los comentarios están cerrados.