Kapitel 4. Datenbank-Services

Dieses Kapitel enthält Anleitungen zur Konfiguration von Red Hat Enterprise Linux, um Datenbank-Services hochverfügbar zu machen.

AnmerkungAnmerkung
 

Die folgenden Beschreibungen stellen Beispielbeschreibungen einer Datenbank-Konfiguration dar. Nehmen Sie zur Kenntnis, dass Unterschiede zu neueren Versionen des Datenbankprodukts bestehen können. Deswegen ist diese Information nicht unbedingt direkt anwendbar.

4.1. Einrichten eines Oracle Service

Ein Datenbank Service kann hochverfügbare Daten zu einer Datenbank-Applikation liefern. Die Applikation kann dann Netzwerk-Zugriff zu Datenbank Client Systemen, wie Web-Servern, bereitstellen. Sollte ein Failover des Service auftreten, wird die Applikation auf die gemeinsamen Daten in der Datenbank über ein anderes Cluster System zugreifen. Einer Datenbank, auf welche über ein Netzwerk zugegriffen wird, wird normalerweise eine IP Adresse gegeben, welche zusammen mit dem Service im Failover-Fall umgelagert wird, was einen transparenten Zugriff für Clients darstellt.

Dieser Abschnitt enthält ein Beispiel zum Einrichten eines Cluster Service für eine Oracle Datenbank. Obwohl die Variablen, welche in den Service-Skripten verwendet sind, von der spezifischen Oracle-Konfiguration abhängen, sollte dieses Beispiel trotzdem eine Hilfe beim Einrichten von individuellen Umgebungen bieten. Sehen Sie Abschnitt 4.2 für Informationen zur Steigerung der Service Leistung.

Im folgenden Beispiel:

Erzeuge eine konsistente Benutzer/Gruppen-Konfiguration, die auf den Oracle-Service für jedes der Cluster-Systeme fehlerfrei zugreifen kann. Zum Beispiel:

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

Das Beispiel des Oracle-Service verwendet drei Skripte, die in /home/oracle abgelegt werden müssen. Diese Skripte müssen als Besitzer den Oracle Administrationsaccount haben. Das oracle-Skript wird zum Starten und Beenden des Oracle Service benutzt. Geben Sie dieses Skript beim Hinzufügen des Service an. Dieses Skript ruft die anderen Skripte im Beispiel auf. Die startdb und stopdb-Skripte starten und beenden die Datenbank.

Das Folgende ist ein Beispiel des oracle-Skripts, das zum Starten, Beenden und zur Statusüberprüfung des Oracle-Services verwendet wird:

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

Das folgende ist ein Beispiel des startdb-Skripts, welches zum Starten einer Instanz des Oracle Database Server verwendet wird:

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

Das folgende ist ein Beispiel des stopdb-Skripts, welches zum Beenden der Instanz des Oracle Database Server verwendet wird:

#!/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 und Cluster Configuration Tool

Um einen Oracle-Service mit Cluster Configuration Tool hinzuzufügen, führen Sie Folgendes aus:

  1. Starten Sie Cluster Configuration Tool indem Sie im Main Menu => System Settings => Server Settings => Cluster wählen, oder durch eingeben von redhat-config-cluster am Shell-Prompt. Cluster Status Tool erscheint als Standard.

  2. Starten Sie Cluster Configuration Tool indem Sie Cluster => Configure aus den Cluster Status Tool Menüs wählen.

  3. Klicken Sie die Services-Tab.

  4. Fügen Sie den Oracle-Service hinzu

    • Klicken Sie New. Der Service-Dialog erscheint.

      Abbildung 4-1. Hinzufügen eines Oracle Service

    • Geben Sie einen Service Name für den Oracle-Service ein.

    • Wählen Sie eine Failover Domain oder lassen Sie die Einstellung None.

    • Geben Sie die Anzahl von Sekunden in der status-Funktion des init-Skripts ein, in denen die Betriebsbereitschaft des Oracle-Service getestet werden soll.

    • Geben Sie ein User Script, wie /home/oracle/oracle an.

    • Klicken Sie OK

  5. Fügen Sie eine IP-Adresse für den Oracle-Service hinzu.

    • Wählen Sie den Oracle-Service und klicken Add Child.

    • Wählen Sie Add Service IP Address und klicken OK. Der Service IP Address-Dialog erscheint.

    • Geben Sie eine IP Address an.

    • Geben Sie eine Netmask, oder lassen Sie None stehen.

    • Geben Sie eine Broadcast Address, oder lassen Sie None stehen.

    • Klicken Sie OK.

  6. Fügen Sie ein Gerät für den Oracle-Service und administrative Dateien hinzu.

    • Wählen Sie den Oracle-Service und klicken Add Child.

    • Wählen Sie Add Device und klicken OK. Der Device-Dialog erscheint.

    • Geben Sie das Gerätedatei (z.B. /dev/sdb5) an.

    • Im Feld Mount-Punkt, geben Sie /u01 ein.

    • Wählen Sie den Typ von Dateisystem im Feld FS Type oder lassen Sie diese Einstellung leer.

    • Geben Sie jegliche Mountpunkt-Optionen ein, einschließlich rw (read-write, Lese- und Schreibzugriff).

    • Selektieren oder Deselektieren Sie Unmount erzwingen.

    • Klicken Sie OK.

  7. Fügen Sie ein Gerät für die Oracle-Datenbankdateien hinzu.

    • Wählen Sie den Oracle-Service und klicken Add Child.

    • Wählen Sie Add Device und klicken OK. Der Device-Dialog erscheint.

    • Geben Sie die Gerätedatei (z.B. /dev/sdb6).

    • Im Feld Mount-Punkt, geben Sie /u02 ein.

    • Wählen Sie den Typ von Dateisystem im Feld FS Type oder lassen Sie diese Einstellung leer.

    • Geben Sie jegliche Mountpunkt-Optionen ein, einschließlich rw (read-write, Lese- und Schreibzugriff).

    • Selektieren oder Deselektieren Sie Unmount erzwingen.

    • Klicken Sie OK.

  8. Wählen Sie Datei => Speichern, umd den Oracle-Service zu speichern.