Neue Funktionen von Oracle GoldenGate 11gR2: Oracle Streams lässt grüßen!

  • Erstellt von Joachim Jaensch
  • Datenbank, Infrastruktur

Oracle verfügt über zwei führende Real-Time-Replikationslösungen. Eine davon ist Oracle Streams. Die datenbankinterne Lösung existiert bereits seit Oracle Database 9i und repliziert nur innerhalb von Oracle-Datenbanken. Mit dem Kauf der Firma GoldenGate Software im Jahr 2009 wurde das Produktfolio um die neue, heterogene Replikationskomponente GoldenGate erweitert. Seit der Übernahme wurde GoldenGate ständig weiterentwickelt. Mit der Version 11gR2 setzt Oracle nun neue Maßstäbe. Von Integrated Capture bis zur neuen Konflikterkennung und -behandlung - DOAG Online präsentiert die neuen Funktionen von Oracle GoldenGate 11gR2.

Bis zum Kauf der Firma GoldenGate Software war Oracle Streams die strategische Replikationslösung von Oracle. Einziger Nachteil: Oracle Streams ist aufgrund der Architektur nur für die Replikation zwischen Oracle-Datenbanken einsetzbar, weil die Streams-Prozesse in der Oracle-Datenbank als Background-Prozesse laufen. Das war der entscheidende Faktor für den Zukauf der heterogenen Replikationslösung GoldenGate.

Da diese auch die Oracle-Oracle-Replikation abdeckte, wurde Oracle Streams nicht weiterentwickelt. Oracle entschied sich aber dafür, bewährte Oracle Streams-Funktionen in GoldenGate zu übernehmen. Bereits in Version 11gR1 wurden neue Funktionen und einzelne Verbesserungen bereitgestellt. Tabelle 1 zeigt die wichtigsten davon:

Funktion / Verbesserung

ab Oracle Version  

Beschreibung

New API for capturing from an Oracle Automatic Storage Management (ASM) instance

 10.2.0.5 +     

Die beiden neuen Optionen DBLOGREADER und DBLOGREADERBUFSIZE bei TRANLOGOPTIONS gestatten die Nutzung eines neuen Interfaces für den Extract aus einer Oracle ASM Instanz mit Puffergrößen bis zu 4 MB.

Extract works with Oracle Recovery Manager (RMAN)

 Enterprise       Edition 10.2 +    

RMAN sichert die Verfügbarkeit aller benötigten Redolog Files für ein normales Recovery (Log Retention Time). Aktiviert wird diese Funktion über die Option LOGRETENTION bei TRANLOGOPTIONS und durch ein zusätzliches Registrieren des Extract in der Datenbank mit REGISTER EXTRACT ... LOGRETENTION

(Pseudo Streams Capture Prozeß wird erstellt)

Oracle Transparent Data Encryption (TDE) at column and tablespace level

Enterprise Edition 10.2 +    

Über eine neues Package DBMS_INTERNAL_CKLM.PLB und die Option DECRYPTPASSWORD bei DBOPTIONS wird diese Funktion aktiviert.

(Patches!)

 Trigger

 10.2.0.5 + (not 11gR1)

Über die Option SUPPRESSTRIGGERS bei DBOPTIONS wird das "Feuern" der Trigger auf der Zielseite unterdrückt. Vorher mußte das manuell für alle Trigger gemacht werden.

Supplemental Logging 

 all Versions

Über das neue GGSCI Kommando

ADD SCHEMATRANDATA wird das Logging für alle Objekte eines Schemas aktiviert. Vorher mußte man für jedes Objekt ein ADD Kommando geben.

Tabelle 1: Neuerungen in Oracle GoldenGate 11g Release1   

 

Mit der Version 11gR2 von GoldenGate vom März 2012 präsentiert Oracle nun eine völlig überarbeitete Software, deren Anzahl an neuen Funktionalitäten größer ist als je zuvor (siehe auch Press Release vom 27. August 2012).  Darunter gibt es Oracle-spezifische Erweiterungen wie Integrated Capture und neue Funktionalitäten für alle Plattformen. Neben der GoldenGate-Dokumentation ist ein Blick in die Oracle Streams-Dokumentation auf jeden Fall nützlich. Wer diesen Schritt wagt, wird es allerdings nicht bereuen, denn die neue OOG-Version bringt erwähnenswerte Vorteile mit sich:

  • Keine Anpassungen in der Oracle-Datenbank für Automatic Storage Management (ASM), Real Application Cluster (RAC) RAC und Transparent Data Encryption (TDE)
  • Fehlertolerante Redolog File-Verarbeitung durch LogMiner-Server
  • Unterstützung von Point-In-Time Recovery
  • Redolog File -Verwaltung durch Recovery Manager (RMAN)
  • Entlastung der Quelldatenbank durch Auslagerung des Capture-Prozess
  • Unterstützung neuer Datenformate durch Integrated Capture (siehe Tabelle 3)

Integrated Capture

Für die Replikation von Oracle-Datenbanken gibt es jetzt einen neuen Extract-Prozess namens Integrated Capture. DBAs, die mit Oracle Streams vertraut sind, erkennen darin den Capture-Prozess von Oracle Streams. Er macht nun auch Downstream Capture innerhalb von GoldenGate möglich. Bisher lief das OGG Capturing auf der Source-Datenbank. Nun ist es möglich, den Capture-Prozess auf einer anderen Datenbank durchzuführen und so die Source-Datenbank zu entlasten.

Der Classic Capture bleibt uns erhalten, ist aber nicht mehr durchgängig nutzbar. Zum einen weil, er nicht weiterentwickelt wird; zum anderen unterstützt er bereits heute weniger Oracle-Datenformate als Integrated Capture.

Bei der Definition der Capture Prozesse sind übrigens folgende Unterschiede zu beachten:

Konfigurationschritt    

Integrated Capture

Classic Capture

Definition des Extract

ADD EXTRACT name, INTEGRATED TRANLOG …

ADD EXTRACT name, TRANLOG

Registrieren in der Datenbank

REGISTER EXTRACT name DATABASE 

(nur Register mit Parameter LOGRETENTION möglich, siehe Tabelle 1, Zeile 2)

Tabelle 2: Konfiguration der Capture-Prozesse 

 

Um den neuen Capture-Prozess zu verstehen, brauchen DBAs Grundkenntnisse von Oracle Streams: Über REGISTER  EXTRACT  ...  DATABASE wird im Hintergrund ein Oracle Streams Capture-Prozess definiert. Bei dem neuen Integrated Capture muss man zwischen Capture auf der Quelldatenbank (Local Deployment) und dem Downstream Capture (Downstream Deployment) unterscheiden. Für den Einsatz von Downstream Capture werden demnach zwei Datenbanken benötigt: Die Source- und die Downstream-Datenbank. Daraus resultieren unterschiedliche Kommandos für den Login.

Auch an der neuen Option INTEGRATEDPARAMS bei TRANLOGOPTIONS sind Parallelen  zu Oracle Streams zu erkennen: Diese beinhaltet die Parameter "downstream_real_time_mine", "max_sga_size" und "parallelism", die einen klaren Bezug zu Oracle Streams haben.

Datentyp

 Integrated Capture

 Classic Capture

XML Object Relational 

Ja 
(Compatibility 11.2.0.3 +)
Nein

XML Type Table 

 Ja
(Compatibility 11.2.0.3 +)

Nein

Basic Compression 

 Ja
(Compatibility 11.2.0.0.0 +)
Nein

NOLTP-Compression 

 Ja
(Compatibility 11.2.0.0.0 +)

Nein

Exadata Hybrid Columnar Compression 

 Ja
(Compatibility 11.2.0.0.0 +)

Nein

Distributed Transactions on RAC 

Ja
(Compatibility 11.2.0.0.0 +)

Nein

 Parallel DML Transactions on RAC

 Ja

Nein

Tabelle 3: Von Classic Capture nicht unterstützte Oracle Datentypen 

Wie schon erwähnt, werden zukünftige Funktionserweiterungen für die Replikation von Oracle-Daten nur noch für den Integrated Capture angeboten. Der ursprüngliche Classic Capture für Oracle wird auf dem Stand von 11gR1 eingefroren. Bisher gab es in Zusammenhang mit Classic Capture gewisse Einschränkungen bei einigen Oracle-Datentypen. Für die Nutzung von Integrated Capture sind diese nicht relevant. Das heißt: "Index Organized Tables" und "Transparent Data Encryption" können beispielsweise problemlos angewandt werden. Eine vollständige Auflistung aller durch Capture unterstützten Oracle-Datentypen ist im "Oracle GoldenGate - Oracle Installation and Setup Guide 11g Release 2 Patch Set (11.2.1.0.1)" zu finden.

Beide Capture-Modi (Classic und Integrated) können parallel für die gleiche Datenbank konfiguriert und benutzt werden. Der ALO (Archived Log Only)-Mode hingegen ist nicht mit Integrated Capture kompatibel.

Hinweis: Für die Nutzung von Integrated Capture wird die Oracle Version 11.2.0.3 empfohlen (siehe Tabelle 3). Zusätzlich muss vorher ein Patch eingespielt werden. Die Vorgehensweise ist in der Support Note 1411356.1 beschrieben.

Conflict Detection & Resolution (CDR) nach dem Vorbild von Oracle Streams

Bisher gab es keine Unterstützung der Nutzer bei der Behandlung von Konflikten. Standardkonfliktlösungen existierten nicht und die Implementierung einer Konfliktlösung war aufwendig, umfangreich und unübersichtlich.

Mit der Version 11gR2 hat sich die Konflikterkennung und -behandlung in Oracle GoldenGate grundlegend geändert. In Anlehnung an Oracle Streams sind jetzt auch diese Standard-Konfliktlösungen in OGG verfügbar: OVERWRITE, DISCARD, IGNORE, USEMAX, USEMIN und USEDELTA.

Damit wird das Einrichten bzw. die Parametrisierung einer Konfliktbehandlung einfach und übersichtlich für den Nutzer. CDR ist für alle von GoldenGate unterstützten Plattformen (außer NonStop) verfügbar. Mit CDR können alle fünf möglichen Konfliktsituationen erkannt und behandelt werden (siehe Tabelle 4).

 Konflikt

Erklärung

INSERTROWEXISTS 

Datensatz existiert schon

UPDATEROWEXISTS 

Datensatz existiert, aber BEFORE-Image stimmt  nicht überein

UPDATEROWMISSING 

Datensatz existiert nicht

DELETEROWEXISTS 

Datensatz exisitiert, mindestens ein BEFORE-Image stimmt nicht überein

DELETEROWMISSING 

Datensatz existiert nicht

Tabelle 4: Oracle GoldenGate 11gR2 - Konfliktsituationen mit Standard-Konfliktlösungen  

 

Globalization – Mehrwert durch Oracle NLS

Oracle hat die vorhandenen Erfahrungen mit „National Language Support“ (NLS) in Version 11gR2 eingearbeitet. Dadurch ist die Unterstützung der Replikation zwischen Plattformen mit unterschiedlichen Character Sets in Version 11gR2 stark verbessert. Das gilt auch für Multi-Byte und Unicode Character Sets. Schlüsselthemen der neu implementierten Globalization sind:

1. Die plattformübergreifenden Interaktionen zwischen den Character Sets von Datenbank-Server, Datenbank-Client, Betriebssystem und Terminal.

2. Die Behandlung von Groß- und Kleinschreibung (Case-Sensitivity) von Schema- und Objektnamen auf den unterschiedlichen GoldenGate Plattformen.

3. Änderungen des Trail-File-Formats, neue Parameter und Syntax-Hinweis zur richtigen Nutzung der Globalization Funktionen.

Security & Performance – Einsatz modernster Technologien

Security: Zusätzlich zum BLOWFISH-Verschlüsselungsstandard unterstützt Oracle GoldenGate jetzt auch den Advanced Encryption Standard (AES) mit Schlüssellängen von 128, 192 und 265 Bytes. Der neue Standard kann für Passwörter, Trail-Files und für die TCP/IP-Datenübertragung genutzt werden. Wie die Erstellung und Verwendung eines mittels AES-128 verschlüsselten Passworts erfolgt, kann anhand dieses Beispiels gezeigt werden:

1. Zuerst wird der Schlüssel (KEY) mit dem GoldenGate-Programm KEYGEN erstellt:

D:ogg_new_src>keygen 128 1
0xAAF1D027E724633C5C4E8C76B4E77D78

2. Der Schlüssel muss nach Erstellung unter dem Name mykey1281 in der Datei ENCKEYS im GoldenGate-Installationsverzeichnis bereitgestellt werden:

# Key Name        Key Value
 mykey1281         0xAAF1D027E724633C5C4E8C76B4E77D78

3. GoldenGate Kommando DBLOGIN mit dem verschlüsselten Passwort:

GGSCI (JJT420) 4> encrypt password GGADMIN AES128 encryptkey mykey1281
Encrypted password:  AADAAAAAAAAAAAHAGHXABGQGGBQCDHCD UJDAWCJAOADDAIFHTDRCWBOHWATEEJIFDIXGIEQBTEUBMANH
Algorithm used:  AES128

GGSCI (JJT420) 5> dblogin userid ggadmin password AADAAAAAA AAAAAHAGHXABGQGGBQCDHCDUJDAWCJAOADDAIFHTDRCWBOHWATEEJIFDIXGIEQBTEUBMANH aes128 encryptkey mykey1281
Successfully logged into database.

GGSCI (JJT420) 6>

Performance: GoldenGate 11gR2 unterstützt Ipv6. Die Übertragung der Daten wird dadurch effektiver und kann besser überwacht werden. Der Pump Extract (DataPump) kann jetzt auch asynchron arbeiten (Parameter STREAMING). Damit wird die Anzahl der notwendigen Bestätigungsmeldungen des Collector-Prozesses drastisch minimiert. Diese Änderung führt zu einer enormen Leistungssteigerung bei der Übertragung der Transaktionsdaten in „WideArea“-Netzen mit hoher Verzögerungszeit (Latency).

Extensibility – Steigerung der Flexibilität

Durch die Einführung von sogenannten Ereigniseinträgen (Event Markers) in die Trail-Files kann GoldenGate auf bestimmte Ereignisse reagieren und gezielte Aktionen auslösen (EVENTACTIONS). DDL-Operationen können Event Markers auslösen und Variablen an Shell Scripts übergeben. Beispiele für die Nutzung von Event Markers sind zum Beispiel:

1. Aufruf von Kommandos zur Überprüfung von Daten
2. Starten eines Traces (z.B. bei einer bestimmte Abrechnungsnummer)
3. Sammeln von Statistiken
4. Starten eines/mehrerer Batch-Jobs bzw. Prozeduren
5. STOP oder SUSPEND des Replicat-Prozess(z.B. nach 20 Konflikten)

Manageability & Monitoring – Integration in Oracle Enterprise Management

Der schon vor dem Kauf der Firma GoldenGate Software vorhandene GoldenGate Director war bisher das einzige grafische Administrations- und Monitor-Tool. Mit der Bereitstellung des Oracle GoldenGate-Monitors und eines Plug-in beginnt die Integration von GoldenGate in den Oracle Enterprise Manager (OEM) Cloud Control 12c. Damit hat der Nutzer die Qual der Wahl.

Zu empfehlen ist der Einsatz des neuen Monitors bzw. die Verwendung des OEM über das verfügbare Plug-in. Diese beiden Komponenten unterstützen zwar gegenwärtig keine Administration, aber sie sind mit geringem Installationsaufwand für ein übersichtliches Monitoring einsetzbar. Im Gegensatz dazu müssen Sie für den Einsatz vom GoldenGate Director zusätzlich einen WebLogic-Server installieren. Ein weiterer Aspekt spricht auch für diese Empfehlung: In Zukunft werden nur den neuen Monitor und das Plug-in weiterentwickelt, sodass der GoldenGate Direktor als "Auslaufmodell" anzusehen ist. Monitor und Plug-in sind Java-Lösungen. Jede Oracle GoldenGate-Instanz hat einen eigenen Agenten und verbindet sich über diesen zum Server, der entweder der GoldenGate Monitor oder der OEM ist. Schrittweise werden deshalb alle Administrationsfunktionen in die beiden neuen Serverkomponenten übernommen, bis schließlich nur noch diese unterstützt sein werden.

Der GoldenGate Monitor bietet dem Nutzer folgende Funktionen:

1. Eine Grafische Übersicht über die GoldenGate-Topologie
2. Drill-Down-Menüs zur Analyse (Manager, Prozesse, Trail-Files)
3. Definition und Untersuchung von Alerts (z.B. Latency Überwachung)
4. Repository-Daten für History-Views
5. SNMP-Interface für Einbindung ins Enterprise Monitoring

Expanded Heterogeneity – Weitere Plattformen und Datenformate

Ein weiterer Vorteil der neuen Version: Die Anzahl der unterstützten Plattformen vergrößert sich: Capture ist nun auch unter DB2 auf System i möglich und ein Replicat (Delivery) für die bisher nicht unterstützte Plattform PostgreSQL ist jetzt verfügbar. Zusätzlich werden auf einigen Plattformen neue Datenformate unterstützt.