Datenbankverbindungs-, System- und Parametereinstellungen vorbereiten
Erfahren Sie, wie Sie Datenbankverbindungs-, System- und Parametereinstellungen für Oracle GoldenGate für Oracle konfigurieren.
GoldenGate-Replikations- und Archivmodus aktivieren
Schritt 1: GoldenGate-Replikation aktivieren
Die Datenbankservices, die zur Unterstützung von Oracle GoldenGate Extract und Replicat erforderlich sind, müssen explizit für Oracle AI Database aktiviert sein.
Um die Oracle GoldenGate-Replikation zu aktivieren, legen Sie den folgenden Datenbankinitialisierungsparameter fest. Für alle Instanzen in Oracle RAC muss dieser Wert auf TRUE gesetzt sein, wenn Oracle GoldenGate auf einem der Knoten verwendet wird.
ALTER SYSTEM SET enable_goldengate_replication = true SCOPTE=both;
Weitere Informationen zu diesem Parameter finden Sie unter Initialisierungsparameter.
2. Schritt: Archivierungsmodus aktivieren
Oracle-Datenbanken müssen sich im Modus ARCHIVELOG befinden, damit Extract die Logdateien verarbeiten kann. Um den ARCHIVELOG-Modus zu aktivieren, führen Sie die unter Datenbankarchivierungsmodus ändern angegebenen Schritte aus.
Flashback Query einstellen
Informationen zu den Daten, die Oracle GoldenGate abruft, finden Sie unter Details zur Unterstützung von Oracle-Datentypen und -Objekten.
Standardmäßig verwendet Oracle GoldenGate Flashback Query, um die Werte aus den Undo-(Rollback-)Tablespaces abzurufen. Auf diese Weise kann Oracle GoldenGate ein lesekonsistentes Zeilenimage zu einem bestimmten Zeitpunkt oder zu einer bestimmten SCN rekonstruieren, um dem Redo-Datensatz zu entsprechen.
Um optimale Fetch-Ergebnisse zu erzielen, konfigurieren Sie die Quelldatenbank wie folgt:
-
Legen Sie eine ausreichende Redo-Aufbewahrung fest, indem Sie die Oracle-Initialisierungsparameter
UNDO_MANAGEMENTundUNDO_RETENTIONwie folgt (in Sekunden) festlegen.UNDO_MANAGEMENT=AUTO UNDO_RETENTION=86400 UNDO_RETENTION can be adjusted upward in high-volume environments. -
Berechnen Sie den Speicherplatz, der im Undo Tablespace benötigt wird, mit der folgenden Formel.
*undo_space* = UNDO_RETENTION * *UPS* + *overhead*Wo:
-
undo_space ist die Anzahl der Undo-Blöcke.
-
UNDO_RETENTIONist der Wert des ParametersUNDO_RETENTION(in Sekunden). -
UPS ist die Anzahl der Undo-Blöcke pro Sekunde.
-
Overhead ist der minimale Overhead für Metadaten (Transaktionstabellen usw.).
Verwenden Sie die Systemansicht
V$UNDOSTAT, um den UPS- und Overhead zu schätzen. -
-
Führen Sie für Tabellen, die
LOBsenthalten, einen der folgenden Schritte aus:-
Setzen Sie die Speicherklausel
LOBaufRETENTION. Dies ist der Standardwert für Tabellen, die erstellt werden, wennUNDO_MANAGEMENTaufAUTOgesetzt ist. -
Wenn Sie
PCTVERSIONanstelle vonRETENTIONverwenden, setzen SiePCTVERSIONauf einen Anfangswert von 25. Sie können sie basierend auf den Fetch-Statistiken anpassen, die mit dem BefehlSTATS EXTRACTgemeldet werden. Wenn der Wert des FeldesSTAT_OPER_ROWFETCHCURRENTBYROWIDoderSTAT_OPER_ROWFETCH_CURRENTBYKEYin diesen Statistiken hoch ist, erhöhen SiePCTVERSIONin Schritten von 10, bis die Statistiken niedrige Werte anzeigen.
-
Oracle GoldenGate stellt die folgenden Parameter zur Verwaltung des Abrufs bereit.
| Parameter oder Befehl | Beschreibung |
|---|---|
STATS EXTRACT-Befehl mit Option REPORTFETCH |
Zeigt Extract-Abrufstatistiken bei Bedarf an. |
Parameter STATOPTIONS mit Option REPORTFETCH |
Legt den Befehl STATS EXTRACT so fest, dass immer Fetch-Statistiken angezeigt werden. |
Parameter MAXFETCHSTATEMENTS |
Steuert die Anzahl der offenen Cursor für vorbereitete Abfragen, die Extract in der Quelldatenbank und auch für SQLEXEC-Vorgänge verwaltet. |
Parameter MAXFETCHSTATEMENTS |
Steuert das Standardabrufverhalten von Extract: ob Extract eine Flashback-Abfrage ausführt oder das aktuelle Image aus der Tabelle abruft. |
Parameter FETCHOPTIONS mit der Option USELATESTVERSION oder NOUSELATESTVERSION |
Behandelt den Fehler einer Extract-Flashback-Abfrage, z.B. wenn die Undo-Erhaltung abgelaufen ist oder die Struktur einer Tabelle geändert wurde. Extract kann das aktuelle Image aus der Tabelle abrufen oder den Fehler ignorieren. |
Parameter REPFETCHEDCOLOPTIONS |
Steuert die Antwort von Replicat, wenn Traildatensätze verarbeitet werden, die abgerufene Daten oder Bedingungen für fehlende Spalten enthalten. |
Andere Datenbankeigenschaften bearbeiten
Es gibt einige Datenbankeigenschaften, die sich auf Oracle GoldenGate und die Parameter auswirken können, die zum Auflösen oder Umgehen bestimmter Bedingungen verwendet werden.
In der folgenden Tabelle sind die Datenbankeigenschaften und das zugehörige Problem/die zugehörige Lösung aufgeführt.
| Datenbankeigenschaft | Bedenken/Auflösung |
|---|---|
| Tabelle mit Intervallpartitionierung | Um Tabellen mit Intervallpartitionierung zu unterstützen, stellen Sie sicher, dass der Parameter WILDCARDRESOLVE den Standardwert DYNAMIC aufweist. |
| Tabelle mit virtuellen Spalten | Virtuelle Spalten werden nicht protokolliert, und Oracle lässt DML für virtuelle Spalten nicht zu. Sie können diese Daten jedoch erfassen und einer Zielspalte zuordnen, die keine virtuelle Spalte ist. Gehen Sie dazu wie folgt vor: Nehmen Sie die Tabelle in die Extract Ordnen Sie in der Replicat-Anweisung |
| Tabelle mit inhärent aktualisierbarer Ansicht | Um eine inhärent aktualisierbare View zu replizieren, definieren Sie einen Schlüssel für die eindeutigen Spalten in der aktualisierbaren View, indem Sie eine KEYCOLS-Klausel in derselben MAP-Anweisung verwenden, in der die verknüpften Quell- und Zieltabellen zugeordnet werden. |
| Redo-Logs oder Archive an verschiedenen Speicherorten | Der Parameter TRANLOGOPTIONS enthält Optionen zur Verarbeitung von Umgebungen, in denen die Redo-Logs oder Archive an einem anderen Speicherort als der Datenbankstandard oder auf einer anderen Plattform gespeichert sind als auf der Extract ausgeführt wird. |
TRUNCATE-Vorgänge |
Um
|
| Belegnummern | Um DDL für Sequenzen ( Um nur Sequence-Werte zu replizieren, verwenden Sie den Parameter |
Mehrmandanten-Containerdatenbank konfigurieren
Oracle GoldenGate mit Oracle AI Database ermöglicht die Implementierung von integrierbaren Datenbanken (PDBs) für Quelle und Ziel. Extract ist für eine bestimmte PDB registriert, die als "per-PDB Extract" bezeichnet wird.
Hinweis: Der Zugriff auf Root-Ebene mit dem Benutzer c##ggadmin wird nicht empfohlen, außer im Fall einer Downstream-Extract-Konfiguration. Verwenden Sie Extract auf PDB-Ebene anstelle von Extract auf Root-Ebene.
Das folgende Diagramm zeigt die Konfiguration für verschiedene Ansätze in einer mehrmandantenfähigen Containerdatenbankkonfiguration:

Wenn Sie Extract direkt aus der PDB hinzufügen, werden Daten aus isolierten PDBs erfasst. Dabei werden Eigentümer und Verantwortlichkeit auf PDB-Ebene verwaltet.
Mit einem Extract pro PDB können Sie sich als lokaler PDB-Benutzer (z.B. ggadmin) anmelden und diesen Extract dann bei der Datenbank registrieren. Da Sie bereits als PDB-Benutzer angemeldet sind, ist eine zusätzliche container-Klausel nicht erforderlich. Ebenso ist die Benennungskonvention SOURCECATALOG oder eine dreiteilige Benennungskonvention nicht erforderlich.
Informationen zum Einrichten eines Extract finden Sie unter Extract hinzufügen.
Überlegungen zur Konfiguration einer mehrmandantenfähigen Containerdatenbank
Beachten Sie die folgenden Richtlinien, wenn Sie eine mehrmandantenfähige Containerdatenbank für die Datenreplikation mit Oracle GoldenGate konfigurieren:
-
Die verschiedenen integrierbaren Datenbanken in der mehrmandantenfähigen Containerdatenbank können unterschiedliche Zeichensätze aufweisen. Oracle GoldenGate erfasst Daten aus beliebigen mehrmandantenfähigen Datenbanken mit unterschiedlichen Zeichensätzen in einer Traildatei und repliziert die Daten ohne Beschädigung aufgrund der Verwendung unterschiedlicher Zeichensätze.
-
Um einen PDB-Extrakt pro PDB zu erstellen und zu registrieren, müssen Sie eine Verbindung zum PDB-Benutzer herstellen, wie
ggadmin, der für den Zugriff auf PDB-Ebene erstellt wurde. Verwenden Sie den ParameterUSERIDALIAS, um eine SQL-Net-Verbindungszeichenfolge wieggadmin@pdbeastzu konfigurieren. Sie benötigen die Containerklausel oder dieSOURCECATALOGnicht, um den Extract pro PDB einzurichten. -
Wenn der PDB-Benutzername, der CDB-Benutzername oder GLOBAL_NAME einen Bindestrich enthält, löst Oracle GoldenGate den folgenden Fehler aus:
ERROR OGG-08221 Cannot register or unregister EXTRACT <extract_name> because of the following SQL error: OCI Error ORA (status = 44004-ORA-44004: invalid qualified SQL name -
Um die Quell-CDB 12.2 zu unterstützen, muss Extract das Trailformat als Release 12.3 angeben. Aufgrund von Änderungen in den Redo-Logs muss das Trailformat-Release 12.3 oder höher sein, um aus einer mehrmandantenfähigen Datenbank mit Oracle 12.2 oder höher zu erfassen.
-
Die DDL-Replikation funktioniert als normale Replikation für mehrmandantenfähige Datenbanken.
Informationen zum Hinzufügen eines mehrmandantenfähigen Containerdatenbankbenutzers in Oracle GoldenGate-Zugangsdaten finden Sie unter Datenbankverbindungen hinzufügen. Siehe Benutzerberechtigungen für Oracle Database 21c und niedriger erteilen oder Benutzerberechtigungen für Oracle AI Database 26ai und höher erteilen, je nach der Oracle AI Database-Installation, die Sie konfigurieren müssen.
Reihenfolge für mehrmandantenfähige Containerdatenbank leeren
Sie können den Befehl FLUSH SEQUENCE nur in Oracle GoldenGate verwenden, wenn das Skript sequence.sql die Datenbankprozeduren im Admin-Schema GoldenGate der Datenbank anwendet.
Verwenden Sie den Befehl FLUSH SEQUENCE sofort nach dem ersten Extract-Start bei einer anfänglichen oder erneuten Synchronisierung. Dieser Befehl aktualisiert eine Oracle-Sequenz so, dass anfängliche Redo-Datensätze zu dem Zeitpunkt verfügbar sind, an der Extract die Erfassung von Transaktionsdaten beginnt. Normalerweise wird Redo erst generiert, wenn der aktuelle Cache erschöpft ist. Durch den Flushvorgang erhält Replicat einen anfänglichen Startpunkt für die Synchronisierung mit dem richtigen Sequenzwert auf dem Zielsystem. Ab dann kann Extract den Redo verwenden, der mit der gewöhnlichen Cachereservierung von Sequenzwerten verknüpft ist. 1. Die folgenden Oracle-Prozeduren werden von FLUSH SEQUENCE verwendet:
| Database | Procedure | User and Privileges |
| --- | --- | --- |
| Source | `updateSequence` | Grants `EXECUTE` to the owner of the Oracle GoldenGate DDL objects, or other selected user if not using DDL support. |
| Target | `replicateSequence` | Grants `EXECUTE` to the Oracle GoldenGate Replicat user. |
{: summary="This table lists the Oracle procedures used by FLUSH SEQUENCE. It gives the database, procedure, and user and privileges." }
The `sequence.sql` script installs these procedures. Normally, this script is run as part of the Oracle GoldenGate installation process, but make certain that was done before using `FLUSH SEQUENCE`. If `sequence.sql` was not run, the flush fails and an error message similar to the following is generated:
<pre class="copy"><code>Cannot flush sequence {0}. Refer to the Oracle GoldenGate for Oracle documentation for instructions on how to set up and run the sequence.sql script. Error {1}.</code></pre>
- Bevor Sie
FLUSH SEQUENCEverwenden, melden Sie sich mit dem BefehlDBLOGINbei der Datenbank an.
FLUSH SEQUENCE muss auf PDB-Ebene abgesetzt werden, um einen Oracle GoldenGate-Benutzer in jeder PDB zu erstellen, für die die Sequenzreplikation erforderlich ist. Melden Sie sich mit DBLOGIN bei dieser PDB an, und führen Sie den Befehl FLUSH SEQUENCE aus.
Es wird empfohlen, dasselbe Schema in jeder PDB zu verwenden, damit es mit der Parameterdatei GGSCHEMA GLOBALS funktioniert.
Im folgenden Beispiel gilt das Umgebungssetup für Oracle 21c to Oracle 21c Replication, mit integriertem Extract und parallelem Replicat mit Oracle GoldenGate 21c (21.3.0).
In der folgenden Tabelle sind die Namen der Quell- und Ziel-CDB, PDBs und die zugehörigen Benutzerzugangsdaten für die Anmeldung bei der Datenbank aufgeführt.
| Quell-CDB | Ziel-CDB |
|---|---|
NORTH |
SOUTH |
PDB-Name: DBEAST |
PDB-Name: DBWEST |
Allgemeiner Benutzer: PDB-Benutzer für Sequenzen: |
PDB-Benutzer: ggadmin |
sqlplus system/manager
ALTER SESSION SESSION SET CONTAINER=CERTMISSN;
CREATE USER ggate IDENTIFIED BY *password* DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON USERS CONTAINER=CURRENT;
@sequence.sql ausführen
sqlplus system/manager
ALTER SESSION SET CONTAINER=DBEAST;
@sequence.sql
Geben Sie bei entsprechender Aufforderung Folgendes ein:
GGADMIN
Führen Sie den Befehl FLUSH SEQUENCE aus:
DBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate
FLUSH SEQUENCE DBEAST.HR.*
Oracle GoldenGate-Zielkonfiguration:
sqlplus system/manager
ALTER SESSION SET CONTAINER =PDBWEST;
@sequence.sql
Wenn Sie dazu aufgefordert werden, geben Sie den PDB-Benutzernamen ggadmin ein.
Dies gilt auch für das Skript @sequence.sql, das Sie auch auf jeder PDB ausführen müssen, von der aus Sie erfassen möchten.