
Das IT-Magazin der ORDIX AG mit Fachbeiträgen zu Datenbanken, Unix und Java/XML.
| Erschienen in der Zeitschrift der Deutschen Oracle-Anwendergruppe "DOAG News", Ausgabe Q2/2003 |
In vielen Projekten stehen wir vor der Frage, ob sich der Einsatz einer Standby-Datenbank lohnt, denn der Einsatz erfolgt sinnvollerweise nur mit zusätzlicher Hardware. Viele Kunden haben darüber hinaus spezielle Anforderungen, die unter den Stichworten Backup, Hochverfügbarkeit (Switch Over), produktive, parallele Nutzung der Standby Datenbank und schnelles Recovery nach logischen Fehlern zusammengefasst werden können.
1. Backup Konzept: Hiermit ist eine Nutzung der Standby Datenbank als alternative Backuplösung gemeint, um den Online Betrieb nicht durch zusätzliche Backup-Aktivitäten zu beeinträchtigen. Es gibt Kunden, die über dieses Szenario ihre Sicherung fahren wollen.
2. Hochverfügbarkeitslösung: Nutzung der Standby Datenbank als Hochverfügbarkeitslösung anstelle eines Einsatzes von OPS/RAC.
3. Möglichkeit eines externen Reportings: Wenn schon eine Kopie der Datenbank auf einem fremden Rechner vorhanden ist, so sollte der Datenbestand auch z. B. für Auswertungen genutzt werden können.
4. Delay: Für viele Kunden ist es wichtig, einen zweiten Bestand zu haben, der zeitverzögert hinter dem Originalbestand hinterherläuft. Durch diese Funktionalität sollen logische Fehler schneller abgefangen werden können, also das Point-In-Time-Recovery schneller möglich sein.
5. Switch Over: Der problemlose Tausch des Originalsystems mit dem Standby-System sollte möglichst ohne Downtime erfolgen können.
In diesem Artikel werden nun die einzelnen Releases von Oracle unter dem Aspekt der Erfüllung dieser definierten Forderungen betrachtet; angefangen mit der Version 7.3, über 8.0 und 8.1 zu 9.0 und schließlich zu Version 9.2.
In der Oracle-Version 7.3 wurde erstmals die Standby-Datenbank eingeführt, in der Version 8.0 funktional aber nur ein wenig erweitert.
| |
| Abb. 1: Installation und Ablauf einer Standby-Datenbank in Version 7.3/8.0. |
Um eine solche Standby-Datenbank aufzusetzen, muss man folgendermaßen vorgehen:
1. Backup einspielen: Auf dem Standby-Server wird eine Kopie der Produktions-Datenbank eingespielt. Hierbei kann es sich um ein Offline- oder ein Onlinebackup handeln. Eingespielt werden alle Data Files des Originalsystems.
2. Init.ora kopieren: Die init.ora kann ohne Veränderung auf das Standby-System übertragen werden.
3. Standby Controlfiles erzeugen: Für das Standby-System müssen aus dem Original heraus Standby Controlfiles erzeugt und anschließend zum Standby-Server übertragen werden.
alter database create standby controlfile as ‘...‘;
Diese erzeugte Datei wird auf der Standby-Seite an alle Stellen übertragen, auf die in der init.ora verwiesen wird.
4. Instance starten: Die Instance (Standby) wird in die NOMOUNT-Phase gebracht und die Standby-Datenbank wird anschließend gemountet.
startup nomount; alter database mount standby database;
Die Grundfunktionalität ist somit installiert. Nun müssen die archivierten RedoLog-Dateien das vollständig übertragen und eingespielt werden:
recover standby database;
Dies wird üblicherweise auch über ein Skript realisiert.
Entscheidet der Administrator, dass die Standby-Datenbank die Funktionalität des Originalsystems übernehmen soll, muss folgendes Verfahren angewendet werden:
1. RedoLogs nachfahren
Kopieren und Nachfahren aller noch nicht übertragenen und eingespielten, archivierten RedoLog-Dateien und Online RedoLog-Dateien in die Standby-Datenbank. Soweit möglich und soweit gewollt, wird dies vollzogen.
2. Aktivieren der Standby-Datenbank
Die Standby-Datenbank wird zur Original-Datenbank. Das geschieht mit dem Kommando
alter database activate standby database;
3. Herunterfahren der Standby-Datenbank
Die Datenbank wird heruntergefahren und kann dann als normale Datenbank neu gestartet werden.
4. Backup der neuen Produktions-Datenbank
Vor Produktionsübergabe ist ein neues Backup zwingend erforderlich, da nach einem eventuellen Crash vor einem Backup keine Basis für ein Recovery vorhanden ist.
5. Hochfahren der neuen Produktions-Datenbank
Die Datenbank kann jetzt für die Anwender wieder geöffnet werden. Es muss jedoch eine Planung vorliegen, wie die Clients möglichst problemlos das neue System finden. Hier gibt es diverse Möglichkeiten:
Anschließend muss ein neues Standby-System aufgebaut werden.
Die Überwachung des Standby Systems stellt an den zuständigen Administrator gewisse organisatorische Anforderungen:
Änderungen an der physikalischen Struktur der Datenbank führen zu Fehlern beim Einspielen der archivierten RedoLog-Dateien. Wird auf dem Originalsystem eine neue Datendatei erzeugt, so muss diese zunächst auf dem Standby-System kreiert werden:
alter database create datafile as ‘...‘;
Wird dieser Schritt unterlassen, läuft das Recovery zunächst auf einen Fehler. Das Anlegen muss dann im Nachhinein vollzogen werden.
In der Version 8.1 sind einige Modifikationen vorgenommen worden, die den Ablauf teilweise erleichtert haben. Abb. 2 zeigt den grundsätzlichen Ablauf.
| |
| Abb. 2: Ablauf in der Version 8.1. |
In dieser Version sind zwei grundsätzliche Funktionalitäten hinzugekommen:
Die Übertragung der archivierten RedoLog-Dateien kann direkt über den ARCH Prozess durchgeführt werden.
1.) Dazu sind in der init.ora des Originalsystems folgende Einträge notwendig:
log_archive_dest_1=‘Location=...‘ log_archive_dest_2= ‘Service=<tns_alias>‘
3.) Die init.ora auf der Standby-Seite muss folgenden zusätzlichen Eintrag erhalten:
standby_archive_dest=...
Weiterhin können die neuen, archivierten RedoLog-Dateien nun automatisiert in die Standby-Datenbank eingespielt werden. Dazu muss folgende Syntax genutzt werden:
recover managed standby database;
Die Überwachung des Standby-Systems stellt an den zuständigen Administrator weitere organisatorische Anforderungen:
1.) Änderungen an der physikalischen Struktur der Datenbank führen weiterhin zu Fehlern. Hier muss manuell eingegriffen werden.
2.) Ist die Übertragungskette einmal unterbrochen, müssen die archivierten, nicht übertragenen RedoLog-Dateien manuell übertragen und eingespielt werden. Erst dann kann die automatisierte Übertragung wieder aufgesetzt werden.
In der kommenden Ausgabe werden wir die Funktionalitäten der Releases 9.0 und 9.2 unter den oben definierten Gesichtspunkten näher beleuchten.
Klaus Reimers (info@ordix.de).