In vielen Umgebungen ist es wünschenswert, dass die Oracle-Datenbank und der Listener beim Neustart des Servers automatisch heruntergefahren und gestartet werden. Wenn Sie diese Anforderung haben, führen Sie die nächsten Schritte aus, um das Herunterfahren und Starten Ihrer Datenbank und Ihres Listeners zu automatisieren:
Schritte zum Konfigurieren des automatischen Startens/Herunterfahrens
1. Bearbeiten Sie die Datei /etc/oratab und setzen Sie ein Y am Ende des Eintrags für die Datenbanken, die beim Systemneustart automatisch neu gestartet werden sollen. Möglicherweise benötigen Sie Root-Rechte, um die Datei zu bearbeiten:
# vi /etc/oratab [SID]:[ORACLE_HOME]:Y
Das Y am Ende der Zeichenfolge bedeutet, dass die Datenbank von den Skripten ORACLE_HOME/bin/dbstart und ORACLE_HOME/bin/dbshut gestartet und gestoppt werden kann.
Hinweis Hinweis:Bei manchen Unix-Systemen (zB Solaris) befindet sich die oratab-Datei normalerweise im Verzeichnis /var/opt/oracle.
2. Erstellen Sie das Dienstskript /etc/init.d/dbora . Der Inhalt des Skripts ist wie folgt. Stellen Sie sicher, dass Sie die Werte der Variablen ORA_HOME und ORA_OWNER entsprechend Ihrer Umgebung ändern. Dies ist ein einfaches Skript dessen, was Sie mindestens benötigen würden, um eine Datenbank und einen Listener zu stoppen und zu starten:
# vi /etc/init.d/dbora #!/bin/bash # chkconfig: 35 99 10 # description: Starts and stops Oracle processes ORA_HOME=/oracle/app/oracle/product/11.2.0/db_1 ORA_OWNER=oracle case "$1" in 'start') su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" su - $ORA_OWNER -c $ORA_HOME/bin/dbstart ;; 'stop') su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" su - $ORA_OWNER -c $ORA_HOME/bin/dbshut ;; esac # End of script dbora
Das Skript verstehen
Die Zeilen:
# chkconfig: 35 99 10 # description: Starts and stops Oracle database
sind obligatorisch und nicht nur Kommentare, da sie die Merkmale des Dienstes beschreiben, wobei:
- 35 bedeutet, dass der Dienst in den Init-Ebenen 3 und 5 gestartet und in anderen Ebenen gestoppt wird.
- 99 bedeutet, dass der Dienst fast am Ende der Init-Level-Verarbeitung gestartet wird
- 10 bedeutet, dass der Dienst kurz vor Beginn der Init-Level-Verarbeitung gestoppt wird
Der Rest des Skripts ist ziemlich einfach zu verstehen. Der erste Fall startet den Listener/DB, während der 2. Fall ihn stoppt. Führen Sie die folgenden Schritte aus, um das Skript ausführbar zu machen und die automatische Ausführung beim Systemstart zu aktivieren.
Skript ausführbar machen und Ausführung beim Booten aktivieren
1. Ändern Sie die Gruppe der dbora-Datei so, dass sie mit der Gruppe übereinstimmt, die dem Betriebssystemeigentümer der Oracle-Software zugewiesen ist (normalerweise oinstall oder dba):
# chgrp dba /etc/init.d/dbora
2. Setzen Sie die Skriptberechtigungen auf 755.
# chmod 750 /etc/init.d/dbora
3. Führen Sie den folgenden chkconfig-Befehl aus:
# chkconfig --add dbora
Diese Aktion registriert den Dienst beim Linux-Dienstmechanismus. Dadurch werden auch die entsprechenden symbolischen Links zu Dateien unterhalb des Verzeichnisses /etc/rc.d erstellt. Verwenden Sie die Option –list, um anzuzeigen, ob ein Dienst für jeden Runlevel ein- oder ausgeschaltet ist:
# chkconfig --list | grep dbora dbora 0:off 1:off 2:off 3:on 4:off 5:on 6:off
Diese Ausgabe zeigt an, dass der dbora-Dienst für die Runlevel 3 und 5 aktiviert ist. Wenn Sie einen Dienst löschen müssen, verwenden Sie –del Option von chkconfig.
Testen des Skripts
1. Um zu testen, ob das dbora-Skript funktioniert, führen Sie als Root Folgendes aus, um Ihre Datenbank und Ihren Listener zu stoppen:
# /etc/init.d/dbora stop
2. Um den Start Ihrer Datenbank und Ihres Listeners zu testen, geben Sie als Root den folgenden Befehl ein:
# /etc/init.d/dbora start
Abschließende Gedanken
Die Automatisierung des Herunterfahrens und Hochfahrens Ihrer Oracle-Datenbank hängt davon ab, ob Sie Tools wie Cluster-Software oder ASM verwenden. Die Lösung in diesem Abschnitt zeigt die typischen Schritte zum Implementieren des Herunterfahrens und Hochfahrens Ihrer Datenbank in Szenarien, in denen Sie keine andere Software haben, die diese Aufgabe verwaltet.