Capítulo 4. Serviços de Banco de Dados

Este capítulo contém instruções para configurar o Red Hat Enterprise Linux de modo a tornar os serviços de banco de dados altamente disponíveis.

NotaNota
 

As descrições seguintes apresentam um exemplo de configuração do banco de dados. Saiba que podem existir diferenças em versões mais novas de cada produto de banco de dados. Consequentemente, estas informações talvez não sejam diretamente aplicáveis.

4.1. Configurando um Serviço Oracle

Um serviço de banco de dados pode servir dados altamente disponíveis a uma aplicação de banco de dados. A aplicação pode então prover acesso a sistemas cliente do banco de dados, como servidores web. Se o serviço falhar, a aplicação acessa os dados compartilhados do banco através do novo sistema do cluster. Um serviço de banco de dados acessível pela rede geralmente tem um endereço IP, que é passado junto ao serviço falho para manter o acesso transparente aos clientes.

Esta seção oferece um exemplo de configuração de um serviço de cluster para um banco de dados Oracle. Apesar das variáveis usadas nos scripts dos serviços dependerem da configuração específica da Oracle, o exemplo pode ajudar a configurar o serviço para ambientes individuais. Consulte a Seção 4.2 para mais informações sobre a melhora no desempenho do serviço.

No exemplo a seguir:

Crie uma configuração consistente de usuário/grupo, que possa acessar o serviço Oracle apropriadamente, para cada sistema do cluster. Por exemplo:

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

O exemplo do serviço Oracle usa três scripts que devem ser alocados no /users/oracle e de propriedade da conta do administrador Oracle. O script oracle é usado para iniciar e parar o serviço Oracle. Especifique este script ao adicionar o serviço. Este script chama os outros exemplos de scripts Oracle. Os scripts startdb e stopdb iniciam e páram o banco de dados. Note que há diversas maneiras de uma aplicação interagir com um banco de dados Oracle.

Veja a seguir um exemplo de script oracle, usado para iniciar, parar e verificar o estado do serviço 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

Veja a seguir um exemplo do script startdb, usado para iniciar a instância do Servidor de Banco de Dados 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

Veja a seguir um exemplo do script stopdb, usado para parar a instância do Servidor de Banco de Dados 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 e a Ferramenta de Configuração do Cluster

Para adicionar um serviço Oracle usando a Ferramenta de Configuração do Cluster, faça o seguinte:

  1. Inicie a Ferramenta de Configuração do Cluster selecionando Menu Principal => Configurações do Sistema => Configurações do Servidor => Cluster ou digitando redhat-config-cluster em uma janela de comandos. A Ferramenta de Estado do Cluster aparece por default.

  2. Inicie a Ferramenta de Configuração do Cluster selecionando Cluster => Configurar pelos menus da Ferramenta de Estado do Cluster.

  3. Clique na aba Serviços.

  4. Adicione um serviço Oracle.

    • Clique em Novo. Aparece o diálogo Serviço.

      Figura 4-1. Adicionando um Serviço Oracle

    • Indique um Nome do Serviço para o serviço Oracle.

    • Selecione um Domínio de Transferência ou deixe como Nenhum (None).

    • Digite o número de segundos para verificar a saúde do serviço Oracle através da função status do script init.

    • Indique um Script de Usuário, como o /home/oracle/oracle.

    • Clique em OK

  5. Adicione um endereço IP para o serviço Oracle.

    • Selecione o serviço Oracle e clique em Adicionar Filho.

    • Selecione Adicionar Endereço IP do Serviço e clique em OK. Aparece o diálogo Endereço IP do Serviço.

    • Indique um Endereço IP.

    • Indique uma Máscara de Rede ou deixe o campo como Nenhum (None).

    • Indique um Endereço de Transmissão ou deixe-o como Nenhum (None).

    • Clique em OK.

  6. Adicione um dispositivo para o serviço Oracle e arquivos administrativos.

    • Selecione o serviço Oracle e clique em Adicionar Filho.

    • Selecione Adicionar Dispositivo e clique em OK. Aparece o diálogo Dispositivo.

    • Indique um Arquivo Especial de Dispositivo (ex.: /dev/sdb5).

    • No campo Ponto de Montagem, indique /u01.

    • Selecione o tipo de sistema de arquivo em Tipo de Sistema de Arquivo ou deixe-o em branco.

    • Indique quaisquer Opções de ponto de montagem, incluindo rw ('read-write' - leitura e gravação).

    • Selecione ou desselecione Forçar Desmontagem.

    • Clique em OK.

  7. Adicione um dispositivo para os arquivos do banco de dados Oracle.

    • Selecione o serviço Oracle e clique em Adicionar Filho.

    • Selecione Adicionar Dispositivo e clique em OK. Aparece o diálogo Dispositivo.

    • Indique o Arquivo Especial do Dispositivo (ex.: /dev/sdb6).

    • No campo Ponto de Montagem, insira /u02.

    • Selecione o tipo de sistema de arquivo em Tipo de Sistema de Arquivo ou deixe-o em branco.

    • Indique quaisquer Opções de ponto de montagem, incluindo rw ('read-write' - leitura e gravação).

    • Selecione ou desselecione Forçar Desmontagem.

    • Clique em OK.

  8. Selecione Arquivo => Salvar para salvar o serviço Oracle.