Para los que hemos realizado la instalación de la base de datos Oracle sobre linux sabemos el inicio y bajado de la base no es automatico durante el apagado y encendido del servidor.
Para que sea automatica te mostrare los pasos. Estos pasos los he probado en version 12, 18 y 19c por lo que no tendras problemas de aplicarlos.
Primero deberas validar si tienes al archivo /home/oracle/scripts/setEnv.sh, en mi caso esta es la confihuración:
[oracle@oracledb01 ~]$ cat /home/oracle/scripts/setEnv.sh
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=oracledb01
export ORACLE_UNQNAME=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3/db_home
export ORA_INVENTORY=/u01/app/oraInventory
export ORACLE_SID=orcl
export PDB_NAME=noracle
export DATA_DIR=/u01/oradata
export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
Si no lo tienes creado setEnv.sh a continuación te indico como, pero recuerda cambiar los valores de las variables de ambiente segun tu instalación:
[oracle@oracledb01 ~]$ mkdir /home/oracle/scripts
[oracle@oracledb01 ~]$ cat > /home/oracle/scripts/setEnv.sh <<EOF
# Oracle Settings
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=oracledb01
export ORACLE_UNQNAME=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3/db_home
export ORA_INVENTORY=/u01/app/oraInventory
export ORACLE_SID=orcl
export PDB_NAME=noracle
export DATA_DIR=/u01/oradata
export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
EOF
Crear referencia archivo setEnv.sh con el profile del usuario Oracle
[oracle@oracledb01 ~]$ echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile
Una vez creado setEnv.sh vamos a crear los scripts de inicio start_all.sh y de stop_all.sh
[oracle@oracledb01 ~]$ cat > /home/oracle/scripts/start_all.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES
dbstart \$ORACLE_HOME
EOF
[oracle@oracledb01 ~]$ cat > /home/oracle/scripts/stop_all.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES
dbshut \$ORACLE_HOME
EOF
Cambiamos los permisos
[oracle@oracledb01 ~]$ chown -R oracle.oinstall /home/oracle/scripts
[oracle@oracledb01 ~]$ chmod u+x /home/oracle/scripts/*.sh
Modificamos el /etc/oratab para indicar el dbstart debe considerar iniciar la instancia cambiamos
[oracle@oracledb01 ~]$ nano /etc/oratab
orcl:/u01/app/oracle/product/19.3/db_home:Y
Hasta ahi ya tenemos el script para poder bajar y subir todos los servicios de oracle por medio de scripsts. Ahora necesitamos crear el servicio de Linux para llamar a los scripts que creamos previamente. Para realizar esto crearemos un archivo para asociarlo como servicio del sistema operativo /etc/init.d/dbora
[oracle@oracledb01 ~]$ nano /etc/init.d/dbora
#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database software.
ORA_OWNER=oracle
case "$1" in
'start')
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
# Remove "&" if you don't want startup as a background process.
su $ORA_OWNER -c "/home/oracle/scripts/start_all.sh >> /home/oracle/scripts/startup_shutdown.log 2>&1" &
touch /var/lock/subsys/dbora
;;
'stop')
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su $ORA_OWNER -c "/home/oracle/scripts/stop_all.sh >> /home/oracle/scripts/startup_shutdown.log 2>&1"
rm -f /var/lock/subsys/dbora
;;
esac
Cambiamos permisos 750 del archivo /etc/init.d/dbora
[oracle@oracledb01 ~]$ chmod 750 /etc/init.d/dbora
Asocie el servicio "dbora" con los niveles de ejecución adecuados y configúrelo para que se inicie automáticamente mediante el siguiente comando
[oracle@oracledb01 ~]$ chkconfig --add dbora
Ahara si , puedes iniciar y detener los servicios de oracle como servicio dbora del systema operativo.
# service dbora start
# service dbora stop
Tambien recuerda que los servicios de oracle se levantaran de forma automatica al iniciar el servidor.
No hay comentarios:
Publicar un comentario