

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verwenden von Oracle GoldenGate mit Amazon RDS for Oracle
<a name="Appendix.OracleGoldenGate"></a>

Oracle GoldenGate sammelt, repliziert und verwaltet Transaktionsdaten zwischen Datenbanken. Es handelt sich um ein Softwarepaket für die protokollbasierte Erfassung von Änderungsdaten (Change Data Capture, CDC) und Replikation, das mit Datenbanken für OLTP-Systeme (Online Transaction Processing) verwendet wird. Oracle GoldenGate erstellt Traildateien, die die zuletzt geänderten Daten aus der Quelldatenbank enthalten. Anschließend werden diese Dateien an den Server übertragen, wo ein Prozess die Pfaddatei in Standard-SQL konvertiert, um sie auf die Zieldatenbank anzuwenden.

Oracle GoldenGate mit RDS for Oracle unterstützt die folgenden Funktionen:
+ Active-Active-Datenbank-Replik
+ Notfallwiederherstellung
+ Datenschutz
+ In-Regionen- und regionsübergreifende Replikation
+ Migration ohne Ausfallzeiten und Upgrades
+ Datenreplikation zwischen einer DB-Instance von RDS für Oracle und einer Nicht-Oracle-Datenbank
**Anmerkung**  
Eine Liste der unterstützten Datenbanken finden Sie unter [Oracle Fusion Middleware Supported System Configurations](https://www.oracle.com/middleware/technologies/fusion-certification.html) in der Oracle-Dokumentation.

Sie können Oracle GoldenGate mit RDS for Oracle verwenden, um auf Hauptversionen von Oracle Database zu aktualisieren. Sie können Oracle beispielsweise verwenden, GoldenGate um ein Upgrade von einer lokalen Oracle Database 11g-Datenbank auf Oracle Database 19c auf einer Amazon RDS-DB-Instance durchzuführen.

**Topics**
+ [Unterstützte Versionen und Lizenzoptionen für Oracle GoldenGate](#Appendix.OracleGoldenGate.licensing)
+ [Anforderungen und Einschränkungen für Oracle GoldenGate](#Appendix.OracleGoldenGate.requirements)
+ [GoldenGate Oracle-Architektur](Appendix.OracleGoldenGate.Overview.md)
+ [Oracle einrichten GoldenGate](Appendix.OracleGoldenGate.setting-up.md)
+ [Arbeiten mit den Dienstprogrammen EXTRACT und REPLICAT von Oracle GoldenGate](Appendix.OracleGoldenGate.ExtractReplicat.md)
+ [Überwachung von Oracle GoldenGate](Appendix.OracleGoldenGate.Monitoring.md)
+ [Fehlerbehebung bei Oracle GoldenGate](Appendix.OracleGoldenGate.Troubleshooting.md)

## Unterstützte Versionen und Lizenzoptionen für Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.licensing"></a>

Sie können die Standard Edition 2 (SE2) oder die Enterprise Edition (EE) von RDS for Oracle mit Oracle GoldenGate Version 12c und höher verwenden. Sie können die folgenden GoldenGate Oracle-Funktionen verwenden:
+ Oracle GoldenGate Remote Capture (Extrakt) wird unterstützt.
+ Das Erfassen (Extrahieren) wird auf DB-Instances von RDS für Oracle unterstützt, die die herkömmliche Nicht-CDB-Datenbankarchitektur verwenden. Oracle GoldenGate Remote PDB Capture wird unterstützt, wenn Oracle Database 21c oder Oracle Database 19c Version 19.0.0.0.ru-2024-04.rur-2024-04.r1 oder höher CDBs ausgeführt wird.
+ Oracle GoldenGate Remote Delivery (Replicat) wird auf RDS für Oracle-DB-Instances unterstützt, die entweder Nicht-CDB- oder CDB-Architekturen verwenden. Remote Delivery unterstützt Integrated Replicat, Parallel Replicat, Coordinated Replicat und Classic Replicat.
+ RDS for Oracle unterstützt die Classic- und Microservices-Architekturen von Oracle. GoldenGate
+ Die Replikation von Oracle GoldenGate DDL- und Sequence-Werten wird unterstützt, wenn der integrierte Erfassungsmodus verwendet wird.

Sie sind für die Verwaltung der GoldenGate Oracle-Lizenzierung (BYOL) für die Verwendung mit Amazon RDS insgesamt AWS-Regionen verantwortlich. Weitere Informationen finden Sie unter [RDS-für-Oracle-Lizenzierungsoptionen](Oracle.Concepts.Licensing.md).

## Anforderungen und Einschränkungen für Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.requirements"></a>

Wenn Sie mit Oracle GoldenGate und RDS for Oracle arbeiten, sollten Sie die folgenden Anforderungen und Einschränkungen berücksichtigen: 
+ Sie sind verantwortlich für die Einrichtung und Verwaltung von Oracle GoldenGate für die Verwendung mit RDS for Oracle. 
+ Sie sind dafür verantwortlich, eine GoldenGate Oracle-Version einzurichten, die für die Quell- und die Zieldatenbank zertifiziert ist. Weitere Informationen finden Sie unter [Oracle Fusion Middleware Supported System Configurations](https://www.oracle.com/middleware/technologies/fusion-certification.html) in der Oracle-Dokumentation.
+ Sie können Oracle GoldenGate in vielen verschiedenen AWS Umgebungen für viele verschiedene Anwendungsfälle verwenden. Wenn Sie ein Support-Problem mit Oracle haben GoldenGate, wenden Sie sich an Oracle Support Services.
+ Sie können Oracle GoldenGate auf RDS für Oracle-DB-Instances verwenden, die Oracle Transparent Data Encryption (TDE) verwenden. Um die Integrität der replizierten Daten aufrechtzuerhalten, konfigurieren Sie die Verschlüsselung auf dem GoldenGate Oracle-Hub mithilfe von Amazon EBS-verschlüsselten Volumes oder Traildateiverschlüsselung. Konfigurieren Sie auch die Verschlüsselung für Daten, die zwischen dem GoldenGate Oracle-Hub und den Quell- und Zieldatenbank-Instances gesendet werden. RDS-for-Oracle-DB-Instances unterstützen die Verschlüsselung mit [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md) oder [Oracle Native Network Encryption](Appendix.Oracle.Options.NetworkEncryption.md).

# GoldenGate Oracle-Architektur
<a name="Appendix.OracleGoldenGate.Overview"></a>

Die GoldenGate Oracle-Architektur zur Verwendung mit Amazon RDS besteht aus den folgenden entkoppelten Modulen:

Quelldatenbank  
Bei Ihrer Quelldatenbank kann es sich entweder um eine lokale Oracle-Datenbank, eine Oracle-Datenbank auf einer Amazon-EC2-Instance oder eine Oracle-Datenbank auf einer Amazon-RDS-DB-Instance handeln.

Oracle-Hub GoldenGate   
Ein GoldenGate Oracle-Hub verschiebt Transaktionsinformationen von der Quelldatenbank in die Zieldatenbank. Für Ihren Hub gibt es die folgenden zwei Möglichkeiten:  
+ Eine Amazon EC2 EC2-Instance mit installierter Oracle Database und Oracle GoldenGate 
+ Eine lokale Oracle-Installation
Sie können mehrere Amazon-EC2-Hubs haben. Wir empfehlen die Verwendung von zwei Hubs, wenn Sie Oracle GoldenGate für die regionsübergreifende Replikation verwenden.

Zieldatenbank  
Die Zieldatenbank kann sich entweder auf einer Amazon RDS-DB-Instance, einer Amazon EC2-Instance oder einem lokalen Speicherort befinden.

In den folgenden Abschnitten werden allgemeine Szenarien für Oracle GoldenGate auf Amazon RDS beschrieben.

**Topics**
+ [Lokale Quelldatenbank und Oracle-Hub GoldenGate](#Appendix.OracleGoldenGate.on-prem-source-gg-hub)
+ [Lokale Quelldatenbank und Amazon-EC2-Hub](#Appendix.OracleGoldenGate.on-prem-source-ec2-hub)
+ [Amazon-RDS-Quelldatenbank und Amazon-EC2-Hub](#Appendix.OracleGoldenGate.rds-source-ec2-hub)
+ [Amazon-EC2-Quelldatenbank und Amazon-EC2-Hub](#Appendix.OracleGoldenGate.ec2-source-ec2-hub)
+ [Amazon EC2 EC2-Hubs in verschiedenen Regionen AWS](#Appendix.OracleGoldenGate.cross-region-hubs)

## Lokale Quelldatenbank und Oracle-Hub GoldenGate
<a name="Appendix.OracleGoldenGate.on-prem-source-gg-hub"></a>

In diesem Szenario stellen eine lokale Oracle-Quelldatenbank und ein lokaler GoldenGate Oracle-Hub Daten für eine Amazon RDS-DB-Zielinstanz bereit. 

![\[GoldenGate Oracle-Konfiguration 0 mit Amazon RDS\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/UserGuide/images/oracle-gg0.png)


## Lokale Quelldatenbank und Amazon-EC2-Hub
<a name="Appendix.OracleGoldenGate.on-prem-source-ec2-hub"></a>

In diesem Szenario fungiert eine lokale Oracle-Datenbank als Quelldatenbank. Sie ist mit einem Amazon-EC2-Instance-Hub verbunden. Dieser Hub liefert Daten an eine Ziel-RDS-for-Oracle-DB-Instance.

![\[GoldenGate Oracle-Konfiguration 1 mit Amazon RDS\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/UserGuide/images/oracle-gg1.png)


## Amazon-RDS-Quelldatenbank und Amazon-EC2-Hub
<a name="Appendix.OracleGoldenGate.rds-source-ec2-hub"></a>

In diesem Szenario fungiert eine RDS-for-Oracle-DB-Instance als Quelldatenbank. Sie ist mit einem Amazon-EC2-Instance-Hub verbunden. Dieser Hub liefert Daten an eine Ziel-RDS-for-Oracle-DB-Instance.

![\[GoldenGate Oracle-Konfiguration 2 mit Amazon RDS\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/UserGuide/images/oracle-gg2.png)


## Amazon-EC2-Quelldatenbank und Amazon-EC2-Hub
<a name="Appendix.OracleGoldenGate.ec2-source-ec2-hub"></a>

In diesem Szenario fungiert eine Oracle-Datenbank auf einer Amazon-EC2-Instance als Quelldatenbank. Sie ist mit einem Amazon-EC2-Instance-Hub verbunden. Dieser Hub liefert Daten an eine Ziel-RDS-for-Oracle-DB-Instance.

![\[GoldenGate Oracle-Konfiguration 3 mit Amazon RDS\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/UserGuide/images/oracle-gg3.png)


## Amazon EC2 EC2-Hubs in verschiedenen Regionen AWS
<a name="Appendix.OracleGoldenGate.cross-region-hubs"></a>

In diesem Szenario ist eine Oracle-Datenbank auf einer Amazon RDS-DB-Instance mit einem Amazon EC2 EC2-Instance-Hub in derselben AWS Region verbunden. Der Hub ist mit einem Amazon EC2 EC2-Instance-Hub in einer anderen AWS Region verbunden. Dieser zweite Hub stellt Daten für den Ziel-RDS für die Oracle-DB-Instance in derselben AWS Region bereit wie der zweite Amazon EC2 EC2-Instance-Hub.

![\[GoldenGate Oracle-Konfiguration 4 mit Amazon RDS\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/UserGuide/images/oracle-gg4.png)


**Anmerkung**  
Alle Probleme, die sich auf die Ausführung von Oracle GoldenGate in einer lokalen Umgebung auswirken, wirken sich auch auf die Ausführung von Oracle GoldenGate auf AWS aus. Es wird dringend empfohlen, den GoldenGate Oracle-Hub zu überwachen, um sicherzustellen, dass der `EXTRACT` Vorgang `REPLICAT` bei einem Failover wieder aufgenommen wird. Da der GoldenGate Oracle-Hub auf einer Amazon EC2 EC2-Instance ausgeführt wird, verwaltet Amazon RDS den GoldenGate Oracle-Hub nicht und kann nicht sicherstellen, dass er läuft.

# Oracle einrichten GoldenGate
<a name="Appendix.OracleGoldenGate.setting-up"></a>

Um Oracle GoldenGate mit Amazon RDS einzurichten, konfigurieren Sie den Hub auf einer Amazon EC2 EC2-Instance und anschließend die Quell- und Zieldatenbanken. Die folgenden Abschnitte enthalten ein Beispiel für die Einrichtung von Oracle GoldenGate für die Verwendung mit Amazon RDS for Oracle.

**Topics**
+ [Einrichtung eines GoldenGate Oracle-Hubs auf Amazon EC2](#Appendix.OracleGoldenGate.Hub)
+ [Einrichtung einer Quelldatenbank für die Verwendung mit Oracle GoldenGate auf Amazon RDS](#Appendix.OracleGoldenGate.Source)
+ [Einrichten einer Zieldatenbank für die Verwendung mit Oracle GoldenGate auf Amazon RDS](#Appendix.OracleGoldenGate.Target)

## Einrichtung eines GoldenGate Oracle-Hubs auf Amazon EC2
<a name="Appendix.OracleGoldenGate.Hub"></a>

Um einen GoldenGate Oracle-Hub auf einer Amazon EC2 EC2-Instance zu erstellen, erstellen Sie zunächst eine Amazon EC2 EC2-Instance mit einer vollständigen Client-Installation von Oracle RDBMS. Auf der Amazon EC2 EC2-Instance muss auch GoldenGate Oracle-Software installiert sein. Die GoldenGate Oracle-Softwareversionen hängen von den Quell- und Zieldatenbankversionen ab. Weitere Informationen zur Installation von Oracle GoldenGate finden Sie in der [ GoldenGateOracle-Dokumentation](https://docs.oracle.com/en/middleware/goldengate/core/index.html).

Die Amazon EC2 EC2-Instance, die als GoldenGate Oracle-Hub dient, speichert und verarbeitet die Transaktionsinformationen aus der Quelldatenbank in Traildateien. Um diesen Prozess zu unterstützen, stellen Sie sicher, dass Sie die folgenden Bedingungen erfüllen:
+ Sie haben genügend Speicherplatz für die Pfaddateien reserviert.
+ Die Amazon EC2-Instance verfügt über genügend Verarbeitungsleistung, um die Datenmenge zu verwalten.
+ Die EC2-Instance verfügt über genügend Speicher, um die Transaktionsinformationen zu speichern, bevor sie in die Pfaddatei geschrieben werden.

**So richten Sie einen Oracle GoldenGate Classic Architecture Hub auf einer Amazon EC2 EC2-Instance ein**

1. Erstellen Sie Unterverzeichnisse im GoldenGate Oracle-Verzeichnis.

   Starten `ggsci` Sie in der Amazon EC2 EC2-Befehlszeilen-Shell den GoldenGate Oracle-Befehlsinterpreter. Mit dem Befehl `CREATE SUBDIRS` werden die Unterverzeichnisse im `/gg`-Verzeichnis für Parameter, Berichte und Prüfpunktdateien erstellt.

   ```
   prompt$ cd /gg
   prompt$ ./ggsci
   
   GGSCI> CREATE SUBDIRS
   ```

1. Konfigurieren Sie die `mgr.prm`-Datei.

   Im folgenden Beispiel werden der Datei `$GGHOME/dirprm/mgr.prm` Zeilen hinzugefügt.

   ```
   PORT 8199
   PurgeOldExtracts ./dirdat/*, UseCheckpoints, MINKEEPDAYS 5
   ```

1. Starten Sie den Manager.

   Im folgenden Beispiel wird `ggsci` gestartet und der Befehl `start mgr` ausgeführt.

   ```
   GGSCI> start mgr
   ```

Der GoldenGate Oracle-Hub ist jetzt einsatzbereit.

## Einrichtung einer Quelldatenbank für die Verwendung mit Oracle GoldenGate auf Amazon RDS
<a name="Appendix.OracleGoldenGate.Source"></a>

Führen Sie die folgenden Aufgaben aus, um eine Quelldatenbank für die Verwendung mit Oracle einzurichten GoldenGate.

**Topics**
+ [Schritt 1: Aktivieren zusätzlicher Protokollierung in der Quelldatenbank](#Appendix.OracleGoldenGate.Source.Logging)
+ [Schritt 2: Festlegen des Initialisierungsparameters ENABLE\$1GOLDENGATE\$1REPLICATION auf „true“](#Appendix.OracleGoldenGate.Source.enable-gg-rep)
+ [Schritt 3: Festlegen des Protokollaufbewahrungszeitraums in der Quell-Datenbank](#Appendix.OracleGoldenGate.Source.Retention)
+ [Schritt 4: Erstellen Sie ein GoldenGate Oracle-Benutzerkonto in der Quelldatenbank](#Appendix.OracleGoldenGate.Source.Account)
+ [Schritt 5: Erteilen von Berechtigungen für das Benutzerkonto in der Quelldatenbank](#Appendix.OracleGoldenGate.Source.Privileges)
+ [Schritt 6: Hinzufügen eines TNS-Alias für die Quelldatenbank](#Appendix.OracleGoldenGate.Source.TNS)

### Schritt 1: Aktivieren zusätzlicher Protokollierung in der Quelldatenbank
<a name="Appendix.OracleGoldenGate.Source.Logging"></a>

Führen Sie das folgende PL/SQL-Verfahren aus, um die zusätzliche Protokollierung auf Datenbankebene zu aktivieren: 

```
EXEC rdsadmin.rdsadmin_util.alter_supplemental_logging(p_action => 'ADD')
```

### Schritt 2: Festlegen des Initialisierungsparameters ENABLE\$1GOLDENGATE\$1REPLICATION auf „true“
<a name="Appendix.OracleGoldenGate.Source.enable-gg-rep"></a>

Wenn Sie den `ENABLE_GOLDENGATE_REPLICATION`-Initialisierungsparameter auf `true` einstellen, können Datenbankdienste die logische Replikation unterstützen. Wenn sich Ihre Quelldatenbank auf einer DB-Instance von Amazon RDS befindet, stellen Sie sicher, dass der DB-Instance eine Parametergruppe zugewiesen ist, deren Initialisierungsparameter `ENABLE_GOLDENGATE_REPLICATION` auf `true` festgelegt ist. Weitere Informationen zum Initialisierungsparameter `ENABLE_GOLDENGATE_REPLICATION` finden Sie in der [Oracle-Database-Dokumentation](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/ENABLE_GOLDENGATE_REPLICATION.html).

### Schritt 3: Festlegen des Protokollaufbewahrungszeitraums in der Quell-Datenbank
<a name="Appendix.OracleGoldenGate.Source.Retention"></a>

Erstellen Sie die Quelldatenbank unbedingt so, dass archivierte Redo-Protokolle aufbewahrt werden. Berücksichtigen Sie die folgenden Hinweise:
+ Geben Sie die Dauer für die Protokollaufbewahrung in Stunden an. Der Mindestwert ist eine Stunde.
+ Legen Sie die Dauer so fest, dass potenzielle Ausfallzeiten der Quell-Instance, jede mögliche Kommunikationsdauer und mögliche Dauer von Netzwerkproblemen für die Quell-Instance überschritten werden. Bei einer solchen Dauer kann Oracle bei Bedarf Logs aus der Quellinstanz GoldenGate wiederherstellen.
+ Stellen Sie sicher, dass auf Ihrer Instance genügend Speicherplatz für die Dateien vorhanden ist.

Legen Sie beispielsweise den Aufbewahrungszeitraum für archivierte Redo-Protokolle auf 24 Stunden fest.

```
EXEC rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24)
```

Wenn die Protokollaufbewahrung nicht aktiviert ist oder wenn der Aufbewahrungswert zu klein ist, erhalten Sie eine Meldung ähnlich wie die folgende.

```
2022-03-06 06:17:27  ERROR   OGG-00446  error 2 (No such file or directory) 
opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 
Not able to establish initial position for begin time 2022-03-06 06:16:55.
```

Da Ihre DB-Instance Ihre archivierten Redo-Protokolle aufbewahrt, stellen Sie sicher, dass Sie über ausreichend Speicherplatz für die Dateien verfügen. Um zu sehen, wie viel Speicherplatz Sie in den letzten *num\$1hours* Stunden belegt haben, führen Sie die folgende Abfrage aus und *num\$1hours* ersetzen Sie sie durch die Anzahl der Stunden.

```
SELECT SUM(BLOCKS * BLOCK_SIZE) BYTES FROM V$ARCHIVED_LOG 
   WHERE NEXT_TIME>=SYSDATE-num_hours/24 AND DEST_ID=1;
```

### Schritt 4: Erstellen Sie ein GoldenGate Oracle-Benutzerkonto in der Quelldatenbank
<a name="Appendix.OracleGoldenGate.Source.Account"></a>

Oracle GoldenGate wird als Datenbankbenutzer ausgeführt und benötigt die entsprechenden Datenbankberechtigungen, um auf die Redo- und archivierten Redo-Logs für die Quelldatenbank zuzugreifen. Um diese bereitzustellen, erstellen Sie ein Benutzerkonto in der Quelldatenbank. Weitere Informationen zu den Berechtigungen für ein GoldenGate Oracle-Benutzerkonto finden Sie in der [Oracle-Dokumentation](https://docs.oracle.com/en/middleware/goldengate/core/19.1/oracle-db/establishing-oracle-goldengate-credentials.html#GUID-79122058-27B0-4FB6-B3DC-B7D1B67EB053).

Mit folgenden Anweisungen wird ein Benutzerkonto mit dem Namen `oggadm1` erstellt. 

```
CREATE TABLESPACE administrator;
CREATE USER oggadm1  IDENTIFIED BY "password"
   DEFAULT TABLESPACE ADMINISTRATOR TEMPORARY TABLESPACE TEMP;
ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
```

**Anmerkung**  
Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.

### Schritt 5: Erteilen von Berechtigungen für das Benutzerkonto in der Quelldatenbank
<a name="Appendix.OracleGoldenGate.Source.Privileges"></a>

Bei dieser Aufgabe gewähren Sie den Datenbankbenutzern in Ihrer Quelldatenbank die erforderlichen Kontoberechtigungen.

**So erteilen Sie Kontoberechtigungen in der Quelldatenbank**

1. Erteilen Sie dem GoldenGate Oracle-Benutzerkonto mithilfe des SQL-Befehls `grant` und der `rdsadmin.rdsadmin_util` Prozedur die erforderlichen Rechte`grant_sys_object`. Mit folgenden Anweisungen werden einem Benutzer mit dem Namen `oggadm1` Berechtigungen erteilt.

   ```
   GRANT CREATE SESSION, ALTER SESSION TO oggadm1;
   GRANT RESOURCE TO oggadm1;
   GRANT SELECT ANY DICTIONARY TO oggadm1;
   GRANT FLASHBACK ANY TABLE TO oggadm1;
   GRANT SELECT ANY TABLE TO oggadm1;
   GRANT SELECT_CATALOG_ROLE TO rds_master_user_name WITH ADMIN OPTION;
   EXEC rdsadmin.rdsadmin_util.grant_sys_object ('DBA_CLUSTERS', 'OGGADM1');
   GRANT EXECUTE ON DBMS_FLASHBACK TO oggadm1;
   GRANT SELECT ON SYS.V_$DATABASE TO oggadm1;
   GRANT ALTER ANY TABLE TO oggadm1;
   ```

1. Erteilen Sie die Rechte, die ein Benutzerkonto benötigt, um ein GoldenGate Oracle-Administrator zu sein. Führen Sie das folgende PL/SQL Programm aus.

   ```
   EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege (
       grantee                 => 'OGGADM1',
       privilege_type          => 'capture',
       grant_select_privileges => true, 
       do_grants               => TRUE);
   ```

   Um Berechtigungen zu widerrufen, verwenden Sie die Prozedur `revoke_admin_privilege` im selben Paket.

### Schritt 6: Hinzufügen eines TNS-Alias für die Quelldatenbank
<a name="Appendix.OracleGoldenGate.Source.TNS"></a>

Fügen Sie `$ORACLE_HOME/network/admin/tnsnames.ora` im Oracle-Standardverzeichnis den folgenden Eintrag hinzu, der vom `EXTRACT`-Prozess verwendet werden soll. Weitere Informationen zur Datei `tnsnames.ora` finden Sie in der [Oracle-Dokumentation](https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-7F967CE5-5498-427C-9390-4A5C6767ADAA).

```
OGGSOURCE=
   (DESCRIPTION= 
        (ENABLE=BROKEN)
        (ADDRESS_LIST= 
            (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-source.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200)))
        (CONNECT_DATA=(SERVICE_NAME=ORCL))
    )
```

## Einrichten einer Zieldatenbank für die Verwendung mit Oracle GoldenGate auf Amazon RDS
<a name="Appendix.OracleGoldenGate.Target"></a>

In dieser Aufgabe richten Sie eine Ziel-DB-Instance für die Verwendung mit Oracle ein GoldenGate.

**Topics**
+ [Schritt 1: Festlegen des Initialisierungsparameters ENABLE\$1GOLDENGATE\$1REPLICATION auf „true“](#Appendix.OracleGoldenGate.Target.enable-gg-rep)
+ [Schritt 2: Erstellen Sie ein GoldenGate Oracle-Benutzerkonto in der Zieldatenbank](#Appendix.OracleGoldenGate.Target.User)
+ [Schritt 3: Erteilen von Kontoberechtigungen in der Zieldatenbank](#Appendix.OracleGoldenGate.Target.Privileges)
+ [Schritt 4: Hinzufügen eines TNS-Alias für die Zieldatenbank](#Appendix.OracleGoldenGate.Target.TNS)

### Schritt 1: Festlegen des Initialisierungsparameters ENABLE\$1GOLDENGATE\$1REPLICATION auf „true“
<a name="Appendix.OracleGoldenGate.Target.enable-gg-rep"></a>

Wenn Sie den `ENABLE_GOLDENGATE_REPLICATION`-Initialisierungsparameter auf `true` einstellen, können Datenbankdienste die logische Replikation unterstützen. Wenn sich Ihre Quelldatenbank auf einer DB-Instance von Amazon RDS befindet, stellen Sie sicher, dass der DB-Instance eine Parametergruppe zugewiesen ist, deren Initialisierungsparameter `ENABLE_GOLDENGATE_REPLICATION` auf `true` festgelegt ist. Weitere Informationen zum Initialisierungsparameter `ENABLE_GOLDENGATE_REPLICATION` finden Sie in der [Oracle-Database-Dokumentation](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/ENABLE_GOLDENGATE_REPLICATION.html).

### Schritt 2: Erstellen Sie ein GoldenGate Oracle-Benutzerkonto in der Zieldatenbank
<a name="Appendix.OracleGoldenGate.Target.User"></a>

Oracle GoldenGate wird als Datenbankbenutzer ausgeführt und benötigt die entsprechenden Datenbankberechtigungen. Um sicherzustellen, dass es über diese Berechtigungen verfügt, erstellen Sie ein Benutzerkonto in der Zieldatenbank.

Mit der folgenden Anweisung wird ein Benutzer mit dem Namen `oggadm1` erstellt.

```
CREATE TABLESPSACE administrator;
CREATE USER oggadm1  IDENTIFIED BY "password" 
   DEFAULT TABLESPACE administrator 
   TEMPORARY TABLESPACE temp;
ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
```

**Anmerkung**  
Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.

### Schritt 3: Erteilen von Kontoberechtigungen in der Zieldatenbank
<a name="Appendix.OracleGoldenGate.Target.Privileges"></a>

Bei dieser Aufgabe gewähren Sie den Datenbankbenutzern in Ihrer Zieldatenbank die erforderlichen Kontoberechtigungen.

**So erteilen Sie Kontoberechtigungen in der Zieldatenbank**

1. Erteilen Sie dem GoldenGate Oracle-Benutzerkonto in der Zieldatenbank die erforderlichen Rechte. Im folgenden Beispiel erteilen Sie `oggadm1` Berechtigungen.

   ```
   GRANT CREATE SESSION        TO oggadm1;
   GRANT ALTER SESSION         TO oggadm1;
   GRANT CREATE CLUSTER        TO oggadm1;
   GRANT CREATE INDEXTYPE      TO oggadm1;
   GRANT CREATE OPERATOR       TO oggadm1;
   GRANT CREATE PROCEDURE      TO oggadm1;
   GRANT CREATE SEQUENCE       TO oggadm1;
   GRANT CREATE TABLE          TO oggadm1;
   GRANT CREATE TRIGGER        TO oggadm1;
   GRANT CREATE TYPE           TO oggadm1;
   GRANT SELECT ANY DICTIONARY TO oggadm1;
   GRANT CREATE ANY TABLE      TO oggadm1;
   GRANT ALTER ANY TABLE       TO oggadm1;
   GRANT LOCK ANY TABLE        TO oggadm1;
   GRANT SELECT ANY TABLE      TO oggadm1;
   GRANT INSERT ANY TABLE      TO oggadm1;
   GRANT UPDATE ANY TABLE      TO oggadm1;
   GRANT DELETE ANY TABLE      TO oggadm1;
   ```

1. Erteilen Sie die Rechte, die ein Benutzerkonto benötigt, um ein GoldenGate Oracle-Administrator zu sein. Führen Sie das folgende PL/SQL Programm aus.

   ```
   EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege (
       grantee                 => 'OGGADM1',
       privilege_type          => 'apply',
       grant_select_privileges => true, 
       do_grants               => TRUE);
   ```

   Um Berechtigungen zu widerrufen, verwenden Sie die Prozedur `revoke_admin_privilege` im selben Paket.

### Schritt 4: Hinzufügen eines TNS-Alias für die Zieldatenbank
<a name="Appendix.OracleGoldenGate.Target.TNS"></a>

Fügen Sie `$ORACLE_HOME/network/admin/tnsnames.ora` im Oracle-Standardverzeichnis den folgenden Eintrag hinzu, der vom `REPLICAT`-Prozess verwendet werden soll. Stellen Sie bei Oracle-Multitenant-Datenbanken sicher, dass der TNS-Alias auf den Servicenamen der PDB verweist. Weitere Informationen zur Datei `tnsnames.ora` finden Sie in der [Oracle-Dokumentation](https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-7F967CE5-5498-427C-9390-4A5C6767ADAA).

```
OGGTARGET=
    (DESCRIPTION= 
        (ENABLE=BROKEN)
        (ADDRESS_LIST= 
            (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-target.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200)))
        (CONNECT_DATA=(SERVICE_NAME=ORCL))
    )
```

# Arbeiten mit den Dienstprogrammen EXTRACT und REPLICAT von Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.ExtractReplicat"></a>

Die GoldenGate Oracle-Dienstprogramme `EXTRACT` und ich `REPLICAT` arbeiten zusammen, um die Quell- und Zieldatenbanken durch inkrementelle Transaktionsreplikation unter Verwendung von Traildateien synchron zu halten. Alle Änderungen, die an der Quelldatenbank vorgenommen werden`EXTRACT`, werden automatisch von der GoldenGate lokalen Oracle-Datenbank oder dem Amazon EC2 EC2-Instance-Hub erkannt, formatiert und in Traildateien übertragen. Nach dem ersten Ladevorgang werden die Daten aus diesen Dateien gelesen und vom Dienstprogramm `REPLICAT` in die Zieldatenbank repliziert.

## Das Oracle EXTRACT-Hilfsprogramm ausführen GoldenGate
<a name="Appendix.OracleGoldenGate.Extract"></a>

Das `EXTRACT`-Dienstprogramm ruft Daten aus der Quelldatenbank ab, konvertiert sie und gibt sie in Trail-Dateien aus. Der grundlegende Prozess ist wie folgt:

1. `EXTRACT` leitet die Transaktionsdetails in den Speicher oder den temporären Festplattenspeicher weiter.

1. Die Quell-Datenbank führt einen Commit der aktuellen Transaktion durch.

1. `EXTRACT` schreibt die Transaktionsdetails in eine Trail-Datei.

1. Die Trail-Datei leitet diese Details an den GoldenGate lokalen Oracle-Hub oder den Amazon EC2 EC2-Instance-Hub und dann an die Zieldatenbank weiter.

Mit den folgenden Schritten werden das Dienstprogramm `EXTRACT` gestartet, die Daten aus `EXAMPLE.TABLE` der Quelldatenbank `OGGSOURCE` erfasst und die Pfaddateien erstellt. 

**So führen Sie das EXTRACT-Dienstprogramm aus**

1. Konfigurieren Sie die `EXTRACT` Parameterdatei auf dem GoldenGate Oracle-Hub (lokal oder Amazon EC2 EC2-Instance). Die folgende Liste zeigt eine beispielhafte `EXTRACT`-Parameterdatei mit dem Namen `$GGHOME/dirprm/eabc.prm`.

   ```
   EXTRACT EABC
    
   USERID oggadm1@OGGSOURCE, PASSWORD "my-password"
   EXTTRAIL /path/to/goldengate/dirdat/ab 
    
   IGNOREREPLICATES
   GETAPPLOPS
   TRANLOGOPTIONS EXCLUDEUSER OGGADM1
   	 
   TABLE EXAMPLE.TABLE;
   ```

1. Melden Sie sich auf dem GoldenGate Oracle-Hub bei der Quelldatenbank an und starten Sie die GoldenGate Oracle-Befehlszeilenschnittstelle. `ggsci` Das folgende Beispiel zeigt das Format für die Anmeldung.

   ```
   dblogin oggadm1@OGGSOURCE
   ```

1. Fügen Sie Transaktionsdaten hinzu, um die zusätzliche Protokollierung für die Datenbanktabelle zu aktivieren.

   ```
   add trandata EXAMPLE.TABLE
   ```

1. Aktivieren Sie mithilfe der Befehlszeile `ggsci` das Dienstprogramm `EXTRACT` mit den folgenden Befehlen.

   ```
   add extract EABC tranlog, INTEGRATED tranlog, begin now
   add exttrail /path/to/goldengate/dirdat/ab 
      extract EABC, 
      MEGABYTES 100
   ```

1. Registrieren Sie das Dienstprogramm `EXTRACT` in der Datenbank, damit die archivierten Protokolle nicht gelöscht werden. Dank dieser Aufgabe können Sie alte, nicht festgeschriebene Transaktionen wiederherstellen, wenn dies erforderlich ist. Verwenden Sie den folgenden Befehl, um das Dienstprogramm `EXTRACT` in der Datenbank zu registrieren.

   ```
   register EXTRACT EABC, DATABASE
   ```

1. Starten Sie das Dienstprogramm `EXTRACT` mit dem folgenden Befehl.

   ```
   start EABC
   ```

## Das Oracle GoldenGate REPLICAT-Hilfsprogramm ausführen
<a name="Appendix.OracleGoldenGate.Replicat"></a>

Das Dienstprogram `REPLICAT` sendet Transaktionsinformationen in Pfaddateien an die Zieldatenbank.

Mit den folgenden Schritten wird das Dienstprogramm `REPLICAT` aktiviert und gestartet, sodass es die erfassten Daten in die Tabelle `EXAMPLE.TABLE` der Zieldatenbank `OGGTARGET` replizieren kann.

**So führen Sie das Dienstprogramm REPLICATE aus**

1. Konfigurieren Sie die `REPLICAT` Parameterdatei auf dem GoldenGate Oracle-Hub (lokal oder EC2-Instance). Die folgende Liste zeigt eine beispielhafte `REPLICAT`-Parameterdatei mit dem Namen `$GGHOME/dirprm/rabc.prm`.

   ```
   REPLICAT RABC
    
   USERID oggadm1@OGGTARGET, password "my-password"
    
   ASSUMETARGETDEFS
   MAP EXAMPLE.TABLE, TARGET EXAMPLE.TABLE;
   ```
**Anmerkung**  
Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.

1. Melden Sie sich bei der Zieldatenbank an und starten Sie die GoldenGate Oracle-Befehlszeilenschnittstelle ()`ggsci`. Das folgende Beispiel zeigt das Format für die Anmeldung.

   ```
   dblogin userid oggadm1@OGGTARGET
   ```

1. Fügen Sie mithilfe der Befehlszeile `ggsci` eine Prüfpunkttabelle hinzu. Der angegebene Benutzer sollte das GoldenGate Oracle-Benutzerkonto sein, nicht der Besitzer des Zieltabellenschemas. Im folgenden Beispiel wird eine Prüfpunkttabelle mit dem Namen `gg_checkpoint` erstellt.

   ```
   add checkpointtable oggadm1.oggchkpt
   ```

1. Verwenden Sie den folgenden Befehl, um das Dienstprogramm `REPLICAT` zu aktivieren.

   ```
   add replicat RABC EXTTRAIL /path/to/goldengate/dirdat/ab CHECKPOINTTABLE oggadm1.oggchkpt 
   ```

1. Starten Sie das Dienstprogramm `REPLICAT` mit dem folgenden Befehl.

   ```
   start RABC
   ```

# Überwachung von Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Monitoring"></a>

Wenn Sie Oracle GoldenGate für die Replikation verwenden, stellen Sie sicher, dass der Oracle GoldenGate-Prozess läuft und die Quell- und Zieldatenbanken synchronisiert sind. Sie können die folgenden Überwachungstools verwenden:
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) ist ein Überwachungsservice, der in diesem Muster zur Überwachung von GoldenGate-Fehlerprotokollen verwendet wird.
+ [Amazon SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html) ist ein Benachrichtigungsservice, der in diesem Muster zum Senden von E-Mail-Benachrichtigungen verwendet wird.

Eine ausführliche Anleitung finden Sie unter [Überwachen von Oracle GoldenGate-Protokollen mithilfe von Amazon CloudWatch](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch.html).

# Fehlerbehebung bei Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Troubleshooting"></a>

In diesem Abschnitt werden die häufigsten Probleme bei der Verwendung von Oracle GoldenGate mit Amazon RDS for Oracle erläutert.

**Topics**
+ [Fehler beim Öffnen eines Online-Redo-Protokolls](#Appendix.OracleGoldenGate.Troubleshooting.Logs)
+ [Oracle GoldenGate scheint richtig konfiguriert zu sein, aber die Replikation funktioniert nicht](#Appendix.OracleGoldenGate.Troubleshooting.Replication)
+ [Integrated REPLICAT langsam aufgrund von Abfrage auf SYS."\$1DBA\$1APPLY\$1CDR\$1INFO"](#Appendix.OracleGoldenGate.IR)

## Fehler beim Öffnen eines Online-Redo-Protokolls
<a name="Appendix.OracleGoldenGate.Troubleshooting.Logs"></a>

Erstellen Sie die Datenbanken unbedingt so, dass archivierte Redo-Protokolle aufbewahrt werden. Berücksichtigen Sie die folgenden Hinweise:
+ Geben Sie die Dauer für die Protokollaufbewahrung in Stunden an. Der Mindestwert ist eine Stunde.
+ Legen Sie die Dauer so fest, dass potenzielle Ausfallzeiten der Quell-Instance, jede mögliche Kommunikationsdauer und mögliche Dauer von Netzwerkproblemen für die Quell-DB-Instance überschritten werden. Bei einer solchen Dauer kann Oracle bei Bedarf Protokolle aus der Quell-DB-Instance GoldenGate wiederherstellen.
+ Stellen Sie sicher, dass auf Ihrer Instance genügend Speicherplatz für die Dateien vorhanden ist.

Wenn die Protokollaufbewahrung nicht aktiviert ist oder wenn der Aufbewahrungswert zu klein ist, erhalten Sie eine Meldung ähnlich wie die folgende.

```
2022-03-06 06:17:27  ERROR   OGG-00446  error 2 (No such file or directory) 
opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 
Not able to establish initial position for begin time 2022-03-06 06:16:55.
```

## Oracle GoldenGate scheint richtig konfiguriert zu sein, aber die Replikation funktioniert nicht
<a name="Appendix.OracleGoldenGate.Troubleshooting.Replication"></a>

Für bereits existierende Tabellen müssen Sie die SCN angeben, mit der Oracle GoldenGate arbeitet.

**So beheben Sie dieses Problem**

1. Melden Sie sich bei der Quelldatenbank an und starten Sie die GoldenGate Oracle-Befehlszeilenschnittstelle ()`ggsci`. Das folgende Beispiel zeigt das Format für die Anmeldung.

   ```
   dblogin userid oggadm1@OGGSOURCE
   ```

1. Richten Sie mit der Befehlszeile `ggsci` die Start-SCN für den Vorgang `EXTRACT` ein. Im folgenden Beispiel wird die SCN für auf 223274 festgeleg `EXTRACT`.

   ```
   ALTER EXTRACT EABC SCN 223274
   start EABC
   ```

1. Melden Sie sich bei der Zieldatenbank an. Das folgende Beispiel zeigt das Format für die Anmeldung.

   ```
   dblogin userid oggadm1@OGGTARGET
   ```

1. Richten Sie mit der Befehlszeile `ggsci` die Start-SCN für den Vorgang `REPLICAT` ein. Im folgenden Beispiel wird die SCN für auf 223274 festgeleg `REPLICAT`.

   ```
   start RABC atcsn 223274
   ```

## Integrated REPLICAT langsam aufgrund von Abfrage auf SYS."\$1DBA\$1APPLY\$1CDR\$1INFO"
<a name="Appendix.OracleGoldenGate.IR"></a>

Oracle GoldenGate Conflict Detection and Resolution (CDR) bietet grundlegende Routinen zur Konfliktlösung. Zum Beispiel kann CDR einen eindeutigen Konflikt für eine `INSERT`-Anweisung lösen.

Wenn CDR eine Kollision auflöst, kann es vorübergehend Datensätze in die Ausnahmetabelle `_DBA_APPLY_CDR_INFO` einfügen. Integriertes `REPLICAT` löscht diese Datensätze später. In einem seltenen Szenario kann das integrierte `REPLICAT` eine große Anzahl von Kollisionen verarbeiten, aber ein neues integriertes `REPLICAT` ersetzt es nicht. Anstatt entfernt zu werden, sind die vorhandenen Zeilen in `_DBA_APPLY_CDR_INFO` verwaist. Alle neuen integrierten `REPLICAT`-Prozesse verlangsamen sich, da sie verwaiste Zeilen in `_DBA_APPLY_CDR_INFO` abfragen.

Verwenden Sie das Verfahren Amazon RDS, um alle Zeilen aus `_DBA_APPLY_CDR_INFO` zu entfernen `rdsadmin.rdsadmin_util.truncate_apply$_cdr_info`. Dieses Verfahren wird im Rahmen des Release- und Patch-Updates vom Oktober 2020 veröffentlicht. Der Prozess ist in den folgenden Datenbankversionen verfügbar:
+ [Version 21.0.0.0.ru-2022-01.rur-2022-01.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-21-0.html#oracle-version-RU-RUR.21.0.0.0.ru-2022-01.rur-2022-01.r1) und höher
+ [ Version 19.0.0.0.ru-2020-10.rur-2020-10.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html#oracle-version-RU-RUR.19.0.0.0.ru-2020-10.rur-2020-10.r1) und höher

Im folgenden Beispiel wird die Tabelle abgeschnitten `_DBA_APPLY_CDR_INFO`.

```
SET SERVEROUTPUT ON SIZE 2000
EXEC rdsadmin.rdsadmin_util.truncate_apply$_cdr_info;
```