Oracle GoldenGate 12c - Oracle Data Warehouse Community Seite

Transcription

Oracle GoldenGate 12c - Oracle Data Warehouse Community Seite
Oracle GoldenGate 12c
- Was ist neu seit 11gR2 ? GoldenGate 12c
Database & Middleware, Oracle 12c Multitenant
GoldenGate 12c für Oracle Datenbanken
Classic & Integrated Capture
Classic & Integrated Apply
GoldenGate 12c für Nicht-Oracle Datenbanken
Classic & Coordinated Apply
GoldenGate 12c - Interessantes
Profile Check Scripts
Healtcheck Scripts
LogDump Utility
Streams2OGG
GoldenGate 12c - Zusatzkomponenten
GoldenGate Foundation Suite
(Monitor, EM Plug-In, Director, Veridata und Studio)
GoldenGate Application Adapers
GoldenGate 12cR2 – Neue Produkte
GoldenGate for Big Data
GoldenGate Studio
(GoldenGate Foundation Suite)
GoldenGate Cloud Service
Neue Monitoring Möglichkeiten
GoldenGate 12cR2 – Neue Funktionen
Meta-Daten im Trail-File
Trail-Files mit 9-Ziffernstellen
Automatische Heartbeat-Table
OGG Parameteranalyse
Automatische Tabellen Instantiierung
GoldenGate 12c - Informationsquellen
1
Inhalt
1. Einleitung
2. Die Stellung von Oracle GoldenGate (OGG)
3. Unterstützung der Oracle 12c Multitenant Architektur
4.
4.1.
4.2.
4.2.1.
4.2.2.
4.2.3.
4.3.
4.3.1.
4.3.2.
4.3.3.
"Classic" für Alle - "Integrated" für Oracle
Architekturübersicht
Integrated Capture für Oracle Datenbanken
Arbeitsweise
Konfiguration
Vorteile
Integrated Apply für Oracle Datenbanken
Arbeitsweise
Konfiguration
Vorteile
5. Coordinated Apply für Nicht-Oracle Datenbanken
5.1. Arbeitsweise
5.2. Unterschiede zu Integrated Apply
6. Wichtige Funktionalitäten
6.1. Profile Check Scripts
6.2. Healthcheck Scripts
6.3. LogDump Utility
6.4. Streams2OGG
7. GoldenGate Foundation Suite
7.1. OGG Enterprise Manager Plug-In und OGG Monitor
7.2. OGG Veridata
7.4. OGG Application Adapters
8.
GoldenGate 12cR2 – Neue Produkte
8.1. GoldenGate for Big Data
8.2. GoldenGate Studio
8.3. GoldenGate Cloud Service (GGCS)
8.4. Neue Monitoring Möglichkeiten
8.4.1. Monitoring Points über RESTful Web Services
8.4.2. Oracle GoldenGate Performance Tool Kit (OGGPTK)
9.
GoldenGate 12cR2 – Neue Funktionen
9.1. Meta-Daten im Trail-File
9.2. Trail-File Namen mit 9 Ziffernstellen
9.3. Automatische Heartbeat-Table
9.3.1. Einrichtung
9.3.2. Nutzung
9.4. OGG Parameteranalyse
9.5. Automatische Tabellen Instantiierung
2
10. GoldenGate - Informationsquellen
10.1. Systemdokumentation
10.2. Datenblätter (Data Sheets)
10.3. White Papers
10.4. Oracle Learning Library
10.5. Oracle Technology Network
10.6. My Oracle Support
10.7. Deutsche Oracle Data Warehouse Community
Anhang 1: Oracle GoldenGate – DBA und Performance Views
Anhang 2: Aktualisierungshinweise zum Dojo 6
3
1. Einleitung
Dieses Dokument ist die Fortsetzung des Dojo 6, das im April 2013 erschien und auf der Version
11gR2 von Oracle GoldenGate basierte. Inzwischen sind schon wieder drei Jahre vergangen und die
Versionen 12cR1 und 12cR2 von Oracle GoldenGate sind verfügbar. Es ist höchste Zeit, den
Leistungsumfang der Version 12c in vollem Umfang und vor allem in deutscher Sprache vorzustellen.
Auch wenn es in seiner Form kein neues Dojo ist, soll der Inhalt in diesem Sinne verstanden werden.
Dabei stehen zwei Aspekte im Vordergrund:
1. Oracle GoldenGate 12c für die Oracle Multitenant Architektur
2. Oracle GoldenGate 12c – Funktionen, Komponenten und Produkte
Im weiteren werde ich für den Produktnamen Oracle GoldenGate auch die Akronyme OGG und GG
verwenden oder nur GoldenGate schreiben. Jeder der dieses Dokument liest, sollte vorher am besten
das Dojo 6 gelesen haben, oder über Grundkenntnisse zu GoldenGate verfügen. Das Dojo 6 steht
sowohl als gedrucktes Heftchen oder auch als PDF-Dokument zum Download bereit. Erwähnen muß
ich an dieser Stelle noch, daß alles, was im Dojo 6 niedergeschrieben wurde, uneingeschränkt gültig
ist und das praktische Beispiel im Teil II "Aktiv-Aktiv -Replikation" jederzeit genau so auch in OGG 12c
konfiguriert werden kann. Im Rahmen der vorhandenen Funktionserweiterungen ergeben sich neue
Möglichkeiten für die Nutzung von Oracle GoldenGate. Was ist dadurch im Dojo 6 nicht mehr
aktuell? Die Antwort darauf gibt der Anhang 2 am Ende dieser Schrift. Dort findet man die
notwendigen Aktualisierungen bzw. Ergänzungen für die Version 12c von OGG.
Oracle GoldenGate ist gegenwärtig in den Versionen 12.1.2.und 12.2.0 verfügbar. Jede OGG Software
Version wird als "Build" bezeichnet. Es existieren somit unterschiedliche Builds für die einzelnen
Plattformen, die durch GoldenGate unterstützt werden. Informationen über eine Software Version
von GoldenGate für eine bestimmte Datenbank auf einem bestimmten Betriebssystem findet man
an mehreren Stellen in Internet. Die wichtigsten drei URLs sind hier aufgeführt und sollten
entsprechend ihrer Aktualität auch in dieser Reihenfolge benutzt werden:
1. Support.oracle.com
2. edelivery.oracle.com
3. www.oracle.com/us/products/middleware/data-integration/goldengate/overview/index.html
Zuerst sind immer die Builds für "Oracle GoldenGate for Oracle" auf Linux x86-64 und auf Solaris x8664 verfügbar. Als nächstes folgt das GoldenGate für Oracle auf MS Windows x86-64 und mit etwas
Verzögerung folgen die Builds für weitere unterstützte Datenbanken auf den unterschiedlichen
Betriebssystemplattformen.
2. Die Stellung von Oracle GoldenGate
Als Einzelkomponente zur Replikation von Daten zwischen heterogenen Systemen und Datenbanken
2009 zugekauft, wurde OGG immer mehr in das Portfolio von Oracle integriert. Zugeordnet wird OGG
der Oracle Middleware Produktlinie. Aber - Oracle GoldenGate ist mittlerweile auch sehr stark in die
Oracle Database integriert. Betrachtet man die Oracle Technologien, sellt man fest, daß GoldenGate
auf Grund seiner Funktionalität eine Zwitterstellung bei Oracle einnimmt. Mit Hilfe der GoldenGate
Replikation lassen sich sowohl im Middleware-Bereich als auch im Database-Umfeld bedeutende
Mehrwerte erzielen. Die Einsatzgebiete von GoldenGate wurden bereits im Dojo 6 aufgeführt. Mit
Freigabe der Version 12c der Oracle Datenbank und der Oracle Middleware Infrastruktur wurden
diese Einsatzmöglichkeiten verfeinert, verbessert und erweitert.
4
Im Oracle Press Release vom 17. Oktober 2013 zur Freigabe von Oracle Data Integrator 12c und
Oracle GoldenGate 12c heißt es dazu:
"With the new capabilities in Oracle GoldenGate 12c, customers can benefit from:
Simplified product depleyment and seamless transition to privat cloud environments via tight Integration with Oracle
Database 12c and support for its multi-tenant architecture. Expanded heterogeneity through added support for he latest
versions of major databases such as Sybase ASE v 15.7, MySQL NDB Clusters 7.2, and MySQL 5.6., as well as integration
with Oracle Coherence. Enhanced high availibilty and data protecion via integration with Oracle Data Guard and Fast
Start Failover integration"
Die Positionierung von Oracle GoldenGate im Middleware und im Database Umfeld zeigen die
Abbildungen 1 und 2:
Abbildung 1: Middleware – Oracle Data Integration Solutions (DIS) Komponenten
Oracle GoldenGate ist neben Oracle Data Integrator (ODI) und Oracle Enterprise Data Quality
(OEDQ) und Oracle Enterprise Metadata Management (OEMM) eine der Hauptkomponenten von
Oracle Data Integration Solutions.
Abbildung 2: Database – Oracle Maximal Availability Architecture (MAA)
5
Oracle unterscheidet vier Stufen steigender Verfügbarkeit einer Datenbankumgebung. In Abbildung 2
sind diese ganz allgemein dargestellt. Im Bronze-Level sichert nur ein Backup die Datenbank. Im
Fehlerfall wird die Ausfallzeit vom Einspielen der Sicherung bestimmt. Um Ausfallzeit zu verringern
bzw. zu verhindern sind die drei weiteren Stufen empfohlen. Diese Level erfordern einen steigenden
Aufwand durch zusätzliche Hard- und Software, garantieren aber auf der anderen Seite die benötigte
höhere Verfügbarkeit. Im Kontext von Oracle realisiert man den Silber-Level mit Real Application
Cluster (RAC), im Gold-Level kommt Data Guard (DG) oder Active Data Guard (ADG) dazu und im
Platin-Level noch GoldenGate (GG).
3. Unterstützung der Oracle 12c Multitenant Architektur
Mit der Oracle 12c stellt Oracle mit Multitenant eine neue Datenbankarchitektur bereit. Bei einer
Multitenant Architektur gibt es eine Container Database (CDB) die eine bis maximal 252 Pluggable
Databases (PDB) unterstützt. Die Pluggable Databases nutzen das Data Dictionary, bestimmte
Tablespaces und Hintergrundprozesse der Container Database gemeinsam. Dadurch werden
Ressourcen (z.B.: Arbeitsspeicher und Plattenplatz) gespart sowie Redundanzen verringert. Ein
weiterer Vorteil entsteht durch das einfache Austauschen von PDBs zwischen verschiedenen CDBs.
Oracle GoldenGate unterstützt ab Version 12.1 die Multitenant Architektur (siehe Abbildung 3).
Weitere Informationen dazu liefert die MyOracle Support Note 1634589.1:
„FAQ - Oracle GoldenGate on Oracle 12c cdb/pdb“.
Abbildung 3: Oracle GoldenGate 12c in einer Oracle Multitenant Database Umgebung
4. "Classic" für Alle - "Integrated" für Oracle
4.1. Architekturübersicht
Oracle GoldenGate besteht aus drei Basisprozessen, dem Capture-, dem (Data)Pump- und dem
Replicat-Prozeß. Capture bezeichnet man auch als Extract und Replicat kann auch Delivery oder
Apply heißen. In Abbildung 4 ist die klassische OGG Architektur dargestellt. Sie war und ist für alle
unterstützten Datenbanken identisch.
6
Abbildung 4: Die klassische Oracle GoldenGate Architektur
Im weiteren werden nur noch die Prozesse mit Kontakt zur Datenbank betrachtet. Für den Pumpoder auch DataPump-Prozeß trifft das nicht zu. Er ist ein optionaler Prozeß, der für die
Datenübertragung von der Quell- zur Zielseite eingesetzt werden kann. Wie schon die Abbildung 4
zeigt, liest und schreibt er nur Trail-Files.
Bei der Übernahme der Firma GoldenGate Software, Inc. existierten für alle unterstützten
Plattformen nur der Classic (klassische) Capture- und der Classic Apply-Prozeß. Der Capture-Prozeß
war nur auf das Erfassen der Änderungen einer speziellen Datenbank ausgerichtet. Diese
Änderungen liest der Classic Capture aus den Log- bzw. Journal-Files der jeweiligen Datenbank. Eine
logische Interaktion mit dem entsprechenden Datenbanksystem fand darüber hinaus nur für
bestimmte Datentypen statt. Auch der Classic Apply generierte nur die den Änderungen
entsprechenden SQL-Anweisungen und führte diese über eine aktive Verbindung zur Zieldatenbank
aus. Transformationen, Fehler- und Konfliktbehandlungen werden dabei ausschließlich durch den
Apply-Prozeß realisiert. Datenbankfunktionalität wurde durch den Apply-Prozeß nicht genutzt.
Der Grund für den Zukauf von GoldenGate war die Leistungsfähigkeit im heterogenen Umfeld. Im
Gegensatz zu Oracle Streams, das nur zwischen Oracle Datenbanken einsetzbar ist, konnte man jetzt
zwischen (fast) allen wichtigen Datenbanken replizieren. Diese Situation führte bei Oracle zu den
folgenden drei Entscheidungen:
1. Oracle GoldenGate ist ab sofort die strategische Replikationslösung von Oracle
2. Oracle Streams 11gR2 wird nicht weiterentwickelt ("Function Freeze")
3. Bewährte Oracle Streams Funktionen werden in OGG für Oracle übernommen ("Best of Both")
Hinweis:
Informationen dazu liefert das Oracle - GoldenGate Statement of
Direction vom August 2015. Gegenwärtig ist Oracle Streams im
Status "Deprecated". Das ist die Vorstufe von "Desupported" und
bedeutet, daß es in absehbarer Zeit nicht mehr Bestandteil der
Oracle Datenbank sein wird. Alle Nutzer sind deshalb aufgefordert,
ihre Replikationslösungen auf Oracle GoldenGate umzustellen.
Abbildung 5: Datenbank und GoldenGate Entwicklung - "Alles aus einer Hand"
7
Ergebnisse der "Best of Both" OGG Weiterentwicklung (analog Streams):
11.2: Neue Standard-Konflikterkennung und -behebung (CDR - Conflict Detection and Resolution)
11.2: Register Capture-Prozeß in Quelldatenbank (RMAN löscht keine Redologs, die OGG benötigt)
11.2: Oracle-spezifischer Capture-Prozeß (Integrated Capture)
12.1: Oracle-spezischer parallelisierter Apply-Prozeß (Integrated Apply)
12.1: Paralleler Apply-Prozeß für alle Datenbanken (Coordinated Apply)
Informationen zu den ersten beiden neuen Funktionen findet man im Dojo 6. Ich werde hier deshalb
nur die neuen Prozesse beschreiben.
Abbildung 6: OGG - Integrated Capture und Integrated Apply für die Oracle Datenbank
4.2. Integrated Capture
4.2.1. Arbeitsweise
Integrated Capture und Integrated Apply basieren auf EXtended Stream (XStream) und nutzen
dessen Outbound Server (Capture) bzw. Inbound Server (Apply) Funktionalität. XStream ist ein neues
leistungsfähiges Interface, das ab Oracle 11.2 mit der Datenbank verfügbar ist und im Rahmen der
Oracle GoldenGate Lizenz genutzt werden kann. Das Oracle White Paper "Building Highly Scalable
Web Applications with XStream" erklärt in kurzer übersichtlicher Form die Funktionsweise von
XStream.
Hinweis:
Anwendungsentwickler können das dokumentierte XStream API
(Application Programming Interface) zur Erstellung eigener
Anwendungen nutzen.
Im Gegensatz zum Classic Capture liest der Integrated Capture die Oracle Redolog Files nicht direkt.
Er nutzt dazu den LogMiner. Dieser arbeitet auf der Grundlage des Data Dictionary und baut sich
beim ersten Start ein Abbild davon auf. Der LogMiner kann so die Redolog Informationen
interpretieren und dem Capture Prozeß übergeben. Der XStream Outbund Server erstellt Logical
Change Records (LCRs) und übergibt diese zur weiteren Verarbeitung an den Capture-Prozeß.
Hinweis:
Oracle Streams und XStream bilden auf der Grundlage der Oracle
Redolog Informationen Logical Change Records (LCRs). GoldenGate
benutzt dafür Trail-File Records. Bei Integrated Capture und
Integrated Apply werden beide Formate benutzt, weil diese neuen
GoldenGate Prozesse eine Kombination aus XStream und GoldenGate
Funktionalität sind.
8
Abbildung 7: Oracle GoldenGate Integrated Extract Architektur
Ab OGG Version 12.1.2.1 können mehrere Integrated Capture-Prozesse das gleiche Data Dictionary
Abbild benutzen (Shared Mining Dictionary). Dadurch können zusätzliche Capture-Prozesse schneller
gestartet werden. Jeder Integrated Capture-Prozeß muß in der Datenbank registriert werden. Danach
ist er (wie der Name schon sagt) in die Logik der Datenbank integriert und arbeitet eng mit ihr
zusammen. Über Dictionary Views findet eine ständige Abstimmung zwischen der Datenbank und
dem GoldenGate Prozeß statt. Mit Version 11.2.0.4 wurde der Integrated Capture weiter verbessert
und noch performanter. Man spricht deshalb auch vom "Lightweight Capture" (V2).
Der Integrated Capture läuft im Normalfall auf der Quelldatenbank. Man bezeichnet ihn deshalb als
Source Capture. Ist das aber für eine Produktions-Datenbank aus Gründen der Belastung nicht
gewünscht, kann er auch auf eine andere Datenbank ("Mining Database") ausgelagert werden. Diese
Arbeitsweise bezeichnet man als Downstream Capture. Mittels Downstream Capture kann man auch
eine Oracle Datenbank der Version 10.2 als Quelle benutzen, wenn die Mining Database mindestens
Version 11.2.0.3 hat. Die Konfiguration von Downstream Capture ist aufwendiger, weil man eine
zusätzliche Datenbank benötigt und die Redolog Files zu dieser Datenbank übertragen werden
müssen. Abblildung 8 zeigt die beiden unterschiedlichen Arbeitsweisen.
Abbildung 8: Source Capture (links) und Downstream Capture (rechts)
Mit der Bereitstellung des Integrated Capture ist der Classic Capture für die Oracle Datenbank nicht
mehr relevant. Erweiterungen wie die Unterstützung neuer Datentypen oder Datenbankfunktionalitäten wie Komprimierung (Compression) oder Verschlüsselung (Encryption) werden nur
noch durch Integrated Capture unterstützt. Schon jetzt bietet der Integrated Capture mehr
Möglichkeiten als der Classic Capture (siehe Tabelle 1).
9
Merkmal
Integrated Capture
Classic Capture
Source Capture
Download Capture
Multitenant Database
ja
ja
ja
ja
nein
nein
Tabelle 1: Integrated Capture versus Classic Capture
4.2.2. Konfiguration
Durch die enge Verbindung zur Oracle Datenbank ergeben sich zusätzliche Schritte beim Einrichten
des Integrated Capture-Prozesses. Oracle Datenbank Initialisierungsparameter müssen gesetzt und
und Privilegien in der Datenbank müssen vergeben werden. Erwähnt sei an dieser Stelle nur der
datenbankinterne Streams Pool, dessen Größe von der Anzahl der Integrated Capture-Prozesse
abhängig ist (Parameter: STREAMS_POOL_SIZE). Für die Vergabe der notwendigen Privilegien für
den OGG Administrator existiert in Oracle 12c das DBMS Package DBMS_GOLDENGATE_AUTH. In
Version 11.2.0.x gab es dieses Package noch nicht und man mußte noch das Streams Package
DBMS_STREAMS_AUTH benutzen. Über spezielle Oracle GoldenGate Kommandos und Parameter
wird der Integrated Capture eingerichtet. Vorhandene Classic Capture-Prozesse können sehr einfach
über die Kommandos REGISTER EXTRACT und ALTER EXTRACT ... UPGRADE in Integrated CaptureProzesse gewandelt werden. (siehe Support Note: 1484313.1 - "How to upgrade from GoldenGate
Classic Extract to Integrated Extract"). Auch der Rückweg zum Classic Capture ist gegenwärtig über
UNREGISTER EXTRACT und ALTER EXTRACT ... DOWNGRADE möglich.
Bei Bi-Direktionaler Replikation muß man verhindern, daß die replizierten Änderungen noch einmal
vom Capture-Prozeß der Zielseite erfaßt werden. Passiert das nicht, würden alle replizierten
Transaktionen erneut repliziert werden und ein sogenanntes "Data Looping" auslösen. Beim Classic
Capture verhindert man das auf der Grundlage eines Nutzernamens oder einer Nutzer-ID. Dieses
Verhalten wurde für den Integrated Capture verändert. Wie schon bei Oracle Streams praktiziert,
wird dieses Ausschließen replizierter Änderungen durch das Setzen eines Kennzeichens (auch TAG
genannt) realisiert. Voraussetzung ist dabei, daß der Apply-Prozeß der Zieldatenbank alle
verarbeiteten Änderungen mit diesem TAG kennzeichnet. Der Integrated Capture ignoriert dann alle
Transaktionen, die damit markiert sind. Standardmäßig schreibt der Apply-Prozeß immer den TAG
"00". Abbildung 9 zeigt die notwendige Parametrisierung mittels TAG "99".
Abbildung 9: Verhindern von "Data Looping" durch setzen eines TAGs
10
Konfiguriert man Integrated Capture für die Datenbankversion 11.2 dann müssen diese beiden
Support Notes beachtet werden:
1411356.1 - "11.2.0.3 Database Specific Bundle Patches for Integrated Extract 11.2.x"
1557031.1 - "Oracle GoldenGate - Oracle RDBMS Server Recommended Patches"
Integrated Capture
Parameter: TRANLOGOPTIONS Option: INTEGRATEDPARAMS ...
Legt fest, ob der LogMining Server im Real-Time oder
DOWNSTREAM_REAL_TIME_MINE Archived-Log Mode (Standard) arbeitet.
GETCTASDML
Erlaubt Replikation von "Create table as Select" Funktionalität
INLINE_LOB_OPTIMIZATION
Legt fest, ob LOBs (kleine LOBs) direkt in einem LCR gesendet
werden dürfen (Standard: Yes).
Legt den "Shared Memory" für den "LogMining Server" fest
(Standard: 1 GB)
Legt die Anzahl der "LogMining Server" fest (Standard: 2).
Oracle Standard Edition: Parameter muß 1 sein!
MAX_SGA_SIZE
PARALLELISM
Tabelle 2: Parameter für Integrated Capture
4.2.3. Vorteile
Kategorie
Funktionen
Exadata
Exadata Komprimierung (HCC)
Komprimierung
Verteilte Transaktionen
OLTP- und Segment- Komprimierung
XA-RAC, PDML
Real Applications Clusters
(RAC)
Neue Datentypen
Large Objects
Einfacheres RAC Management
Beschreibung
Unterstützung von Exadata
Hybrid Columnar
Compression
Unterstützt XA Transaktionen
von mehreren RAC Knoten
XML und XML Binary
Teilweise oder ganz vom Redolog
gelesen
Redolog Verarbeitung
Unterstützung von 2 Threads
Parallelverarbeitung,
Capture Thread / Consumer Thread
(Multithread Architektur)
Architekturerweiterung
Source und Downstream Capture
Capture-Process kann auf
einer zweiten Datenbank sein
Data Definition Language "Out Of The Box" (Database 11.2.0.4+)
Unterstützt ohne Trigger und
(DDL)
Unterstützung von Tabellen mit
zusätzliche
Column Level Password
Installationsschritte
anderes
Unterstützung von IOT mit MAPPING Index Organized Table (IOT)
Option
Tabelle 3: Vorteile von Integrated Capture
11
Hinweis:
Die in Tabelle 3 erwähnten Funktionen werden durch den Classic
Capture-Prozeß nicht oder nur eingeschränkt unterstützt.
4.3. Integrated Apply
4.3.1. Arbeitsweise
Die bessere Integration des Apply-Prozesses in die Datenbank war auch der Grund für die
Entwicklung von Integrated Apply. Dieser orientiert sich stark an der bewährten Oracle Streams
Architektur, wie in Abbildung 10 zu sehen ist. Der Apply ist hier reine Datenbankfunktionalität. Der
Oracle GoldenGate Apply-Prozeß übergibt nur noch die Änderungen an den Oracle Extended Stream
(XStream) Inbound Server und der führt die eigentlichen Apply Aktivitäten durch.
Abbildung 10: Oracle GoldenGate Integrated Apply Architektur
Die Abbildung 10 zeigt die Bestandteile der Inbound Server Architekur. Der Apply-Prozeß (Delivery)
erstellt aus den Sätzen im OGG Trail-File Logical Change Records und übergibt diese an den Inbound
Server. Der Receiver liest diese LCRs und der Preparer analysiert die Abhängigkeiten zwischen den
Transaktionen, gruppiert diese und stellt die richtige Reihenfolge her. Der Coordinator übergibt die
Transaktionen an die einzelnen Applier und überwacht diese. Konflikt- und Error-Handling wird auch
vom zuständigen Applier durchgeführt. Im Gegensatz zum Erfassen von Änderungen (Capture) auf
der Quelldatenbank sind beim Anwenden der Änderungen in der Zieldatenbank (Apply) mehr
Aktionen durchzuführen. Während ein Capture-Prozeß nur die laufenden Änderungen der Quelle
erfassen und eventuell Transformationen ausführen muß, hat der Apply-Prozeß auf der Zielseite
aufwendigere Aktionen zu realisieren:
1. Änderungen ausführen
2. Konflikte erkennen und lösen
3. Fehlersituationen beheben
Ist das Transaktionsaufkommen hoch, können das pro Sekunde tausende von Operationen sein.
Treten dabei dann auch noch Konflikte auf, müssen diese behandelt werden und der
Ressourcenbedarf des Apply-Prozesses steigt unvorhergesehen weiter an. Konflikte sind dabei
Situationen in denen das ausgeführte SQL zum Fehler führt und abgewiesen wird. Die notwendigen
und von der Anwendungslogik abhängigen Plausibilitätskontrollen müssen durchgeführt werden um
für einen bestimmten Fehler die richtige Lösung zu finden. In der Praxis wird man in den meisten
12
Fällen feststellen, daß der Apply-Prozeß dadurch zeitlich hinter den Capture-Prozeß zurückfällt. Die
Zeitdifferenz zwischen dem Commit auf der Quellseite und dem auf der Zielseite wird dabei immer
größer. Überschreitet diese Verzögerung einen vereinbarten Maximalwert ist sie für Real-Time
Replikation nicht mehr akzeptabel. Abhilfe schafft in so einem Fall die automatische Parallelisierung
des Integrated Apply. In Abhängigkeit der verarbeiteten LCRs werden mehr oder weniger Applier
gestartet. Die Maximalzahl wird dabei durch den Parameter „MAX_PARALLELISM“ vorgegeben. Beim
Classic Apply mußte man diese Parallelisierung über das Parameter File des Apply-Prozesses
konfigurieren. Dabei mußten voneinander abhängige Tabellen vom selben Apply-Prozeß verarbeitet
werden und die Änderungen zu diesen Tabellen mußten im selben Trail-File stehen.
4.3.2. Konfiguration
Classic Apply benutzt für den Start nach einem Abbruch eine Tabelle (Checkpoint Table) in der Oracle
Datenbank, um den richtige Stelle für den Wiederanlauf zu finden. Integrated Apply benötigt eine
solche Tabelle nicht. Wie beim Capture-Prozeß kann man auch einen Classic Apply-Prozeß mittels
ALTER REPLICAT ... INTEGRATED in einen Integrated Apply wandeln. Dazu sollte der Apply-Prozeß
gestoppt werden. Nach der Änderung kann die bisher genutzte Checkpoint Table gelöscht werden,
wenn sie nicht noch von anderen Apply-Prozessen genutzt wird. Geht man den Weg zurück und
ändert man den Apply-Prozeß wieder in NONINTEGRATED muß man zwingend den Name einer
Checkpoint Table mitliefern. Im Gegensatz zu Integrated Capture sollte sich der Integrated Apply
selbst bei der Oracle Datenbank registrieren. Das REGISTER REPLICAT sollte nur dann benutzt
werden, wenn man die Meldung bekommt, daß ein Integrated Apply-Prozeß noch nicht registriert ist.
Integrated Apply
COMMIT_SERIALIZATION
DISABLE_ON_ERROR
EAGER_SIZE
MAX_PARALLELISM
PARALLELISM
WRITE_ALERT_LOG
Parameter: DBOPTIONS Option: INTEGRATEDPARAMS ...
Abhängige Transaktionen werden korrekt "committed", aber
nicht zwingend in der Reihenfolge wie in der Quelldatenbank
(Standard: DEPENDENT_TRANSACTIONS)
Transaktionen in gleicher Reihenfolge wie auf der
Quelldatenbank "committed" (FULL)
Apply Server stoppt nach einem Fehler (Standard: No)
Anzahl der LCRs nach denen der Apply beginnt (Standard:
9500)
Optimitisches Apply!
Legt die maximale Anzahl von Apply Servern fest. Wirkt nur,
wenn PARALLELISM ist größer als 1 (Standard: 50)
Minimale Anzahl von Apply Servern (Standard: 4)
Oracle Standard Edition: Parameter muß 1 sein!
Legt fest, ob der INBOUND Server Nachrichten in das ALERT
Log schreibt (Standard: YES).
Tabelle 4: Parameter für Integrated Apply
13
5. Coordinated Apply
5.1. Arbeitsweise
Der Aufwand für das Apply der Änderungen auf der Zieldatenbank ist unabhängig von der
betrachteten Datenbank immer größer als das Erfassen der Änderungen durch den Capture-Prozeß.
Deshalb wurde speziell für den Apply-Prozeß von Nicht-Oracle Datenbanken der Coordinated Apply
entwickelt. Dieser neue Apply-Prozeß ist wie der Integrated Apply auch ab Oracle GoldenGate 12c
verfügbar und soll den Nutzer von aufwendiger Parametrisierung bei der Definition von parallelen
Apply-Prozessen entlasten.
Abbildung 11: Oracle GoldenGate Coordinated Apply Architektur
Coordinated Apply berücksichtigt sogenannte "Barrier Operations". Das sind SQL-Anweisungen, die
logisch zusammen gehören und nur in einer bestimmten Reihenfolge ausgeführt werden können.
Coordinated Replicat erkennt diese Abhängigkeiten und stoppt einen Thread bis eine vorher
notwendige Datenbankänderung durch einen anderen Thread ausgeführt wurde. Zum Beispiel kann
ein Update oder ein Insert auf eine zusätzliche Spalte in einer Tabelle erst dann ausgeführt werden,
wenn diese Spalte vorher durch eine DDL Anweisung (ALTER TABLE ... ADD Column) erfolgt ist. Ein
weiteres Beispiel ist die Aktualisierung eines Primary Keys. Inserts und Updates, die sich auf den alten
Wert beziehen müssen vor der Änderung des Schlüssels erfolgen.
5.2. Gegenüberstellung: Coordinated Apply - Integrated Apply
Coordinated Apply
Der Nutzer definiert die Anzahl der Threads
Transaktionen werden aufgesplittet
Nutzbar für alle unterstützten Datenbanken
SQL Ausführung durch den Apply-Prozeß
Integrated Apply
Parallelisierung erfolgt automatisch basierend
auf Foreign Keys und Unique Identifier
Transaktionen werden nicht aufgesplittet
Nur für Oracle Datenbank 11.2.0.4 und 12c
SQL Ausführung im Oracle Datenbankserver
Tabelle 5: Coordinated Apply versus Integrated Apply
14
6. Tools & Utilities
6.1. Profile Check Scripts
Wenn man eine Replikation zwischen zwei Datenbanken aufbaut, muß man zuerst prüfen, ob alle
Datentypen der Quelldatenbank durch den Capture-Prozeß unterstützt sind. Gibt es Datentypen, die
der Capture nicht verarbeiten kann, dann muß man nach Umgehungslösungen suchen. Oracle
GoldenGate liefert für diese Analyse der unterstützten Datenbanken Profile Check SQL-Scripts aus. Es
gibt Profile Check Scripts für die Oracle Datenbank, IBM DB2, Microsoft SQL Server, Oracle MySQL
und weitere Datenbanken. Für Oracle gibt es zwei verschiedene Scripts, einen für die Untersuchung
der gesamten Datenbank und einen Script zur Analyse eines einzelnen Schemas. Aber Vorsicht - diese
beiden Scripts sind heute nur noch für den Classic Capture benutzbar. Der Grund dafür sind die
beiden neuen Integrated Prozesse (Capture und Apply) für die Oracle Datenbank. Für diese Prozesse
wurden neue Scripts entwickelt, die neben der Datentyp-Analyse auch die erforderlichen DatenbankParameter und den Status der Integrated Prozesse prüfen. Diese sogenannten Healthcheck Scripts
sind Gegenstand von Punkt 6.2.
Oracle Support Note
Titel
1296168.1
Oracle GoldenGate Database Schema Profile Check Script for Oracle DB
Classic Extract
1298562.1
Oracle GoldenGate Database Complete Database Profile Check Script for
Oracle DB (All Schemas) Classic Extract
1438514.1
Oracle GoldenGate Database Profile Check Script for DB2 Database
1315720.1
Oracle GoldenGate 11g for SQL Server Database Profile Check Script
1944704.1
Oracle GoldenGate 12.1 for SQL Server Database Profile Check Script
1501176.1
Oracle GoldenGate Database Profile Check Script for MySQL Database
Tabelle 6: Oracle GoldenGate Profile Check Scripts für ausgewählte Datenbanken
6.2. Healthcheck Scripts
Wie schon erwähnt gibt es für Integrated Capture und Integrated Apply keine Profile Check Scripts
sondern umfangreichere Healthcheck Scripts. Beide Prozesse sind tief in der Oracle Datenbank
verwurzelt. Informationen zu diesen Prozessen finden sich in erweiterten und neuen DBA und
Perfomance Views. Es ist damit möglich, den Zustand der Prozesse abzufragen und DiagnoseInformationen zu erhalten. Im Anhang 1 ist eine Zusammenstellung dieser Views zu finden. Um den
GoldenGate Nutzer bei der Analyse der GoldenGate Prozesse zu unterstützen, stellt Oracle (wie
schon bei Oracle Streams) SQL-Scripts bereit, die alle relevanten Informationen übersichtlich in
einem HTML-File darstellen. Diese Scripts werden als Healthcheck Scripts bezeichnet und sind
versionsabhängig. Informationen dazu liefert der Oracle Support Note 1448324.1: "GoldenGate
Integrated Capture and Integrated Replicat Healthcheck Script". Gegenwärtig sind diese 4 Versionen
von Healthcheck Scripts verfügbar:
15
Name
Beschreibung
ogg_12102.sql
Integrated Capture and Integrated Replicat Health Check sccript for Oracle Database 12.1.0.2
ogg_12101.sql
Integrated Capture and Integrated Replicat Health Check sccript for Oracle Database 12.1.0.1
ogg_11204.sql
Integrated Capture and Integrated Replicat Health Check sccript for Oracle Database 11.2.0.4
ichc_11203.sql
Integrated Capture Health Check sccript for Oracle Database 11.2.0.3
Tabelle 7: Oracle GoldenGate Healthcheck Scripts
Die Scripts werden mit jeder neuen Oracle GoldenGate bzw. Oracle Datenbankversion aktualisiert
und spiegeln damit den aktuellen Funktionsumfang wider.
Abbildung 12: Teil eines Healthcheck Reports
Abbildung 12 zeigt einen Ausschnitt aus einem Healthcheck Report. Zu sehen sind ein Integrated
Capure (Integrated Extract) EXCDB12P und ein Integrated Apply (Integrated Replicat) REPDB12S.
Beide Prozesse laufen in einer Oracle 12c Multitenant Database. Der Capture-Prozeß ist mit der
Container Database (CDB) verbunden und der Apply-Prozeß mit einer Pluggable Database (PDB). Zu
sehen ist auch der Outbound Server-Prozeß (LogMiner Session) des Integrated Capture-Prozesses.
6.3. LogDump Utility
Oracle GoldenGate beinhaltet ein sehr hilfreiches Programm zur Analyse der in den Trail-Files
gespeicherten Sätze (Trail-File Records). Seit Version 12 ist dieses Utility in der Schrift "Logdump
Reference for Oracle GoldenGate 12c" beschrieben. Bis Version 11.2 war es noch im Kapitel 4 des
16
Troubleshooting Guide zu finden. Zusätzlich gibt es noch die Oracle Support Note 1446672.1 "Oracle GoldenGate Logdump Complete Reference FAQ".
Das Programm befindet sich im Installationsverzeichnis von GoldenGate und wird über Kommandos
gesteuert (Command Line Tool). Abbildung 13 zeigt ein Beispiel für die Nutzung des Programms:
D:\ogg1212_tar>logdump
Oracle GoldenGate Log File Dump Utility for Oracle
Version 12.1.2.0.0 17185003 OGGCORE_12.1.2.0.0_PLATFORMS_130924.1316
Copyright (C) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
Logdump 588 >open d:\ogg1212_tar\dirdat\rt000020
Current LogTrail is d:\ogg1212_tar\dirdat\rt000020
Logdump 589 >count
LogTrail d:\ogg1212_tar\dirdat\rt000020 has 5082 records
Total Data Bytes
570356
Avg Bytes/Record
112
RestartOK
1
Others
1
After Images
5081
Average of 5082 Transactions
Bytes/Trans .....
160
Records/Trans ...
1
Files/Trans .....
1
Logdump
Logdump
Logdump
Logdump
Logdump
590
591
592
593
594
>ghdr on
>detail on
>detail data
>usertoken on
>next
2014/10/08 10:14:16.420.000 FileHeader
Name: *FileHeader*
3000 0319 3000 0008 4747 0d0a 544c 0a0d
0004 3200 0004 2000 0000 3300 0008 02f2
7ea0 3400 0037 0035 7572 693a 4a4a 5434
653a 6f72 6163 6c65 3a63 6f6d 3a64 7269
3a6f 6767 3132 3132 5f73 7263 3a45 5843
5036 0000 2000 1e64 3a5c 6f67 6731 3231
725c 6469 7264 6174 5c72 7430 3030 3032
Len
3100
2b18
3230
7665
4442
325f
3037
0002
5ba2
3a64
2d44
3132
7461
0000
|
|
|
|
|
|
|
1396 RBA 0
0...0...GG..TL..1...
..2... ...3.....+.[.
~.4..7.5uri:JJT420:d
e:oracle:com:drive-D
:ogg1212_src:EXCDB12
P6.. ..d:\ogg1212_ta
r\dirdat\rt0000207..
Logdump 595 >
Abbildung 13: Oracle GoldenGate Logdump Utility - Beispiel
Nach dem Start des Programmes wird das Trail-File "d:\ogg1212_tar\dirdat\rt000020" geöffnet und
mittels "count" wird die Anzahl der Sätze ermittelt. Danach wird festgelegt, welcher Inhalt des TrailFiles ausgegeben bzw. analysiert werde soll. Diese Optionen können bei Bedarf jederzeit geändert
werden. Mit "next" positioniert man auf den nächsten Satz. Der erste Record im File ist immer der
File Header. Ist "ghdr on" angegeben, wird er auch angezeigt. Die Kommandos "detail on", "detail
data" und "usertoken on" vergrößern die Ausgabe für jeden Trail Record. Ob diese Informationen
gebraucht werden ist abhängig von der Situation die eine Analyse der Records notwendig macht.
Klappt zum Beispiel die Konflikterkennung nicht kann man nachsehen, ob das Before Image eines
bestimmten Spaltenwertes im Trail Record vorhanden ist. Ist es nicht vorhanden, hat man bestimmt
Parameter auf der Quellseite falsch gesetzt. Mit dem Programm kann man Sätze überspringen, auf
den Inhalt von Sätzen positionieren und Filter für die Satzauswahl setzen. Erwähnt sei an dieser Stelle
noch die Möglichkeit, einem User Token einen Wert zuzuweisen. Damit können über User Tokens
zusätzliche Daten in die Trail Records geschrieben werden. Diese Möglichkeit nutzt man um
Informationen von der Quell- zur Zielseite zu transportieren. Dort können deren Inhalte zu
Transformationen benutzt oder als Werte in Zieltabellen eintragen werden. Mittels LogDump kann
17
man überprüfen, ob die Token auch wirklich im Trail Record vorhanden sind. Abbildung 14 zeigt das
Funktionsprinzip der User Tokens:
Abbildung 14: Oracle GoldenGate - User Tokens
Im Beispiel unten (Tabelle 8) wird ein GoldenGate Trail Record durch das Einfügen der User Tokens
um insgeamt 152 Bytes vergrößert (Capture-Prozeß: plus 96 Bytes, Pump-Prozeß plus 56 Bytes).
Im LogDump Utility wird das so angezeigt:
Trail Record nach Capture-Prozeß
2013/06/07 11:52:00.000.000 FieldComp
Name: HBUSER.HB_TAB_ORAP
After Image:
0001 0008 0000 0004 6f72 6170 000f 001f
3133 2d30 362d 3037 3a31 313a 3532 3a30
3130 3030 3030 30
Column
1 (x0001), Len
8 (x0008)
0000 0004 6f72 6170
Column
15 (x000f), Len
31 (x001f)
0000 3230 3133 2d30 362d 3037 3a31 313a
302e 3731 3130 3030 3030 30
User tokens:
96 bytes
544b 5f45 5854 4e41 4d45 0045 5854 4842
5f45 5854 5449 4d45 0032 3031 332d 3036
3131 3a35 323a 3030 2e39 3938 3030 3000
4444 4c44 454c 5441 5354 4154 5300 3000
444d 4c44 454c 5441 5354 4154 5300 3100
Len
47 RBA 1284
Partition 4
GU s
0000 3230 | ........orap......20
302e 3731 | 13-06-07:11:52:00.71
| 1000000
| ....orap
3532 3a30 | ..2013-06-07:11:52:0
| 0.711000000
5000
2d30
544b
544b
544b
3720
5f45
5f45
|
|
|
|
|
TK_EXTNAME.EXTHBP.TK
_EXTTIME.2013-06-07
11:52:00.998000.TK_E
DDLDELTASTATS.0.TK_E
DMLDELTASTATS.1.
Trail Record nach Pump-Prozeß
2013/06/07 11:52:00.000.000 FieldComp
Name: HBUSER.HB_TAB_ORAP
After Image:
0001 0008 0000 0004 6f72 6170 000f 001f
3133 2d30 362d 3037 3a31 313a 3532 3a30
3130 3030 3030 30
Column
1 (x0001), Len
8 (x0008)
0000 0004 6f72 6170
Column
15 (x000f), Len
31 (x001f)
0000 3230 3133 2d30 362d 3037 3a31 313a
302e 3731 3130 3030 3030 30
User tokens: 152 bytes
544b 5f50 4d50 4e41 4d45 0050 4d50 4842
5f50 4d50 5449 4d45 0032 3031 332d 3036
3131 3a35 323a 3336 2e37 3433 3030 3000
5854 4e41 4d45 0045 5854 4842 5000 544b
5449 4d45 0032 3031 332d 3036 2d30 3720
323a 3030 2e39 3938 3030 3000 544b 5f45
454c 5441 5354 4154 5300 3000 544b 5f45
454c 5441 5354 4154 5300 3100
Len
47 RBA 1401
Partition 4
GU s
0000 3230 | ........orap......20
302e 3731 | 13-06-07:11:52:00.71
| 1000000
| ....orap
3532 3a30 | ..2013-06-07:11:52:0
| 0.711000000
5000
2d30
544b
5f45
3131
4444
444d
544b
3720
5f45
5854
3a35
4c44
4c44
|
|
|
|
|
|
|
|
TK_PMPNAME.PMPHBP.TK
_PMPTIME.2013-06-07
11:52:36.743000.TK_E
XTNAME.EXTHBP.TK_EXT
TIME.2013-06-07 11:5
2:00.998000.TK_EDDLD
ELTASTATS.0.TK_EDMLD
ELTASTATS.1.
Tabelle 8: LogDump Utility mit "usertoken on"
6.4. Streams2OGG
Dieses Programm analysiert eine vorhandene Oracle Streams Installation und erstellt alle
notwendigen Kommando- und Parameter-Dateien für Oracle GoldenGate. Da Oracle Streams nur
noch eine begrenzte Zeit Bestandteil der Oracle Datenbank sein wird, empfielt Oracle allen Streams
Anwendern, in Richtung GoldenGate zu migrieren. Streams2OGG soll dabei eine Unterstützung für
alle Oracle Kunden sein, die laufende Streams-Umgebungen durch OGG ablösen wollen. Das
Programm wurde erstmals 2014 auf der Oracle Open World in San Francisco der Öffentlichkeit
vorgestellt. Seitdem existiert auf My Oracle Support die Note 1912338.1. Neben speziellen Hinweisen
zum Programm findet man den Link zum Download der Dokumentation "Documentation for Streams
18
to GoldenGate Migration Tool". Eine weitere, schon etwas ältere Note 1383303.1 wurde aktualisiert
und sollte ebenfalls mit beachtet werden, wenn eine Migration von Streams zu GoldenGate geplant
ist bzw. durchgeführt werden soll. Über diese zweite Note bekommt man das Oracle White Paper
"Best Practice: Oracle Streams to Oracle GoldenGate Conversion".
Note
Inhalt
1383303.1
Prozeß Migration: OS  OGG
GoldenGate Installation
Installation Migration Utility streams2ogg
Stop Oracle Streams Apply-Prozeß (Zielsystem)
Ermitteln der letzten SCN (Last applied transaction)
Start Oracle GoldenGate Replicat (Zielsystem)
Stop Oracle Streams Capture (Quellsystem)
De-Installation Oracle Streams (Quell- und Zielsystem)
1912338.1
Migration Utility: streams2ogg
Installation des Database Packages
Package Funktionen: MAIN und CUSTOMIZE
Analyse der Oracle Streams Konfiguration
Ergebnis-File: ogg_name_map.csv
Optional: Editieren des Ergebnis-Files
Aufbau der Oracle GoldenGate Kommando-Files
Aufbau der Oracle GoldenGate Parameter-Files
Tabelle 9: Oracle Support Notes zur Migration von Streams zu GoldenGate
7. Oracle GoldenGate Foundation Suite
Die OGG Foundation Suite existiert erst ab GoldenGate Version 12.2. Unter diesem Name hat man
jetzt eine neue und zwei bereits existierende Zusatzkomponenten zusammengefaßt:
1. OGG Studio (neu mit Version 12.2)
2. OGG Management Pack
- Enterprise Manager Plug-In
- Monitor
- Director
3. OGG Veridata
Mit der Lizensierung der Foundation Suite ist man berechtigt, alle drei aufgeführten Produkte zu
nutzen. Zum besseren Verständnis noch ein paar weiterführende Erklärungen. OGG Studio ist erst ab
OGG Version 12.2 verfügbar und kann nicht als Einzelkomponente lizensiert werden. Es wird unter
Punkt 8.2 näher beschrieben. Management Pack und Veridata existieren schon seit Version 11 von
GoldenGate und sind im Dojo 6 beschrieben. Beide Komponenten kann der Kunde auch einzeln
erwerben. Mit dem Management Pack stellt Oracle eine grafische Oberfläche für die Konfiguration,
das Überwachen und Steuern der GoldenGate Prozesse bereit.
Die Validierungskomponente heißt GoldenGate Veridata. Mit dieser Software kann man Objekte der
Quelldatenbank mit Objekten der Zieldatenbank vergleichen. Man stellt dabei fest, ob beide
Datenbestände noch konsistent sind. Beide Komponenten werden in einem Installationsfile
19
bereitgestellt. Hat man beide Lösungen lizenziert sollte man auch beide gleichzeitig installieren. Das
spart Zeit, ist übersichtlicher und wird später noch angesprochen.
7.1. GoldenGate Monitor und Enterprise Manager Plug-In
Abbildung 15: GoldenGate Monitor und Enterprise Manger (Plug-In) Architektur
Der GoldenGate Director wird in dieser Schrift nicht mehr erwähnt. Er ist nur noch notwendig, wenn
die "Uralt-Version" 10.4 von GoldenGate verwendet wird. Diese sollte aber heute niemand mehr
einsetzen. In den drei Jahren zwischen Dojo 6 und dieser Beschreibung sind das Plug-In und der
Monitor funktional stark erweitert worden. Das heißt, die Funktionen des GoldenGate Director sind
jetzt auch im Plug-In und im Monitor vorhanden. Der funktionelle Umfang des Plug-In entspricht
dabei dem vom OGG Monitor nur die grafischen Darstellungen weichen voneinander ab. Monitor
und EM Plug-In arbeiten mit identischen Java Agents. Einen EM Agent benötigt man nur in
Verbindung mit der Nutzung des Enterprise Managers Plug-In. Die Installation ist mit Version 12.1.3
aufwendiger geworden. Der Monitor und Veridata wurden in die "Oracle Fusion Middleware
Infrastructure 12c (12.1.3)" integriert. Zu dieser Infrastruktur gehören Oracle Coherence und der
WebLogic Server. Bevor man also Monitor und Veridata installieren und nutzen kann, muß die
Infrastruktur existieren. Man benötigt weiterhin eine Java JDK in der Version 1.7.0.15 oder höher und
eine Repository Datenbank. Diese kann Oracle (11gR1, 11gR2 oder 12c), oder Microsoft SQL Server
(2008 oder 2012) sein. Es ist sinnvoll und erspart Zeit, wenn man beide Komponenten (Monitor und
Veridata) gemeinsam in eine WebLogic Server Domain installiert. Das betrifft auch die GoldenGate
Agents für den Monitor und die für Veridata. Man muß zuerst die richtigen Installationsdateien
finden und die Installationshandbücher genau ansehen. Die Installation der Version 12.1.3 habe ich
in einer Windows-Umgebung auf meinem Laptop durchgeführt und die einzelnen Schritte in diesen
drei Dokumenten beschrieben:
1. "Experiences with OGG Monitor 12c under Windows7, Part One - Installation and Startup"
2. "Experiences with OGG Monitor 12c under Windows7, Part Two - Monitoring"
3. "WebLogic Server - OGG Domain under Windows7,
Startup and Shutdown Admin Server and Managed Servers"
20
Alle drei Dokumente sind in Englisch geschrieben und unter dem Link im Punkt 10.7 zu finden. Zu
beachten ist, daß die aktuellste Version zur Zeit schon 12.2.1 ist. Da der Monitor mit all seinen neuen
Funktionen im zweiten der aufgeführten Beschreibungen ausführlich behandelt wird, möchte ich an
dieser Stelle nicht weiter darauf eingehen. Voraussetzung für jede Art des Monitorings ist der
Parameter „ENABLEMONITORING“ in der Parameterdatei „GLOBALS“. Die Nutzung dieses
Parameters erfordert eine Lizensierung des Management Packs oder der Foundation Suite. Das gilt
auch für die unter Punkt 8.4. aufgeführten zusätzlichen Monitoring Möglichkeiten.
7.2. GoldenGate Veridata
Abbildung 16: Oracle GoldenGate Veridata - Architektur
Oracle Veridata ist eine Komponente zum Datenvergleich zwischen Quell- und Zieldatenbank. Dabei
arbeitet Veridata parallel zur GoldenGate Replikation und erzeugt nur eine geringe Systemlast. Es ist
auch für heterogene Umgebungen einsetzbar, in denen Quell- und Zieldatenbank unterschiedlich
sind. Ab Version 12.1.3 beinhaltet Veridata auch eine "Repair" Funktion. Mit deren Hilfe ist es
möglich, Differenzen bzw. Inkonsistenzen zwischen Quell- und Zieldaten regelbasierend zu
korrigieren. Veridata berücksichtigt dabei definierte Verzögerungszeiten (Replication Latency
Thresholds), die durch die Replikationsprozesse entstehen. Wie die Architektur in Abbildung 16 zeigt,
muß in der Quell- und in der Zielumgebung ein Veridata Agent laufen. Die Agenten erhalten Aufträge
in Form von Jobs. Ein Veridata Job verarbeitet ein oder mehrere Vergleichspaare (Compare Pairs), die
vom Veridata Nutzer definiert wurden. Jeder Agent ist mit der jeweiligen Datenbank verbunden und
liefert die zu einem Compare Pair gehörenden Datensätze an den Veridata Server. Dieser vergleicht
dann beide Datenbestände und stellt einen Ergebnis-Report bereit. Die Aufbereitung der Resultate
erfolgt in Tabellen und in grafischer Form.
7.3 GoldenGate Application Adapters
GoldenGate repliziert im klassischen Sinne zwischen relationalen Datenbanken. Dabei werden
Transaktionen auf der Quelldatenbank erfaßt und in einer Zieldatenbank nochmal ausgeführt. Mit
den OGG (Java) Application Adaptern hat man zusätzliche Möglichkeiten geschaffen, Daten zwischen
unterschiedlichen Systemen auszutauschen, z.B.: Lesen von oder Schreiben von Transaktionsdaten in
Java Message Service Queues oder das Schreiben von Transaktionsdaten in Flat-Files. Alle Adapter
21
sind Java Programme die als Vendor Access Module oder User Exits mit einem Capture-Prozeß
zusammenarbeiten.
Seit Version 11 von GoldenGate existieren die folgenden Java Application Adapter:
1. GoldenGate Message Capture Adapter for JMS (Vendor Access Module – VAM)
2. GoldenGate Message Delivery Adapter for JMS (User Exit – UE)
3. GoldenGate Message Delivery Adapter for Flat-File (User Exit – UE)
Abbildung 17: Oracle GoldenGate JMS Messages Capture Adapter
Abbildung 18: Oracle GoldenGate JMS Messages Delivery Adapter
Abbildung 19: Oracle GoldenGate Message Delivery Adapter for Flat-File
Es ist zu beachten, daß der Message Delivery Adapter auf der Zielseite mit einem GoldenGate Extract
Prozeß zusammen arbeitet. Das Liefern der Daten (Delivery) übernimmt dann der entsprechende
Java User Exit. Das ist beim OGG Flat File Adapter (Abbildung 19) genau so. Inhalt der durch den Flat
File Adapter erstellten Dateien sind entweder durch Trennzeichen separierte Daten oder
längenbegrenzte Daten. Im Control File sind alle gegenwärtig aktiven Ergebnisdateien verzeichnet.
22
Der Message Delivery Adapter erzeugt Daten im XML Format oder „mapped“ die Ergebnisdaten über
JMS.
Es gibt noch einen weiteren Java Adapter für GoldenGate, den Hotcache Coherence Adapter. Dieser
ermöglicht die Synchronisation des Coherence Cache Inhaltes mit dem Inhalt der Oracle Datenbank.
Ein White Paper zu diesem Adapter und ein Installationsbeispiel finden Sie unter dem Link im Punkt
10.7.
8. GoldenGate 12cR2 – Neue Produkte
8.1. GoldenGate for Big Data
Abbildung 20: Oracle GoldenGate for Big Data 12cR2
Mit Version 12c gibt es mit Oracle GoldenGate for Big Data ein neues Produkt. GoldenGate for Big
Data ist eine Java Lösung zur Echtzeit (Real-Time) Belieferung von Big Data Systemen. Unterstützt
werden Big Data Lösungen wie Apache Hadoop, Apache HBASE, Apache Hive und Apache Flume. Mit
Version 12cR2 ist noch Kafka hinzugekommen. OGG for Big Data ist neben dem Oracle Data
Integrator (ODI) 12c eine Schlüsselkomponente der Oracle Big Data Integration. OGG for Big Data
beinhaltet auch GoldenGate for Java mit dem es möglich ist, JMS Provider wie beispielsweise
ActiveMQ zu integrieren. Durch die Arbeit in Real-Time sorgt OGG for Big Data für aktuellste Daten in
den „Big Data Reservoirs“ bzw. „Big Data Lakes“. Oracle GoldenGate for Big Data dient in
Kombination mit dem klassischen GoldenGate als End-to-End Plattform für Datenreplikation
zwischen heterogenen Systemen. GoldenGate for Big Data wird an dieser Stelle nicht ausführlicher
beschrieben. Die Architektur und die Vielzahl der unterstützten Systeme sollten Gegenstand eines
zusätzlichen Dokumentes sein.
23
8.2. GoldenGate Studio
Abbildung 21: GoldenGate Studio - Startbild
Anfang des Jahres 2016 wurde mit Version 12.2 das OGG Studio von Oracle freigegeben. OGG Studio
ist Bestandteil der Foundation Suite (siehe Punkt 7) und bietet eine grafisches Nutzeroberfläche,
über die man schnell und übersichtlich eine Replikationslösung konfigurieren kann, ohne das man
Kenntnisse der GoldenGate Replikationsprozesse und deren Parametrisierung hat. OGG Studio ist
eine Middleware Komponente und arbeitet wie auch der OGG Monitor und OGG Veridata auf der
Grundlage eines Datenbank Repository. Jeder OGG Studio Nutzer benötigt deshalb einen Connect
zur Repository Datenbank. Wie üblich arbeitet man auch auf dieser grafischen Oberfläche mit
Projekten. Ein Projekt beinhaltet eine oder mehrere Solutions denen Mappings zugeordent werden.
Mit anderen Worten gesagt, innerhalb eines Projektes werden die beteiligten Datenbanken, die
Replikationswege und die Replikationsobjekte logisch definiert und als Solutions und Mappings
abgelegt. Eine Solution ist dabei eine Replikationsstrecke und ein Mapping legt fest, welche
Datenbank-Schematas oder Einzelobjekte repliziert werden sollen. Unterstützt wird der Nutzer dabei
durch sogenannte „Wizards“ (Expertenunterstützung) und „Best Practices Templates“ (vorbereitete
Replikationszenarien). Das heißt, die möglichen GoldenGate Replikations-Topologien, wie z. B. UniDirektional, Bi-Direktional und Hub & Spoke, brauchen nur noch ausgewählt werden und OGG Studio
sorgt im Hintergrund für die benötigten GoldenGate Prozesse und deren Konfiguration. Der Nutzer
kann dabei zwischen Online und Offline Konfiguration auswählen. Online bedeutet, die Replikation
wird konfiguriert und die Replikationsprozesse werden sofort gestartet. Die Offline Konfiguration
erstellt alle benötigten Parameter Files und Kommando Files (OBEY Files) und der Nutzer kann sich
diese erst anschauen und eventuelle Änderungen vornehmen.
24
Abbildung 22: GoldenGate Studio – Struktur der Entwicklunsoberfläche
Nachdem das logische Design vorhanden ist werden sogenannte Deployment Profiles definiert. Diese
sorgen dafür, daß ein logisches Design auf die notwendigen physichen Ressourcen abgebildet wird.
Abbildung 23: GoldenGate Studio – OGG Solution „Tokyo to New York”
25
8.3. GoldenGate Cloud Service (GGCS)
Seit März 2016 gibt es den ersten Oracle GoldenGate Cloud Service (GGCS) „On-Premise to Cloud“.
Alle weiteren geplanten GGCS werden in Kürze auch verfügbar sein. Informationen dazu findet man
unter cloud.oracle.com/goldengate. Funktionell gibt es keinen Unterschied zwischen einem OnPremise Service und einem Cloud Service.
Abbildung 24: Verfügbarkeit der Oracle GoldenGate Cloud Services
8.4. Neue Monitoring Möglichkeiten
Jede Art von Monitoring erfordert die Angabe von ENABLEMONITORING in der Parameterdatei
GLOBALS. Für die Nutzung dieses Parameters ist eine Lizeznz für das Management Pack bzw. für die
Foundation Suite erforderlich (siehe Punkt 7.1.).
8.4.1. Monitoring Points über RESTful Web Services
Unter dem Begriff “Extended Metrics“ stellt Oracle GoldenGate ab Version 12.2. RESTful Web
Services zum Überwachen der Replikationsprozesse bereit. Im Gegensatz zum GoldenGate Monitor
sind dafür keine Installationschritte erforderlich. Der Zugriff auf diese Informationen ist sehr einfach
über Browser möglich. Über die Angabe des Rechnername (oder der IP-Adresse) und des ManagerPorts können alle Angaben zu einer GoldenGate Instanz sichtbar gemacht werden:
26
HTTP – Adresse
http://<hostname>:<mgr_port>/registry
http://<hostname>:<mgr_port>/groups
groups/<name>
http://<hostname>:<mgr_port>/messages
http://<hostname>:<mgr_port>/statuschanges
http://<hostname>:<mgr_port>/mpoints
mpointsx
Anzeige
Augenblicklicher Zustand der
Prozesse
Prozeß und
Prozeßinformationen
ggserr.log Meldungen
Alle Prozeß-Statusänderungen
Einen Prozeß anzeigen
Alle Prozesse anzeigen
Tabelle 10: Monitoring Points ab OGG 12.2.
Abbildung 25: Monitoring Points für Extract Prozeß E1NO121P
27
Weitere Infos
über Link
Nein
Ja
Nein
Nein
Ja
Abbildung 26: Monitoring MPOINTSX für Integrated Replicat Prozeß R_NO121P
8.4.2. Oracle GoldenGate Performance Tool Kit (OGGPTK)
Im Rahmen eines Open Source Projektes wurde das OGG Performance Toolkit entwickelt. Das
Programm ist ab Version 12.2. nutzbar und steht unter diesem Link zum Download bereit:
https://java.net/projects/oracledi/pages/OracleGoldenGate
Voraussetzung für die Nutzung sind:
1. GGSCI-Kommando: CREATE DATASTORE
2. Parameter: ENABLEMONITORING in Datei: GLOBALS
3. Restart der OGG Prozesse (Manager, Extract und Replicat)
Aufgerufen wird das Programm über das Kommando: java -jar OGGPTK.jar
Abbildung 27: Monitoring über Java Tool OGGPTK.jar
28
9. GoldenGate 12cR2 – Neue Funktionen
9.1. Meta-Daten im Trail-File
Haben die zu replizierenden Tabellen auf der Quell- und Zielseite eine identische Struktur teilt man
das über den Parameter „ASSUMETARGETDEFS“ dem Replikationsprozeß mit. Wenn nicht, dann muß
man der Zielseite die Struktur der Quelltabelle mitteilen. GoldenGate nutzt dazu ein sogenanntes
„Source Definition File“. Dieses Datei wird mit dem OGG Programm DEFGEN auf der Quell-Instanz
erstellt und dann zur OGG Ziel-Instanz kopiert. Dem Replikationsprozeß wird der Name dieser Datei
mittels Parameter „SOURCEDEFS“ übergeben. Mit Hilfe der in der Datei vorhandenen Informationen
kann die Replikation unter Beachtung der Unterschiede wie gewünscht durchgeführt werden. Mit
OGG 12.2 ist dieser Aufwand nicht mehr nötig, weil das GoldenGate Trail-File die Struktur des Quellobjektes automatisch beinhaltet. Man bezeichnet das Trail-File vom Format 12.2 deshalb als selbstbeschreibendes Trail-File. Damit sind beiden erwähnten Parameter nicht mehr notwendig und ein
„Source Definition File“ wird auch nicht mehr benötig. Das vereinfacht die Konfiguration der
Replikationsprozesse und macht sie weniger fehleranfällig.
Abbildung 28: Selbst-beschreibendes Trail-File ab Version 12.2
Das Trail-File beinhaltet ab OGG Version 12.2 zusätzlich „Metadata Records“. Das sind Database
Definition Records (DDR) und Table Definition Records (TDR). Ein DDR enthält Informationen über
den Zeichensatz der Datenbank (Database Character Set), die Zeitzone (Time Zone) und über die
Kleinschreibung von Objektnamen (Object name case-sensitive). Der erste TDR zu einer Tabelle
beinhaltet Tabellen- und Spalteninformationen. Ein Folgesatz zur gleichen Tabelle ist ein
Referenzsatz und wird als „Ref TDR“ bezeichnet. Er besteht nur aus einem Satzkopf (Record Header)
und verweist auf den bereits vorhandenen TDR mit Informationen zur Struktur der Tabelle.
Über den Parameter “NO_USE_TRAILDEFS” im Parameter File “GLOBALS” kann man in einer OGG
Instanz weiterhin mit „SOURCEDEFS“ und „ASSUMETARGETDEFS“ arbeiten. Will man nur teilweise
nach der alten Methode arbeiten nutzt man die Parameter „SOURCEDEFS OVERRIDE“ und
„ASSUMETARGETDEFS OVERRIDE“.
29
9.2. Trail-File Namen mit 9 Ziffernstellen
Trail-File Namen bestanden bisher aus zwei Alphazeichen und sechs Ziffern. Für jedes neue Trail-File
wird die sechstellige Ziffer um eins erhöht. Damit konnten bis zu 999.999 Trail-Files erstellt werden,
bevor die Nummerierung wieder bei eins begann. Mit Version 12.2. von GoldenGate wurde der
numerische Teil des Names von sechs auf neun Ziffernstellen erweitert. Damit sind jetzt eine
Milliarde Trail-Files möglich (vorher 1 Million).
OGG Version
10, 11, 12.1
12.2+
Trail-File Namen
AA999999
(1 – 999.999)
AA999999999 (1 – 999.999.999)
Tabelle 11: Namensformat der Trail-Files
Die Verwendung des neuen Formats ist empfohlen, aber nicht zwingend. Mit dem Parameter
„TRAIL_SEQLEN_6D“ in der Paramaterdatei „GLOBALS“ kann die Nutzung von sechsstelligen Trail-File
Nummern gewählt werden (Parameter „TRAIL_SEQLEN_9D“ ist der Standard).
Die Umstellung auf das neue Format erfolgt nach dem ordnungsgemäßen Stoppen des ExtractProzesses mittels des Konvertierungsprogramms CONVCHK für alle vorhandenen Trail-Files:
CONVCHK <extract_name> <trail_path> seqlen_9d [-force]
9.3. Automatische Heartbeat-Table
9.3.1. Einrichtung
Zur Überwachung einer Replikation wurde schon immer eine sogenannte Heartbeat-Table bzw. eine
Herzschlagtabelle empfohlen. Das war schon bei Oracle Streams so und ist bei Oracle GoldenGate
nicht anders. Wie funktioniert eine solche Tabelle? In jeder an der Replikation beteiligten Datenbank
wird eine Tabelle mit zwei Spalten definiert. Die erste Spalte beinhaltet den globalen Name der
Datenbank (Primary Key) und die zweite Spalte beinhaltet die aktuelle Zeit. In der Tabelle erstellt
man für jede an der Replikation beteiligte Datenbank einen Datensatz. Bei einer bi-direktionalen
Replikation sind das auf beiden Seiten 2 Datensätze (Rows), einer für die primäre und einer für die
sekundäre Datenbank. Die Herzschlagtabelle bezieht man in beiden Datenbanken in jede laufende
Replikation ein. In einem empfohlenen Zeitintervall von 60 Sekunden aktualisiert man in jeder
Heartbeat-Table den Zeitwert in Spalte zwei. Dabei aktualisiert man aber immer nur die Row, bei der
der Primary Key mit dem Global Name der Datenbank übereinstimmt. Die laufende Replikation sorgt
dann dafür, daß auf der Zieldatenbank die Row mit dem entsprechenden Primary Key in wenigen
Sekunden die aktuelle Zeit beinhaltet. Wird der Wert nicht mehr zeitnah aktualisiert, ist das ein
Zeichen dafür, daß es Probleme bei der Replikation gibt.
Hinweis:
Zum besseren Verständnis sind Aufbau und Inhalt einer
Heartbeat-Table im Dojo 6 ausführlich beschrieben.
30
Eine Neuerung der Version 12.2 von GoldenGate ist die automatische Heartbeat-Table. Über das
Kommando „ADD HEARTBEATTABLE“ werden automatisch alle erforderlichen Datenbankobjekte
(Tabellen, Views, Procedures und Scheduler Jobs) erstellt. Das Kommando erfordert ein Login in die
Oracle Datenbank (DBLOGIN). Bei Nutzung der Multitenant Architektur ist das immer eine PDB. Es
können die Parameter „FREQUENCY“, „RETENTION_TIME“ und „PURGE_FREQUENCY“ angegeben
werden:
Parameter
FREQUENCY
RETENTION_TIME
PURGE_FREQUENCY
Standardwert
Bedeutung
60 Sekunden
30 Tage
Aktualisierungsintervall der Heartbeat-Table
Löschen von Einträgen der HeartbeatHistory-Table die älter sind.
Häufigkeit mit der der Purge Job die
verfallenen Einträge in der HeartbeatHistory-Table löscht.
1 Tag
Tabelle 12: Parameter für das Einrichten einer automatischen Heartbeat-Table
Objekt
Heartbeat-Table
Heartbeat-Seed-Table
Heartbeat-History-Table
GoldenGate Lag
GoldenGate History Lag
Update Procedure
Purge Procedure
Update Job
Purge Job
Typ / Inhalt
Standard Name
Tabelle (1 Zeile)
Tabelle (1 Zeile)
Tabelle (n Zeilen)
View
(1 Zeile)
View (n Zeilen)
Procedure
Procedure
Job
Job
hbschema.GG_HEARTBEAT
hbschema.GG_HEARTBEAT_SEED
hbschema.GG_HEARTBEAT_HISTORY
hbschema.GG_LAG
hbschema.GG_HISTORY_LAG
hbschema.GG_UPDATE_HB_TAB
hbschema.GG_PURGE_HB_TAB
hbschema.GG_UPDATE_HEARTBEATS
hbschema.GG_PURGE_HEARTBEATS
Tabelle 13: Datenbankobjekte für die Unterstützung einer automatischen Heartbeat-Table
Mit dem Parameter „GGSCHEMA hbschema“ in der Datei „GLOBALS“ gibt man das Schema an, unter
dem die Datenbankobjekte erstellt werden sollen.
Die Parameter „ENABLE_HEARTBEAT_TABLE“ bzw. „DISABLE_HEARTBEAT_TABLE“ können im
Parameter File „GLOBALS“ oder im Parameter File eines Extract- oder Replicat-Prozesse gesetzt
werden. „ENABLE_HEARTBEAT_TABLE“ ist der Standard wenn nichts angegeben wurde. Mit
„DISABLE_HEARTBEAT_TABLE“ kann man die Nutzung einer automatischen Heartbeat-Table
verhindern. In der Regel wird man die Herzschlagtabelle für alle Prozesse einer GoldenGate Instanz
nutzen, das heißt, man wird keine Prozesse gezielt ausschließen.
Mit dem GGSCI Kommando „INFO HEARTBEATTABLE“ kann man überprüfen, ob die automatische
Heartbeat-Table für die GoldenGate Instanz bereits konfiguriert ist:
GGSCI (JJAENSCH-T450) 6> info heartbeattable
ERROR: Not logged into database, use DBLOGIN.
GGSCI (JJAENSCH-T450) 7> dblogin userid oggadmin@noc121p password OGGADMIN
Successfully logged into database.
GGSCI (JJAENSCH-T450 as oggadmin@noc121p) 8> info heartbeattable
HEARTBEAT table OGGADMIN.GG_HEARTBEAT exists.
HEARTBEAT table OGGADMIN.GG_HEARTBEAT_SEED exists.
HEARTBEAT table OGGADMIN.GG_HEARTBEAT_HISTORY exists.
31
Frequency interval: 60 seconds.
Purge frequency interval: 1 days.
Retention time: 30 days.
...
Abbildung 29: Ausgabe des Kommandos: INFO HEARTBEATTABLE
9.3.2. Nutzung
Nach dem Einrichten der Herzschlagtabelle erkennt diese automatisch alle aktiven Replikationswege
und liefert dafür die Heartbeat Informationen. Es wird dabei nach Richtungen unterschieden. Ist die
Datenbank das Ziel einer Replikation (Replicat-Prozeß), dann spricht man von einer eingehenden
(Incoming) Verbindung. Ist die Datenbank der Startpunkt für einen Replikationsweg (Extract-Prozeß)
handelt es sich um eine ausgehende (Outgoing) Verbindung. Für jede Richtung beinhaltet der Eintrag
in der Heartbeat-Table die folgenden Werte:
1. Verzögerungszeit (Lag or Lag Time)
2. Alter des letzten Eintrages in der Heartbeat-Table (Age of last Heartbeat)
3. Namen der Lokalen (local) und der Entfernten (remote) Datenbank
Abbildung 30: Verzögerungszeiten im View: GG_LAG (Outgoing und Incoming)
Für die Abfrage des Inhaltes der Herzschlagtabelle ist ein Connect zur Datenbank notwendig. Ist man
nicht mit der Datenbank verbunden, liefert das Kommando „LAG <process_name>“ nur den zweiten
Teil der Ausgabe:
(1. Teil)
GGSCI (JJAENSCH-T450 as oggadmin@noc121s) 11> lag r_no121s
Lag Information From Heartbeat Table
LAG
4.35s
2.81s
AGE
39.08s
58.53s
FROM
NOC121P
NOC121S
TO
NOC121S
NOC121P
32
PATH
E1NO121P ==> P1NO121P ==> R_NO121S
E1NO121S ==> P1NO121S ==> R_NO121P
(2. Teil)
Sending GETLAG request to REPLICAT R_NO121S ...
Last record lag 4 seconds.
Low watermark lag: 13.
High watermark lag: 5.
Low watermark position: 2809689.
High watermark position: 2809711.
At EOF, no more records to process.
Abbildung 31: Nachrichten des Kommandos: LAG R_NO121S
9.4. OGG Parameteranalyse
Die GoldenGate Prozesse Extract, Pump und Replicat werden über Parameter konfiguriert bzw.
gesteuert. Mit OGG Version 12.2 werden drei neue Funktionen bereitgestellt, die dem Administrator
helfen, Parameter sichtbar zu machen und Fehler bei der Parametrisierung der einzelnen Prozesse zu
erkennen:
GGSCI Kommando / Programm
Erklärung
INFO PARAM <parameter_name>
Information über einen bestimmten Parameter
SEND <process_name> GETPARAMINFO
Anzeige der Parameter eines aktiven Prozesses
Programm: CHECKPRM
Prüfen aller Parameter eines OGG Prozesses
Tabelle 14: Möglichkeiten der Parameteranalyse
D:\gg122o_src>ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 12.2.0.1.0 OGGCORE_12.2.0.1.0_PLATFORMS_151101.1925.2
Windows x64 (optimized), Oracle 12c on Nov 10 2015 21:56:24
Operating system character set identified as windows-1252.
Copyright (C) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
GGSCI (JJAENSCH-T450) 1> info param LOGALLSUPCOLS
param name : logallsupcols
opposite
param name : nologallsupcols
description : For supplementally logged columns this automatically includes in the
trail record the before image for UPDATE operations before image of
all supplementally logged columns for both UPDATE and DELETE
operations. It will also log columns required to support CDR and
Integrated Replicat.
argument
: boolean
default
: true
options
:
component(s): EXTRACT
mode(s)
: all Extract modes
platform(s) : all platforms
versions
:
min ver : 12.1.2
database(s) : Oracle 8
Oracle 9i
Oracle 10g
Oracle 11g
33
status
mandatory
dynamic
relations
:
:
:
:
Oracle 12c
current
false
false
none
param name : logallsupcols
opposite
param name : nologallsupcols
description : For supplementally logged columns this automatically includes in the
trail record the before image for UPDATE operations before image of
all supplementally logged columns for both UPDATE and DELETE
operations. It will also log columns required to support CDR and
Integrated Replicat.
argument
: boolean
default
: false
options
:
component(s): EXTRACT
mode(s)
: all Extract modes
platform(s) : all platforms
versions
:
min ver : 12.1.2
database(s) : Generic
Sybase
DB2LUW 10.5
DB2LUW 10.1
DB2LUW 9.5
DB2LUW 9.7
DB2 Remote
Timesten
Timesten 7
Timesten 11.2.1
MySQL
Ctree8
Ctree9
DB2 for i
DB2 for i Remote
MS SQL
Informix
Informix1150
Informix1170
Informix1210
Ingres
SQL/MX
DB2 z/OS
PostgreSQL
status
: current
mandatory
: false
dynamic
: false
relations
: none
Abbildung 32: Nachrichten des GGSCI Kommandos: INFO PARAM LOGALLSUPCOLS
Für die Abfrage von untergeordneten Parameter (Subparameters) müssen die übergeordneten
Parameter mit angegeben werden. Die Trennung der einzelnen Paramater erfolgt dabei über einen
Punkt. Das folgende Kommando zeigt, wie es richtig gemacht wird:
GGSCI (JJAENSCH-T450) 11> info param dboptions.integratedparams.max_parallelism
param name :
description :
argument
:
default
:
pattern :
options
:
component(s):
mode(s)
:
platform(s) :
versions
:
min ver :
database(s) :
integratedparams.MAX_PARALLELISM
string
50
([0-9]{1,10})
REPLICAT
Integrated Replicat
all platforms
12.1.2
Oracle 11g
34
status
mandatory
dynamic
relations
:
:
:
:
Oracle 12c
current
false
false
none
Abbildung 33: Kommando: INFO PARAM DBOPTIONS.INTEGRATEDPARAM.MAX_PARALLELISM
GGSCI (JJAENSCH-T450) 10> send e1no121p getparaminfo
Sending GETPARAMINFO request to EXTRACT E1NO121P ...
GLOBALS
enablemonitoring
walletlocation
allowoutputdir
allowoutputdir
enableheartbeat
heartbeat_table
trail_seqlen_9d
ggschema
:
:
:
:
:
:
:
:
<enabled>
.\dirwal
d:\gg122aa_tar\dirdat
d:\gg122o_tar\dirdat
<enabled>
GG_HEARTBEAT
<disabled>
OGGADMIN
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
e1no121p
oggadmin@NOC121P
*******
./dirdat/NOC121P/aa
<enabled>
5 minute(s)
<enabled>
1 hour(s)
30 minute(s)
<enabled>
COMPACT
<enabled>
<enabled>
"TSTSTR"."STR_HEARTBEAT"
<enabled>
<enabled>
<enabled>
00
TSTSTR.STR_HEARTBEAT
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
<enabled>
D:\gg122o_src\dirprm\E1NO121P.prm
extract
userid
password
exttrail
reportcount
every
rate
warnlongtrans
checkinterval
logallsupcols
updaterecordformat
ddl
include
objname
ddloptions
report
tranlogoptions
excludetag
table
Default Values
deletelogrecs
fetchoptions
userowid
usekey
missingrow
usesnapshot
uselatestversion
maxfetchstatements
usediagnostics
detaileddiagnostics
diagnosticsonall
nosuppressduplicates
flushsecs
passthrumessages
ptkcapturecachemgr
ptkcaptureift
ptkcapturenetwork
ptkcapturequeuestats
ptkspstats
tcpsourcetimer
tranlogoptions
bufsize
asynctransprocessing
checkpointretentiontime
failovertargetdestid
<enabled>
<enabled>
ALLOW
<enabled>
<enabled>
100
<disabled>
<disabled>
<disabled>
<enabled>
1
<enabled>
<enabled>
<enabled>
<enabled>
<enabled>
<enabled>
<enabled>
1024000
300
7.000000
0
35
getctasdml
minefromsnapshotstby
usenativeobjsupport
retrydelay
allocfiles
allowduptargetmap
binarychars
checkpointsecs
cmdtrace
dynamicresolution
eofdelay
eofdelaycsecs
functionstacksize
numfiles
ptkcapturetablestats
ptkmaxtables
ptktablepollfrequency
varwidthnchar
ptkcaptureprocstats
ptkmonitorfrequency
use_traildefs
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
<disabled>
<disabled>
<enabled>
60
500
<disabled>
<enabled>
10 second(s)
OFF
<enabled>
1
100
200
1000
<enabled>
100
1
<disabled>
<enabled>
1
<enabled>
Abbildung 34: Nachrichten des GGSCI Kommandos: SEND E1NO121P GETPARAMINFO
GGSCI (JJAENSCH-T450) 9> send r_no121p getparaminfo
Sending GETPARAMINFO request to REPLICAT R_NO121P ...
GLOBALS
enablemonitoring
walletlocation
allowoutputdir
allowoutputdir
enableheartbeat
heartbeat_table
trail_seqlen_9d
ggschema
:
:
:
:
:
:
:
:
<enabled>
.\dirwal
d:\gg122aa_tar\dirdat
d:\gg122o_tar\dirdat
<enabled>
GG_HEARTBEAT
<disabled>
OGGADMIN
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
r_no121p
(NLS_LANG)
oggadmin@NOC121P
*******
<enabled>
./dirrpt/r_no121p.dsc
<enabled>
500
<enabled>
5 minute(s)
<enabled>
<enabled>
00
<enabled>
<enabled>
<enabled>
<enabled>
"TSTSTR"."STR_HEARTBEAT"
<enabled>
<enabled>
<enabled>
<enabled>
"TSTSTR"."STR_HEARTBEAT"
"TSTSTR"."STR_HEARTBEAT"
( ON UPDATE ALL, ON DELETE ALL)
( UPDATEROWEXISTS, (DEFAULT, OVERWRITE))
D:\gg122o_src\dirprm\R_NO121P.prm
replicat
getenv
userid
password
assumetargetdefs
discardfile
purge
megabytes
reportcount
every
rate
dboptions
settag
suppresstriggers
deferrefconst
ddl
include
objname
ddloptions
notag
updatemetadata
report
map
target
comparecols
resolveconflict
Default Values
allownoopupdates
applynoopupdates
: <disabled>
: <disabled>
36
auditreps
deferapplyinterval
grouptransops
maxdiscardrecs
maxsqlstatements
ptkcapturebatchsql
ptkirstatsfrequency
restartcollisions
retrydelay
warnrate
allocfiles
allowduptargetmap
binarychars
checkpointsecs
cmdtrace
dboptions
limitrows
reparselobsql
skiptemplob
dynamicresolution
eofdelay
eofdelaycsecs
functionstacksize
numfiles
ptkcapturetablestats
ptkmaxtables
ptktablepollfrequency
varwidthnchar
ptkcaptureprocstats
ptkmonitorfrequency
use_traildefs
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
<enabled>
0 second(s)
50
0
250
<enabled>
10
<disabled>
60
100
500
<disabled>
<enabled>
10 second(s)
OFF
<enabled>
<disabled>
<enabled>
<enabled>
1
100
200
1000
<enabled>
100
1
<disabled>
<enabled>
1
<enabled>
Abbildung 35: Nachrichten des GGSCI Kommandos: SEND R_NO121P GETPARAMINFO
D:\gg122o_src>checkprm dirprm\e1no121p.prm
(e1no121p.prm) line 11: Parameter [LOGALLSUPCOL] is unrecognized and will be ignored.
No parameter definition with that name could be found.
2016-05-19 11:49:42 INFO OGG-10139 Parameter file dirprm\e1no121p.prm: Validity check: FAIL.
D:\gg122o_src>checkprm dirprm\p1no121p.prm
2016-05-19 11:50:01 INFO OGG-10139 Parameter file dirprm\p1no121p.prm: Validity check: PASS.
Runtime parameter validation is not reflected in the above check.
D:\gg122o_src>checkprm dirprm\r_no121p.prm
2016-05-19 11:50:16 INFO OGG-10139 Parameter file dirprm\r_no121p.prm: Validity check: PASS.
Runtime parameter validation is not reflected in the above check.
Abbildung 36: Nachrichten des Programms CHECKPRM für drei Parameterdateien
Der Fehler in der Parameterdatei E1NO121P.PRM wurde gezielt eingebaut um die Reaktion des
Programmes CHECKPRM zu zeigen.
9.5. Automatische Tabellen Instantiierung
Bei einer homogenen Oracle Replikation stehen für die Erstbefüllung (Initial-Load) der ZielDatenbank mehrere Möglichkeiten zur Verfügung. Diese können sein Create Table as Select (CTAS),
ein RMAN Backup, Export / Import oder besser DataPump Export / Import. Alle diese Methoden
gestatten die Angabe der Oracle System Change Number (SCN), das heißt die Daten sind konsistent
und der Startpunkt für die Replikation der Änderungen ist durch die SCN eindeutig festgelegt. Bisher
mußte man die aktuelle SCN vor dem Kopieren der Daten abfragen und dem Oracle Tool beim Start
37
mitgeben (siehe Dojo 6, Punkt 2.7.). Mit Oracle GoldenGate 12.2 und Oracle Datenbank 12.1.0.2
wurde die automatische Tabellen Instantiierung für DataPump Export / Import eingeführt. Damit
entfällt die Angabe der SCN beim Erstellen der Datenkopie und jede Tabelle hat ihre eigene SCN.
Nach dem Initial-Load auf der Zieldatenbank filtert der Replicat-Prozeß auf der Basis der SCN für jede
einzelne Tabelle die Transaktionen, die repliziert werden müssen.
Abbildung 37: Ablauf der automatischen Tabellen Instantiierung
38
10. GoldenGate - Informationsquellen
10.1. Systemdokumentation
Oracle GoldenGate Oracle Installing and Configuring Oracle GoldenGate for Oracle 12c (12.2.0.1)
http://docs.oracle.com/goldengate/c1221/gg-winux/GIORA/GIORA.pdf
Oracle GoldenGate Administering Oracle GoldenGate for Windows and UNIX 12c (12.2.0.1)
http://docs.oracle.com/goldengate/c1221/gg-winux/GWUAD/GWUAD.pdf
Oracle GoldenGate Reference for Oracle GoldenGate for Windows and UNIX 12c (12.2.0.1)
http://docs.oracle.com/goldengate/c1221/gg-winux/GWURF/GWURF.pdf
Oracle Fusion Middleware Installing Oracle GoldenGate Studio 12c (12.2.1)
http://docs.oracle.com/goldengate/s1221/gg-studio/INGGT/INGGT.pdf
Oracle Fusion Middleware Using Oracle GoldenGate Studio 12c (12.2.1)
http://docs.oracle.com/goldengate/s1221/gg-studio/GGSUG/GGSUG.pdf
Oracle Enterprise Manager Oracle GoldenGate System Monitoring Plug-In Installation Guide 13c (13.1.1)
https://docs.oracle.com/goldengate/em1311/gg-emplugin/EMGGP/E68921-01.pdf
Oracle GoldenGate Enterprise Manager Plug-In Release Notes 13c (13.1.1.0.0)
https://docs.oracle.com/goldengate/em1311/gg-emplugin/GEMRN/E69610-01.pdf
Oracle GoldenGate Installing and Configuring Oracle GoldenGate Monitor 12c (12.2.1)
http://docs.oracle.com/goldengate/m1221/gg-monitor/GMINS/GMINS.pdf
Oracle GoldenGate Installing, Configuring and Upgrading Oracle GoldenGate Monitor Agent 12c (12.2.1)
http://docs.oracle.com/goldengate/m1221/gg-monitor/GGAIN/GGAIN.pdf
Oracle GoldenGate Administering Oracle GoldenGate Monitor 12c (12.2.1)
http://docs.oracle.com/goldengate/m1221/gg-monitor/GMNAD/GMNAD.pdf
Oracle GoldenGate Using Oracle GoldenGate Monitor 12c (12.2.1)
http://docs.oracle.com/goldengate/m1221/gg-monitor/GMNCH/GMNCH.pdf
Oracle GoldenGate Installing and Configuring Oracle GoldenGate Veridata 12c (12.2.1)
http://docs.oracle.com/goldengate/v1221/gg-veridata/GVDIS/E60969-01.pdf
Oracle GoldenGate Administering Oracle GoldenGate Veridata 12c (12.2.1)
http://docs.oracle.com/goldengate/v1221/gg-veridata/GVDAD/E60970-01.pdf
10.2. Datenblätter (Data Sheets)
Oracle GoldenGate
http://www.oracle.com/us/products/middleware/data-integration/oracle-goldengate-ds-2030490.pdf
Oracle GoldenGate for Big Data
http://www.oracle.com/us/products/middleware/data-integration/goldengate-for-big-data-ds-2415102.pdf
Oracle Management Pack for Oracle GoldenGate
http://www.oracle.com/us/products/middleware/data-integration/goldengate/059449.pdf
Oracle GoldenGate Veridata
http://www.oracle.com/us/products/middleware/059493.pdf
Oracle GoldenGate Application Adapters
http://www.oracle.com/us/products/middleware/data-integration/goldengate/goldengate-app-adapters-1449776.pdf
Oracle GoldenGate Studio
http://www.oracle.com/technetwork/middleware/goldengate/overview/ds-oggstudio-12-2-1-0-2868485.pdf
Oracle GoldenGate Cloud Service
https://cloud.oracle.com/_downloads/Datasheet_GoldenGate_1/Oracle_GoldenGate_Cloud_Service_DataSheet.pdf
10.3. White Papers
Transparent Zero Data-Loss Role Transition with Oracle Data Guard and Oracle GoldenGate
http://www.oracle.com/technetwork/database/availability/maa-consolidation-2186395.pdf
Oracle Goldengate With Oracle Real Application Clusters Configuration
http://www.oracle.com/technetwork/database/features/availability/maa-goldengate-rac-2007111.pdf
Ensuring Data Consistency with Oracle GoldenGate Veridata
http://www.oracle.com/us/products/middleware/data-integration/data-consistency-with-gg-veridata-1975236.pdf
39
10.4. Oracle Learning Library
http://www.oracle.com/goto/oll (Product Familie: Fusion Middleware  Product: GoldenGate)
10.5. Oracle Technology Network
Oracle GoldenGate on Oracle Technology Network (OTN)
http://www.oracle.com/us/products/middleware/data-integration/goldengate/index.html
10.6. Oracle Support Portal
https://support.oracle.com (Registrierung erforderlich:  Get Started  Register)
10.7. Oracle Data Warehouse Community
http://www.oracledwh.de/downloads/14_Oracle_Data_Integration/Data_Integration_Solutions_start.html
40
Anhang 1: Oracle GoldenGate DBA und Performance Views
Name
Beschreibung
DBA_GG_INBOUND_PROGRESS
Infos zum Verarbeitungsstand aller GoldenGate
Inbound- Server in der Datenbank
DBA_GOLDENGATE_INBOUND
Infos über alle GoldenGate Inbound-Server in der
Datenbank
DBA_GOLDENGATE_PRIVILEGES
Detaillierte Infos über die GoldenGate Privilegien
DBA_GOLDENGATE_RULES
Infos über alle GoldenGate Server Rules in der
Datenbank
DBA_GOLDENGATE_SUPPORT_MODE
Infos zum GoldenGate Capture Support der Tabellen in
der Datenbank
V$GG_APPLY_COORDINATOR
Infos über jeden GoldenGate Apply-Process Coordinator
(Integrated Apply)
V$GG_APPLY_READER
Infos über jeden GoldenGate Apply Reader
(Integrated Apply)
V$GG_APPLY_RECEIVER
Infos über den Message Receiver des Apply-Prozesses
V$GG_APPLY_SERVER
Infos über jeden GoldenGate Apply Server und seine
Aktivitäten (Integrated Apply)
V$GOLDENGATE_CAPTURE
V$GOLDENGATE_MESSAGE_TRACKING
Infos über jeden Capture-Prozeß, der LCRs an den
GoldenGate Outbound Server sendet (Integrated
Capture)
Infos über verfolgte ("tracked") LCRs auf ihrem Weg von
der Quell- zur Zieldatebank
V$GOLDENGATE_TABLE_STATS
Statistische Infos über alle Tabellen die von jedem
GoldenGate Apply Server genutzt werden
V$GOLDENGATE_TRANSACTION
Infos über Transaktionen, die vom GoldenGate CaptureProzeß, dem Outbound Server und dem Inbound Server
verarbeitet werden
Tabelle 1: Oracle GoldenGate (Static) DBA Views und (Dynamic) Performance Views
Hinweis:
Es existieren auch DBA... und V$... Views für den Oracle LogMiner
und für Oracle XStream.
Alle DBA... und V$... Views findet man in der Database Reference 12c.
41
Anhang 2: Aktualisierungshinweise zum Dojo 6
Inhalt
Dojo 6
Neu in OGG 12c
OGG Nutzung voll integriert in ODI Studio
Unterstützung E-Business Suite & ATG Web
Integration mit ADG
Unterstützt Oracle Cloud Konzept
Einsatzgebiete
Punkt 2.2
Unterstützte Plattformen
Punkt 2.3
Oracle 12c Multitenant
DB2 System i
Informix Dynamic Server (IDS)
Installation
Punkt 2.4
Für "OGG for Oracle" kann Oracle Universal Installer
genutzt werden
(Richtige OGG Version wird automatisch gewählt.)
Unterverzeichnisse
Punkt 2.4
Capture, Extract
Punkt 2.5.3
Für "OGG for Oracle" kann Integrated Capture
verwendet werden (ab 11.2.0.4, In Dojo 6 nur kurz
erwähnt und hier ausführlich beschrieben
Trail-Files
Punkt 2.6
(siehe auch Punkt 4!)
Beinhalten jetzt Source Character Set und die
Source Time Zone (NLS_LANG entfällt!)
Apply, Delivery
Punkt 2.7
Für "OGG for Oracle" kann Integrated Apply
verwendet werden
Hier ausführlich beschrieben
dircrd - Credential Store Files
dirdmp - Trace or Dump Files
Tabelle 1: Korrekturen im Dojo 6
München, 01. Juni 2016
Joachim Jaensch
Principal Sales Consultant
[email protected]
[email protected]
42