2010-05-21

Automatischer Start von Listener, DB Instanz und Database Control

Unter Windows als Serverbetriebssystem ist der automatische Start von Listener, DB Instanz und Database Control kein Thema. Hier sind diese Komponenten durch die Installation als Windows Dienste definiert, die beim Start des Servers automatisch mit gestartet werden.

Unter Linux / Unix sieht das anders aus. Der der automatische Start von Listener, DB Instanz und Database Control muss vom Administrator manuell eingerichtet werden. Dies soll hier kurz am Beispiel einer Datenbank Namens demo beschrieben werden, die in einer VMware Umgebung mit Oracle Enterprise Linux 5 und Oracle Datenbank Software 11g Rel.2 eingerichtet ist:

  1. Zunächst in /etc/oratab den Eintrag zur Instanz demo auf Autostart setzen, dazu in der letzten Spalte den Wert N auf Y abändern.
    vi /etc/oratab
    alte Zeile:
    demo:/u01/app/oracle/product/11.2.0/db_1:N
    ersetzen durch:
    demo:/u01/app/oracle/product/11.2.0/db_1:Y
  2. Dann folgendes Start/Stop Skript für den Oracle Service in /etc/init.d erstellen.
    vi /etc/init.d/dbora
    Datei mit folgendem Inhalt erstellen:
    #!/bin/bash
    #
    # oracle Init file for starting and stopping
    # Oracle Database and Listener. Script is valid for 10g and 11g versions.
    #
    # chkconfig: 35 99 80
    # description: Oracle Database startup script

    # Change the value of ORACLE_OWNER to the login name of the
    # oracle owner at your site.
    #
    ORACLE_OWNER=oracle

    # Change the value of ORACLE_HOME to specify the correct Oracle home
    # directory for your listener installation.
    ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

    case $1 in
    'start')
            su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
            su - $ORACLE_OWNER -c "export ORACLE_SID=demo; $ORACLE_HOME/bin/emctl start dbconsole"
            touch /var/lock/subsys/dbora
            ;;
    'stop')
            su - $ORACLE_OWNER -c "export ORACLE_SID=demo; $ORACLE_HOME/bin/emctl stop dbconsole"
            su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
            rm -f /var/lock/subsys/dbora
            ;;
    *)
            echo "usage: $0 {start|stop}"
            exit
            ;;
    esac
    #
    exit
  3. Die die Rechte des Skripts dbora anpassen und dieses zum Start in den entsprechenden Runleveln hinzufügen.
    chmod 750 /etc/init.d/dbora
    chkconfig --add dbora --level 35
  4. Reboot der VM bzw. des Servers als root durchführen, um zu testen, dass der Listener und die Instanz der Datenbank sauber starten.
    reboot

Die Konfiguration des automatischen DB Starts mit diesem Skript funktioniert auch mit Oracle Versionen 11gR1 und 10g. Mit Oracle 11gR2 gibt es Oracle Restart als eine neue Option der Oracle Grid Infrastruktur, die ebenfalls den automatischen Start der wichtigsten Oracle DB Komponenten in einer Einzel-Server/-Instanz Umgebung realisiert.

Der automatische Start von Listener und DB Instanz mittels Oracle Restart wird in einem folgenden Post beschrieben.

Keine Kommentare:

Kommentar veröffentlichen