Capítulo 4. Servicios de bases de datos

Este capítulo contiene instrucciones para la configuración de Red Hat Enterprise Linux para hacer los servicios de base de datos altamente disponibles.

NotaNota
 

Las descripciones siguientes presentan instrucciones de ejemplo de configuraciones de bases de datos. Tenga en cuenta que pueden existir diferencias en versiones más recientes de cada producto de base de datos. En consecuencia, esta información puede no ser aplicable directamente.

4.1. Configurando un servicio Oracle

Un servicio de base de datos puede servir data de alta disponibilidad a una aplicación de base de datos. La aplicación puede luego proveer acceso a la red a sistemas clientes, tales como servidores Web. Si el servicio hace un fail over, la aplicación accesará la base de datos compartida a través del nuevo sistema cluster. A un servicio de base de datos accesible a la red, se le asigna una dirección IP, la cual también se transferirá en caso de fail over del servicio para así mantener acceso transparente a los clientes.

Esta sección proporciona un ejemplo del establecimiento de un servicio cluster para una base de datos Oracle. Aún cuando las variables usadas en los scripts del servicio dependen de la configuración específica de Oracle, este ejemplo puede ser de ayuda en la configuración de un servicio para ambientes individuales. Consulte la Sección 4.2 para información sobre como mejorar el rendimiento de un servicio.

En el ejemplo que sigue:

Cree una configuración de usuario/grupo consistente que pueda acceder apropiadamente el servicio Oracle para cada sistema cluster. Por ejemplo:

mkdir /users
groupadd -g 900 dba
groupadd -g 901 oinstall
useradd -u 901 -g 901 -d /users/oracle -m oracle
usermod -G 900 oracle

El ejemplo del servicio Oracle utiliza tres scripts que deben ser colocados en /home/oracle y deben ser propiedad de la cuenta de administración Oracle. El script oracle es usado para arrancar y detener el servicio Oracle. Especifique este script cuando agregue el servicio. Este script llama a los otros scripts Oracle de ejemplo. Los scripts startdb y stopdb arrancan y detienen la base de datos. Note que hay muchas formas en las que una aplicación puede interactuar con una base de datos Oracle.

El siguiente es un ejemplo del script oracle, el cual es usado para arrancar, detener y verificar el estado de un servicio Oracle.

#!/bin/sh
#
# Cluster service script to start, stop, and check status of oracle
#

cd /users/oracle

case $1 in
start)
    su - oracle -c ./startdb
    ;;
stop)
    su - oracle -c ./stopdb
    ;;
status)
    status oracle
    ;; 
esac

El siguiente es un ejemplo del script startdb, el cual es usado para arrancar el Servidor de Bases de Datos Oracle:

#!/bin/sh
#

#
# Script to start the Oracle Database Server instance.
#
########################################################################
#
# ORACLE_RELEASE
#
# Specifies the Oracle product release.
#
########################################################################

ORACLE_RELEASE=9.2.0

########################################################################
#
# ORACLE_SID
#
# Specifies the Oracle system identifier or "sid", which is the name of
# the Oracle Server instance.
#
########################################################################

export ORACLE_SID=TEST

########################################################################
#
# ORACLE_BASE
#
# Specifies the directory at the top of the Oracle software product and
# administrative file structure.
#
########################################################################

export ORACLE_BASE=/u01/app/oracle

########################################################################
#
# ORACLE_HOME
#
# Specifies the directory containing the software for a given release.
# The Oracle recommended value is $ORACLE_BASE/product/<release>
#
########################################################################

export ORACLE_HOME=/u01/app/oracle/product/${ORACLE_RELEASE}

########################################################################
#
# LD_LIBRARY_PATH
#
# Required when using Oracle products that use shared libraries.
#
########################################################################

export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:$LD_LIBRARY_PATH

########################################################################
#
# PATH
#
# Verify that the users search path includes $ORACLE_HOME/bin 
#
########################################################################

export PATH=$PATH:${ORACLE_HOME}/bin

########################################################################
#
# This does the actual work.
#
# Start the Oracle Server instance based on the initSID.ora
# initialization parameters file specified.
# 
########################################################################

/u01/app/oracle/product/9.2.0/bin/sqlplus << EOF
sys as sysdba
spool /home/oracle/startdb.log
startup pfile = /u01/app/oracle/product/9.2.0/admin/test/scripts/init.ora open;
spool off
quit;
EOF

exit

El siguiente es un ejemplo del script stopdb, el cual es usado para detener el servidor de Bases de Datos Oracle:

#!/bin/sh
#
#
# Script to STOP the Oracle Database Server instance.
#
######################################################################
#
# ORACLE_RELEASE
#
# Specifies the Oracle product release.
#
######################################################################

ORACLE_RELEASE=9.2.0

######################################################################
#
# ORACLE_SID
#
# Specifies the Oracle system identifier or "sid", which is the name 
# of the Oracle Server instance.
#
######################################################################

export ORACLE_SID=TEST

######################################################################
#
# ORACLE_BASE
#
# Specifies the directory at the top of the Oracle software product
# and administrative file structure.
#
######################################################################

export ORACLE_BASE=/u01/app/oracle

######################################################################
#
# ORACLE_HOME
#
# Specifies the directory containing the software for a given release.
# The Oracle recommended value is $ORACLE_BASE/product/<release>
#
######################################################################

export ORACLE_HOME=/u01/app/oracle/product/${ORACLE_RELEASE}

######################################################################
#
# LD_LIBRARY_PATH
#
# Required when using Oracle products that use shared libraries.
#
######################################################################

export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:$LD_LIBRARY_PATH

######################################################################
#
# PATH
#
# Verify that the users search path includes $ORACLE_HOME/bin 
#
######################################################################

export PATH=$PATH:${ORACLE_HOME}/bin

######################################################################
#
# This does the actual work.
#
# STOP the Oracle Server instance in a tidy fashion.
# 
######################################################################

/u01/app/oracle/product/9.2.0/bin/sqlplus << EOF
sys as sysdba
spool /home/oracle/stopdb.log
shutdown abort;
spool off
quit;
EOF

exit

4.1.1. Oracle y la Herramienta de configuración del cluster

Para añadir un servicio Oracle usando la Herramienta de configuración del cluster, haga lo siguiente:

  1. Inicie la Herramienta de configuración del cluster seleccionando Menú Principal => Configuración del sistema => Configuración de servidores => Cluster o escribiendo redhat-config-cluster en el indicador de comandos. Aparecerá la Herramienta de estado del cluster por defecto.

  2. Inicie la Herramienta de configuración del cluster seleccionando Cluster => Configurar desde los menúes de la Herramienta de estado del cluster.

  3. Pulse la pestaña Servicios.

  4. Añada el servicio Oracle.

    • Pulse en Nuevo. Aparece la ventana de diálogo Servicio.

      Figura 4-1. Añadir un servicio Oracle

    • Introduzca un Nombre de servicio para el servicio Oracle.

    • Seleccione un Dominio de failover o déjelo como Ninguno.

    • Escriba una cantidad (segundos) para verificar la salud del servicio Oracle a través de la función status del script de inicio.

    • Ingrese un Script de usuario, tal como /home/oracle/oracle.

    • Pulse en OK

  5. Añada una dirección IP para el servicio Oracle.

    • Seleccione el servicio Oracle y pulse Añadir hijo.

    • Seleccione Añadir dirección IP del servicio y pulse en OK. Aparece la ventana Dirección IP del servicio.

    • Ingrese una Dirección IP.

    • Ingrese una Máscara de red o déjela como Ninguna.

    • Ingrese una Dirección de difusión o déjela como Ninguna.

    • Pulse en OK.

  6. Añada un dispositivo para el servicio Oracle y los archivos administrativos.

    • Seleccione el servicio Oracle y pulse Añadir hijo.

    • Seleccione Añadir dispositivo y pulse en OK. Aparecerá el diálogo Dispositivo.

    • Ingrese el Archivo especial de dispositivo (por ejemplo, /dev/sdb5).

    • En el campo Punto de montaje, introduzca /u01.

    • Seleccione el tipo de sistema de archivos en Tipo de FS o déjelo en blanco.

    • Ingrese las Opciones del punto de montaje, incluyendo rw (lectura-escritura).

    • Seleccione o quite la selección de Forzar el desmontaje

    • Pulse en OK.

  7. Añada un dispositivo para los archivos de bases de datos Oracle.

    • Seleccione el servicio Oracle y pulse Añadir hijo.

    • Seleccione Añadir dispositivo y pulse en OK. Aparecerá el diálogo Dispositivo.

    • Introduzca el Archivo especial de dispositivo (por ejemplo, /dev/sdb6).

    • En el campo Punto de montaje, introduzca /u02.

    • Seleccione el tipo de sistema de archivos en Tipo de FS o déjelo en blanco.

    • Ingrese las Opciones del punto de montaje, incluyendo rw (lectura-escritura).

    • Seleccione o quite la selección de Forzar el desmontaje

    • Pulse en OK.

  8. Seleccione Archivo => Guardar para guardar el servicio Oracle.