En esta entrada voy a explicaros como configurar el inicio automático de la base de datos de Oracle así como su listener para que se inicie junto con el arranque del sistema operativo.
Consideraciones previas
Este tutorial voy a hacerlo utilizando la distribución de Linux CentOS 8, Oracle 18c y el usuario oracle que se crea por defecto a la hora de realizar la instalación de Oracle. Comento todo esto porque si tenéis otra distribución de Linux, versión de Oracle o queréis usar otro usuario este tutorial también os servirá pero tendréis que adaptar algunos comandos a vuestro escenario.
Verificación variables de entorno usuario oracle
En primer lugar es importante verificar las variables de entorno, en este ejemplo, del usuario oracle.
Para ello editaremos el fichero .bash_profile.
nano /home/oracle/.bash_profile
Comprobamos que tiene el siguiente contenido (adaptar los parámetros por los de vuestra instalación).
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs export ORACLE_BASE=/opt/oracle/ export LD_LIBRARY_PATH=/opt/oracle/product/18c/dbhomeXE/lib export ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE export PATH=$ORACLE_BASE/product/18c/dbhomeXE/bin:$PATH export PATH=/usr/bin:$PATH export ORACLE_SID=XE
Configurar el inicio automático de la base de datos
Editamos el fichero /etc/oratab
nano /etc/oratab
Modificamos el último valor (de N a Y) de la base de datos que queremos que se inicie junto con el arranque del sistema operativo.
XE:/opt/oracle/product/18c/dbhomeXE:Y
Grabamos los cambios.
Creación del script que utilizaremos en el arranque
Creamos un script llamado dbora.
nano /etc/init.d/dbora
Añadimos el siguiente contenido.
#! /bin/sh #Cambiar el valor ORACLE_HOME por la ruta de instalación de Oracle ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE #Cambiar el valor ORACLE por el usuario de instalación de Oracle en Linux ORACLE=oracle PATH=${PATH}:$ORACLE_HOME/bin HOST=`hostname` PLATFORM=`uname` export ORACLE_HOME PATH # if [ ! "$2" = "ORA_DB" ] ; then runuser -l $ORACLE $0 $1 ORA_DB if [ "$PLATFORM" = "Linux" ] ; then touch /var/lock/subsys/dbora fi exit fi # case $1 in 'start') $ORACLE_HOME/bin/dbstart $ORACLE_HOME & $ORACLE_HOME/bin/lsnrctl start LISTENER ;; 'stop') $ORACLE_HOME/bin/dbshut $ORACLE_HOME & rm -f /var/lock/subsys/dbora $ORACLE_HOME/bin/lsnrctl stop LISTENER ;; *) echo "usage: $0 {start|stop}" exit ;; esac # exit
En el código anterior asumo que el listener de Oracle tiene el nombre LISTENER, si es distinto deberemos cambiarlo en todas las líneas donde aparezca la palabra LISTENER.
Continuamos asignando los permisos necesarios para la correcta ejecución del nuevo script que hemos creado.
chgrp dba /etc/init.d/dbora chmod 750 /etc/init.d/dbora
Creamos los enlaces simbólicos necesarios.
ln -s /etc/init.d/dbora /etc/rc.d/rc0.d/K01dbora ln -s /etc/init.d/dbora /etc/rc.d/rc3.d/S99dbora ln -s /etc/init.d/dbora /etc/rc.d/rc5.d/S99dbora
Comprobación funcionamiento script
Podemos comprobar que el script funciona correctamente parando tanto la base de datos como el listener de la siguiente forma.
/etc/init.d/dbora stop
Y arrancándolo de nuevo.
/etc/init.d/dbora start
Y listo con estos pasos ya se iniciará de forma automática tanto nuestra base de datos como el listener de Oracle junto con el arranque del sistema operativo.
Espero os haya sido de utilidad.
Entradas relacionas
Me dedico a la Administración de Sistemas y he creado este blog para compartir mis conocimientos con toda la comunidad y así aportar mi granito de arena y ayudar a todo el que lo necesite.
Muchas gracias por tan excelente tutorial.
Me alegro te haya sido de utilidad 😉