Oracle Standby Datenbank mit Oracle (Active) DataGuard

Ausfallsicherheit der Enterpriseklasse mit Zero Data Loss Funktion als kostenfreies Feature der Oracle Datenbank Enterprise Edition sowie der kostenpflichtigen Zusatzoption Oracle Active Data Guard.

Icon Services

Die Absicherung einer Produktivumgebung sowie die Sicherheit der Daten sind in jedem Unternehmen essentielle Themen. Die Oracle Datenbank Enterprise Edition bringt hier entsprechende Werkzeuge mit. Oracle Data Guard ist ein bekanntes und sehr weit verbreitetes Werkzeug bei Nutzern der Oracle Enterprise Edition und wurde bei Oracle 11g Datenbank mit der kostenpflichtigen Zusatzoption "Active Data Guard" sinnvoll ergänzt. Mit Einführung von Oracle 12c Datenbank kommt nun ein weiteres Feature hinzu, welches mit Active Data Guard genutzt werden kann. Es nennt sich "Active Data Guard Far Sync", es ist Oracle's Antwort auf die Frage, wie man zuverlässig Primär- und Standbydatenbanken auch über sehr große Entfernungen synchron halten kann. Insbesondere global agierende Unternehmen kennen die Herausforderungen einer stabilen und performanten WAN Strecke.

Im folgenden wollen wir alle 3 Werkzeuge kurz vorstellen.

Oracle Data Guard

Mit Oracle Data Guard - einem kostenfreien Feature der Oracle Datenbank Enterprise Edition - können Oracle Datenbanken mit einer zusätzlichen Standby-Datenbank abgesichert werden, um in einem Desasterfall die Weiterarbeit des Unternehmens zu ermöglichen. Die Standby-Umgebung kann dabei den Betrieb geplant (Switchover) oder bei einem Ausfall der Primär-Datenbank ungeplant (Failover) übernehmen.

Oracle Data Guard bietet bei dem Aufbau der Standby-Datenbank drei verschiedene Modi an:

Maximum Protection (“Zero Data Loss”)

Im Maximum Protection Modus werden Redodaten sowohl in die Redologs der primären als auch der Standbyseite geschrieben. Eine Transaktion gilt erst dann als abgeschlossen, wenn der Erhalt der Redodaten und das erfolgreiche Schreiben in die Redologs auf beiden Seiten, primary und standby, bestätigt sind. Es können auf der Primärseite also keine Transaktionen abgeschlossen werden, die nicht auch auf der Standbyseite abgeschlossen sind. Daher wird der Maximum Protection Modus auch als “Zero Data Loss” bezeichnet.

Maximum Availability

Der Maximum Availability Modus arbeitet im Grundsatz genau wie der Maximum Protection Modus, ist aber in dem Sinne fehlertoleranter, dass er das Schreiben des Redo auf Standbyseite nicht erzwingt, sondern ein Fallback auf Maximum Performance Mode durchführt, wenn die Standbyseite das Redo nicht entgegennimmt. Der Maximum Availability Modus ist also der Kompromiss aus der Sicherheit des Maximum Protection Modus und der Beeinträchtigungsfreiheit des Maximum Performance Modus. Solange die Standbydatenbank erreichbar ist, erreicht auch diese Konstellation “Zero Data Loss”. Gibt es hingegen eine Störung auf der Strecke zur Standby, wird die Konstellation im Maximum Performance Modus weiter betrieben, anstatt wie im Falle des Maximum Protection Modus die Primärdatenbank herunterzufahren.
Sowohl beim Maximum Protection Modus als auch beim Maximum Availability Modus ist zu beachten, dass sich hohe Latenzen oder schlechte Performance der Standbyseite negativ auf die commit-Performance der Primärseite auswirken. Fallback (Maximum Availability) bzw. Shutdown (Maximum Protection) erfolgen nur, wenn die Standbyseite nicht erreichbar ist und nicht, wenn sie nur "langsam" reagiert.

Maximum Performance

Auch im Maximum Performance Modus wird das Redo der Primärseite in die Redologs der Standbyseite geschrieben. Allerdings erfolgt das im Gegensatz zu den beiden anderen Modi asynchron. Die Transaktion der Primärseite wartet also nicht auf die Bestätigung des erfolgreichen Schreibens der Redodaten in die Standby Redologs. Konnte Redo nicht erfolgreich auf die Standbyseite transferiert werden, wird es später erneut geschickt. Dazu greift der Maximum Performance Modus, falls erforderlich, auch auf archivierte Redologs zurück.


 


Oracle Active Data Guard

Standby-Datenbanken werden in der Regel im Zusammenhang zu den Themen Desaster Recovery und Hochverfügbarkeit gesehen. Mit Oracle Active Data Guard – einer kostenpflichtigen Zusatzoption der Enterprise Edition – werden  die Anwendungsgebiete einer Standby-Datenbank jedoch deutlich erweitert.

Sowohl eine "herkömmliche" Standby-Datenbank als auch eine Active Data Guard Standby-Datenbank können jederzeit read-only geöffnet und so z.B. für Reporting-Zwecke genutzt werden. Die Nutzung der "Active Data Guard" Option bringt allerdings den wesentlichen Vorteil mit sich, dass die Änderungen der Primärseite weiter auf der Standbyseite angewandt wird, die Standbyseite also auch während des Lesens synchron bleibt. Eine herkömmliche Standby-Datenbank hingegen wird beim read-only Öffnen auf dem aktuellen Stand "eingefroren" und erst nach dem Verlassen des Lesemodus weiter synchronisiert.


Oracle Active Data Guard Far Sync

Bei der Nutzung des "Zero Data Loss" Modus von Oracle Data Guard erfolgt ein synchroner Redolog-Transport zwischen der Primär- und der Standby-Datenbank. Dafür muss die Primär-Datenbank auf eine Bestätigung der Standby-Datenbank warten, bevor diese weiterarbeiten kann. Je größer die Distanz zwischen Primär-Datenbank und Standby-Datenbank ist, desto höher ist die Anfälligkeit für größere Latenzen und dazu machen sich Performanceeinbußen stärker bemerkbar. Darüber hinaus ist die Primär-Datenbank darauf angewiesen, dass ihre Standby immer erreichbar ist. Andernfalls wird sie sofort heruntergefahren. Eine "Zero Data Loss" Konfiguration über WAN stellt also auch sehr hohe, in der Praxis kaum durchsetzbare, Anforderungen an die Verlässlichkeit der WAN-Strecke.

Mit der Veröffentlichtung der Oracle Datenbank 12c wird diesem Problem mit dem Feature "Active Data Guard Far Sync" entgegengewirkt. Hierzu wird ein separater "Far Sync" Server in der Nähe der Primärumgebung aufgebaut. Dieser Server hält eine abgespeckte "Far Sync" Instanz, die aus einem Standby Control File und diversen Logfiles besteht, aber keine eigene Datendateien besitzt.

Der Primärserver schreibt die Redolog-Dateien synchron in die DB-Instanz des Far Sync Servers, der seinerseits die Daten asynchron in die Datenbank des entfernten Standby-Servers schreibt. Durch diese "Zwischenpufferung" sind die Latenzen und eine Netzunterbrechung in Richtung des Standby-Servers nicht mehr problematisch.

Natürlich empfiehlt es sich, auch für den entfernten Standby-Server eine Far Sync Instanz am entfernten Standort zu erstellen, damit nach einem Switchover weiterhin vom "Far Sync" Feature - dann in der Gegenrichtung - profitiert werden kann.

Für die Server, auf denen die "Far Sync" Instanzen eingesetzt werden, ist keine zusätzliche Lizenzierung erforderlich, allerdings müssen für die Primärumgebung und die eigentliche Standby-Umgebung dieser Data Guard Konfiguration neben den Oracle Datenbank Enterprise Edition Lizenzen entsprechende Oracle Active Data Guard Lizenzen bereitgestellt werden.

Aktuelle Meldungen zum Thema