Inhaltsbereich

Oracle Restart

Oracle Restart implementiert eine Hochverfügbarkeitskomponente für Single Datenbankinstanzen. Es stellt das automatisierte Starten und Wiederstarten von Ressourcen wie Instanzen, Services und Automatic Storage Management (ASM) disk groups zu Verfügung.

Die Tools SRVCTL (Server Control) sowie CRSCTL (Clusterware Services Control) sind die Werkzeuge für die Administration und Konfiguration des Oracle Real Application Clusters (RAC) und der Clustersoftware in Oracle 10gR2. Neben Starten und Stoppen von Ressourcen wie OCR, Listener, ASM oder Instanzen, können im RAC-Umfeld auch Stati abgefragt werden. 

In Oracle 11gR2 sind nun diese Werkzeuge auch in der Single Instanz unter "Oracle Restart" verfügbar. Werden die Tools zum Starten und Stoppen eingesetzt, wird einerseits die Installation vereinfacht, andererseits werden die für den Betrieb relevanten Komponenten überwacht und im Fehlerfall ohne manuellen Eingriff neu gestartet.

 

 

Installation:

Die Installation erfolgt mit der für eine Single Instanz optionalen Grid Infrastrukur-Installation. In Oracle 11g sind ASM und Clusterware in der Grid Infrastruktur zusammengefasst, die in ein eigenes Home (Grid-Home) und optional auch unter dem dafür vorgesehen Betriebssystemuser grid installiert werden. Wird die Grid-Infrastruktur nicht mit dem gleichen User wie die der Datenbanksoftware installiert, spricht man von einer "Job Separation", da unterschiedliche User bzw. Gruppen für unterschiedliche Aufgaben vorgesehen sind. Grid ist für den Clusterbetrieb, Oracle für die Datenbanken zuständig.
Der interne Begriff für "Oracle Restart" ist "Oracle High Availability Service" (OHAS). Der OHAS-Daemon OHASD wird in /etc/init.d/ohasd angelegt und durch den User root beim Booten gestartet.
Mit diesem Wissen ist es auch im Fehlerfall bei "Oracle Restart" leichter an Informationen zu kommen.
Die entsprechende Logdatei ohasd.log wird in$GRID_HOME/log/<hostname>/ohasd/ohasd.log
Ein Nachteil an diesem Speicherort ist nach Meinung des Autors die Tatsache, dass das Log nicht Bestandteil des Diagnostic Frameworks ist, was mit der Trennung von Datenbank und Grid Infrastruktur zusammenhängt

 

 

Aufgaben:

Folgende Komponenten können via Oracle Restart gestartet und überwacht werden:

  • Datenbankinstanzen
    Dabei werden automatisch Abhängigkeiten berücksichtigt wie z.B. eine notwendige ASM-Instanz.
  • Listener
  • Datenbankservices
  • ASM (Automatic Storage Management)
  • Oracle Notification Service (ONS): In einer DataGuard-Umgebung kann ONS eingesetzt werden, um automatisch ein Failover zwischen Primär- und Standby-Instanz einzuleiten. Auch hier werden entsprechende Abhängigkeiten aufgelöst und entsprechend berücksichtigt.

Mit Starten ist damit nicht nur ein Wiederstarten im Falle eines Ausfalles gemeint, sondern auch generell das Starten der Komponenten beim Booten des Rechners. Es ist somit also auch nicht mehr notwendig einen Service (normalerweise /etc/init.d/dbora) zu generieren, der im entsprechenden Run-Level die Datenbanken startet und stoppt. Da die Konfiguration mittels srvctlvorgenommen und dies in dessen Repository gespeichert wird, ist auch kein Eintrag in der/etc/oratab mehr notwendig.
Auch das normale Starten und Stoppen von Komponenten kann mittels srvctl vorgenommen werden (z.B. um einen Patch einzuspielen.) Dabei registriert Oracle Restart, dass die Komponente bewusst vom Datenbankadministrator geschlossen wurde und leitet somit keinen Neustart ein. Auch wenn mittels dbconsole oder sqlplus die Instanz gestoppt wird, wird dies entsprechend berücksichtigt.
Im Folgenden die Syntax und einige Beispiele für die Tools srvctl und crsctl:

 

Srvctl:

Die generelle Syntax lautet:
srvctl Kommando Komponente Option
Kommando ist ein Befehl wie add, start, stop oder remove
Komponente ist die entsprechende Komponente auf die der Befehl angewendet wird wie asm oder database
Mit Optionen sind genauere Einschränkungen oder Spezifikationen gemeint. Da es eine Vielzahl von Befehlen und Möglichkeiten gibt, sei hier im Detail auf die Oracle-Dokumentation hingewiesen. 1
Beispiele:
srvctl add database -d gis11 -o $ORACLE_HOME -m exirius.local -r primary -s open -t immediate -a DATA
Die Primärdatenbank gis11 wird in die Konfiguration aufgenommen und somit durch Oracle Restart überwacht.
Die Abhängigkeit der ASM-Gruppe DATA wird bekannt gemacht. Die Konfiguration kann mit folgendem Befehl abgefragt werden:
[oracle@ora11 ~]$ srvctl config database -d gis11
Eindeutiger Datenbankname: gis11
Datenbankname:
Oracle-Standardverzeichnis: /opt/oracle/product/11.2.0/db_1
Oracle-Benutzer: grid
Spfile: 
Domain: gismobil.local
Startoptionen: open
Stoppoptionen: immediate
Datenbankrolle: primary
Verwaltungs-Policy: AUTOMATIC
Plattengruppen: DATA
Services:
Alle nicht angegebenen Parameter bleiben frei. Hier wird zum Beispiel wird kein spfile eingesetzt.
Austesten kann man die Überwachung der Komponente folgendermaßen: Man beobachtet mit "tail" die Alert-log-Datei der Datenbank und beendet ("killt") den PMON-Prozess der Instanz. Innerhalb kurzer Zeit erkennt man an der Alert-Log wie von "Oracle Restart" die Instanz wieder geöffnet.
Mittels 
srvctl Stop database -d gis11
wird die Instanz gestoppt. Dies ist also eine Alternative zum Anmelden mit sqlplus / as <sysdba|sysoper>
und dem Absetzen des SQL-Plus-Befehles shutdown immediate.
Den Listener kann man mit folgendem Kommando in Oracle Restart aufnehmen:
srvctl add listener -p TCP:1521 -o /opt/oracle/product/11.2.0/db_1
srvctl bietet eine auf das entsprechende Kommando bezogene Hilfe an:
srvctl -h
srvctl add -h
srvctl add service -h
nehmen Bezug auf die entsprechende Ebene des Befehles.
Ist Oracle Restart installiert und installiert man Komponenten wie dbca, emca, netca oder asmca mit den entsprechenden bereitgestellten Oberflächen, so müssen diese nicht manuell in Oracle Restart hinzugefügt werden. Dies geschieht automatisch im Hintergrund.

 

Crsctl:

Crsctl Kommando has
Dabei sind folgende Kommandos möglich:
check: Zeigt den Oracle Restart Status.
config: Zeigt die Oracle Restart Konfiguration.
disable: Ausschalten von Oracle Restart.
enable: Einschalten von Oracle Restart
start: Starten von Oracle Restart
stop: Stoppen von Oracle Restart
status: Zeigt den Status der Komponenten an
Z.B. 
grid@ora11.exirius.local ~ > crsctl status resource -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE ora11
ora.LISTENER.lsnr
ONLINE ONLINE ora11
ora.asm
ONLINE ONLINE ora11 Started
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
1 ONLINE ONLINE ora11
ora.diskmon
1 ONLINE ONLINE ora11
ora.gis11.db
1 ONLINE ONLINE ora11 Open
Der vielfach benutzte crs_stat- Befehl wird zwar offiziell nicht mehr unterstützt, funktioniert aber weiterhin tadellos.
grid@ora11.exirius.local ~ > crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.DATA.dg ora....up.type ONLINE ONLINE ora11
ora....ER.lsnr ora....er.type ONLINE ONLINE ora11
ora.asm ora.asm.type ONLINE ONLINE ora11
ora.cssd ora.cssd.type ONLINE ONLINE ora11
ora.diskmon ora....on.type ONLINE ONLINE ora11
ora.gis11.db ora....se.type ONLINE ONLINE ora11
Werden hier auch die entsprechenden ASM-Diskgruppen aufgeführt, muss auch der ASM-Parameter asm_diskgroups nicht mehr gesetzt werden.

 

Rechte bei Job Separation:

Wurde bei Oracle RAC 10g noch der Betriebssystemuser root benötigt, um die Clustersoftware zu konfigurieren und bedienen, ist das bei Oracle 11g nicht mehr notwendig. Wie eingangs erwähnt kann man Job Separation einsetzen indem man die Oracle Grid Infrastruktur mit dem User grid installiert und die Oracle Datenbanksoftware mit oracle. Das Tool srvctl ist dann normalerweise das Werkzeug von Oracle, das crsctl das Werkzeug von grid. Man muss die Datenbank mit dem User oracle und dem Datenbank-Home der Datenbank einfügen. Damit der grid-User allerdings dann die Datenbank starten kann, muss er der Gruppe dba zugeordnet werden, was für den User grid in der Theorie nicht vorgesehen ist.

 

Fazit:

Oracle Restart homogenisiert Oracle RAC und Single Instanz. Dem Grid-Gedanke wird somit Rechnung getragen. Datenbankinstallationen werden transparenter, da keine eigens geschriebenen Dienste mehr eingesetzt werden müssen. Ein dickes Plus ist die Erhöhung der Verfügbarkeit sowie die Auflösung von Abhängigkeiten. Eventuell als Nachteil anzusehen ist, dass man durch die Trennung von Grid Infrastruktur und Datenbanksoftware 2 Oracle-Homes hat, die dann auch beide gepflegt werden müssen. 

 

 

Rechter Inhaltsbereich

eXirius IT Dienstleistungen GmbH
Juchem-Straße 24
66571 Eppelborn

Telefon: +49 (6881) 99 99 5 - 0
Fax:        +49 (6881) 99 99 5 - 77

E-Mail: info(at)exirius.de