Capitolo 4. Servizi del Database

Questo capitolo contiene le istruzioni per la configurazione di Red Hat Enterprise Linux per rendere i servizi del database altamente disponibili.

NotaNota
 

Le seguenti descrizioni riportano un esempio su come configurare un database. Fare attenzione alle differenze esistenti nelle nuove versioni di ogni database. Di conseguenza questa informazione potrebbe non essere applicabile.

4.1. Impostare un servizio Oracle

Un servizio del database puó inoltrare informazioni altamente disponibili ad una applicazione del database. L'applicazione provvede ad un accesso di rete ai sistemi che usano il database, come i Web server. Se il servizio subisce un fail over, l'applicazione puó accedere ai dati comuni del database attraverso un nuovo sistema del cluster. Un indirizzo IP viene assegnato ad un servizio database accessibile via rete, il quale segue una procedura fail over assieme al servizio, per mantenere un facile accesso per gli utenti.

Questa sezione fornisce un esempio su come impostare un servizio del cluster per un database di Oracle. Anche se le variabili usate nel servizio degli script dipendono dalla configurazione specifica di Oracle, l'esempio puó aiutare ad impostare un servizio per ambienti individuali. Consultare la Sezione 4.2 per informazioni inerenti al miglioramento delle prestazioni del servizio.

Nell'esempio che segue:

Create una configurazione utente/gruppo costante, in grado di accedere al servizio di Oracle per ogni sistema del cluster, Per esempio:

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

L'esempio inerente il servizio di Oracle, usa tre script che devono essere posizionati nel /hime/oracle e posseduti dal conto di gestione di Oracle. Lo script di oracle é usato per iniziare o terminare il servizio Oracle. Specificare lo script quando il servizio viene aggiunto. Questo script richiama l'esempio degli altri script di Oracle. Lo script startdb e lo script stopdb iniziano e arrestano il database. Lo script startdbi e lo script stopdbi iniziano e terminano il database. Notate che ci sono modi diversi per un'applicazione di interagire con il database di Oracle.

Il seguente é un esempio dello script oracle, usato per iniziare, arrestare e controllare lo stato del servizio di 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

Il seguente é un esempio dello script startdb, usato per iniziare l'Oracle Database Server instance:

#!/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

Il seguente é un esempio dello script stopdb, usato per terminare l'Oracle Database Server instance:

#!/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 il Tool di configurazione del Cluster

Per aggiungere un servizio Oracle usando Tool di configurazione del Cluster, eseguire quanto segue:

  1. Avviare Tool di configurazione del Cluster selezionando Menu Principale => Impostazioni del sistema => Impostazioni del Server => Cluster, oppure digitando redhat-config-cluster al prompt di una shell. Per default Tool dello stato del Cluster apparirà per default.

  2. Avviare il Tool di configurazione del Cluster selezionando Cluster => Configura dai menu del Tool dello stato del Cluster.

  3. Fate clic sulla tabella Servizi

  4. Aggiungere il servizio Oracle.

    • Fate clic su Nuovo. Apparirà la finestra di dialogo Servizio.

      Figura 4-1. Aggiungere un servizio Oracle

    • Inserire un Nome del servizio per il servizio Oracle.

    • Selezionare un Dominio di Failover o lasciarlo come None.

    • Digitare una quantità (in secondi), per controllare lo stato di salute del servizio di Oracle attraverso la funzione status dello script init.

    • Inserire uno Script dell'utente, come ad esempio /home/oracle/oracle.

    • Fate click su OK

  5. Aggiungere un indirizzo IP per il servizio di Oracle.

    • Selezionare il servizio di Oracle e fate clic su Aggiungi figlio.

    • Selezionare Aggiungere l'indirizzo IP del servizio e fate clic su OK. Apparirà la finestra di dialogo Indirizzo IP del servizio.

    • Inserire un Indirizzo IP.

    • Inserire una Maschera di rete, o lasciarla su None.

    • Inserire un Indirizzo Broadcast, o lasciarlo su None.

    • Fate clic su OK.

  6. Aggiungere un dispositivo per il servizio di Oracle e per i file amministrativi.

    • Selezionare il servizio di Oracle e fate clic su Aggiungi figlio.

    • Selezionate Aggiungi dispositivo e fate clic su OK. Apparirà una finestra di dialogo Dispositivo.

    • Inserire il File speciale del dispositivo (per esempio, /dev/sdb5).

    • Nel campo Mount Point, inserire /u01.

    • Selezionare il tipo di file system in Tipo di FS, o lasciarlo vuoto.

    • Inserire qualsiasi mount point Opzioni, incluso rw (lettura-scrittura).

    • Selezionate o deselezionate Forzare l'unmount.

    • Fate clic su OK.

  7. Aggiungere un dispositivo per i file del database di Oracle.

    • Selezionare il servizio di Oracle e fate clic su Aggiungi figlio.

    • Selezionate Aggiungi dispositivo e fate clic su OK. Apparirà una finestra di dialogo Dispositivo.

    • Inserire il File speciale del dispositivo (per esempio, /dev/sdb6).

    • Nel campo Mount Point, inserire /u02.

    • Selezionare il tipo di file system in Tipo di FS, o lasciarlo vuoto.

    • Inserire qualsiasi mount point Opzioni, incluso rw (lettura-scrittura).

    • Selezionate o deselezionate Forzare l'unmount.

    • Fate clic su OK.

  8. Selezionare File => Salva per salvare il servizio di Oracle.