

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation d'Oracle GoldenGate avec Amazon RDS for Oracle
<a name="Appendix.OracleGoldenGate"></a>

Oracle GoldenGate collecte, réplique et gère les données transactionnelles entre les bases de données. Il s'agit d'un package logiciel de réplication et de capture de données modifiées basé sur les journaux utilisé avec les bases de données pour les systèmes de traitement transactionnel en ligne (OLTP). Oracle GoldenGate crée des fichiers de suivi qui contiennent les données les plus récentes modifiées de la base de données source. Il transmet (push) ensuite ces fichiers au serveur, où un processus convertit le fichier de suivi en code SQL standard à appliquer à la base de données cible.

Oracle GoldenGate with RDS for Oracle prend en charge les fonctionnalités suivantes :
+ Réplication de base de données active-active
+ Reprise après sinistre
+ Protection des données
+ Réplication dans la Région et entre Régions
+ Migration et mises à niveau sans temps d'arrêt
+ Réplication de données entre une instance de base de données RDS for Oracle et une base de données non-Oracle
**Note**  
Pour obtenir la liste des bases de données prises en charge, consultez [Oracle Fusion Middleware Supported System Configurations](https://www.oracle.com/middleware/technologies/fusion-certification.html) (Configurations système prises en charge par Oracle Fusion Middleware) dans la documentation Oracle.

Vous pouvez utiliser Oracle GoldenGate avec RDS pour Oracle pour effectuer une mise à niveau vers les versions majeures d'Oracle Database. Par exemple, vous pouvez utiliser Oracle pour effectuer une mise GoldenGate à niveau d'une base de données sur site Oracle Database 11g vers une base de données Oracle Database 19c sur une instance de base de données Amazon RDS.

**Topics**
+ [

## Versions prises en charge et options de licence pour Oracle GoldenGate
](#Appendix.OracleGoldenGate.licensing)
+ [

## Exigences et limites relatives à Oracle GoldenGate
](#Appendix.OracleGoldenGate.requirements)
+ [

# GoldenGate Architecture Oracle
](Appendix.OracleGoldenGate.Overview.md)
+ [

# Configuration d'Oracle GoldenGate
](Appendix.OracleGoldenGate.setting-up.md)
+ [

# Utilisation des utilitaires EXTRACT et REPLICAT d'Oracle GoldenGate
](Appendix.OracleGoldenGate.ExtractReplicat.md)
+ [

# Surveillance d'Oracle GoldenGate
](Appendix.OracleGoldenGate.Monitoring.md)
+ [

# Dépannage d'Oracle GoldenGate
](Appendix.OracleGoldenGate.Troubleshooting.md)

## Versions prises en charge et options de licence pour Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.licensing"></a>

Vous pouvez utiliser l'édition Standard 2 (SE2) ou Enterprise (EE) de RDS pour Oracle avec Oracle GoldenGate version 12c ou ultérieure. Vous pouvez utiliser les GoldenGate fonctionnalités Oracle suivantes :
+ Oracle GoldenGate Remote Capture (extrait) est pris en charge.
+ La capture (extract) est prise en charge sur les instances de base de données RDS for Oracle qui utilisent l'architecture de base de données traditionnelle non-CDB. La capture Oracle GoldenGate Remote PDB est prise en charge sur Oracle Database 21c ou Oracle Database CDBs 19c version 19.0.0.0.ru-2024-04.rur-2024-04.rur-2024-04.r1 ou supérieure.
+ Oracle GoldenGate Remote Delivery (replicat) est pris en charge sur RDS pour les instances de base de données Oracle qui utilisent des architectures non CDB ou CDB. Remote Delivery prend en charge les processus Replicat intégré, Replicat parallèle, Replicat coordonné et Replicat classique.
+ RDS for Oracle prend en charge les architectures classiques et microservices d'Oracle. GoldenGate
+ La réplication des valeurs GoldenGate DDL et de séquence Oracle est prise en charge lors de l'utilisation du mode de capture intégré.

Vous êtes responsable de la gestion des GoldenGate licences Oracle (BYOL) destinées à être utilisées avec Amazon RDS dans l'ensemble. Régions AWS Pour de plus amples informations, veuillez consulter [Options de licence RDS for Oracle](Oracle.Concepts.Licensing.md).

## Exigences et limites relatives à Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.requirements"></a>

Lorsque vous travaillez avec Oracle GoldenGate et RDS pour Oracle, tenez compte des exigences et limites suivantes : 
+ Vous êtes responsable de la configuration et de la gestion d'Oracle en GoldenGate vue de son utilisation avec RDS pour Oracle. 
+ Vous êtes responsable de la configuration d'une GoldenGate version d'Oracle certifiée avec les bases de données source et cible. Pour plus d’informations, consultez la page [ Configurations système prises en charge par Oracle Fusion Middleware](https://www.oracle.com/middleware/technologies/fusion-certification.html) dans la documentation Oracle.
+ Vous pouvez utiliser Oracle dans GoldenGate de nombreux AWS environnements différents pour de nombreux cas d'utilisation différents. Si vous rencontrez un problème lié au support Oracle GoldenGate, contactez les services de support Oracle.
+ Vous pouvez utiliser Oracle GoldenGate on RDS pour les instances de base de données Oracle qui utilisent Oracle Transparent Data Encryption (TDE). Pour préserver l'intégrité des données répliquées, configurez le chiffrement sur le GoldenGate hub Oracle à l'aide des volumes chiffrés Amazon EBS ou du chiffrement des fichiers de suivi. Configurez également le chiffrement des données envoyées entre le GoldenGate hub Oracle et les instances de base de données source et cible. Les instances de base de données RDS for Oracle prennent en charge le chiffrement avec [Oracle Secure Sockets Layer (SSL)](Appendix.Oracle.Options.SSL.md) ou [Oracle NNE (Native Network Encryption)](Appendix.Oracle.Options.NetworkEncryption.md).

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

L' GoldenGate architecture Oracle à utiliser avec Amazon RDS comprend les modules découplés suivants :

Base de données source  
Votre base de données source peut être au choix une base de données Oracle sur site, une base de données Oracle sur une instance Amazon EC2 ou une base de données Oracle sur une instance de base de données Amazon RDS.

 GoldenGate Hub Oracle  
Un GoldenGate hub Oracle déplace les informations de transaction de la base de données source vers la base de données cible. Votre hub peut être l'un des suivants :  
+ Une instance Amazon EC2 sur laquelle Oracle Database et Oracle sont installés GoldenGate 
+ Une installation Oracle sur site
Vous pouvez avoir plus d'un hub Amazon EC2. Nous vous recommandons d'utiliser deux hubs si vous utilisez Oracle GoldenGate pour la réplication entre régions.

Base de données cible  
Votre base de données cible peut se trouver sur une instance de base de données Amazon RDS, une instance Amazon EC2 ou un emplacement sur site.

Les sections suivantes décrivent des scénarios courants pour Oracle GoldenGate sur Amazon RDS.

**Topics**
+ [

## Base de données source sur site et hub Oracle GoldenGate
](#Appendix.OracleGoldenGate.on-prem-source-gg-hub)
+ [

## Base de données source sur site et hub Amazon EC2
](#Appendix.OracleGoldenGate.on-prem-source-ec2-hub)
+ [

## Base de données source Amazon RDS et hub Amazon EC2
](#Appendix.OracleGoldenGate.rds-source-ec2-hub)
+ [

## Base de données source Amazon EC2 et hub Amazon EC2
](#Appendix.OracleGoldenGate.ec2-source-ec2-hub)
+ [

## Hubs Amazon EC2 dans différentes régions AWS
](#Appendix.OracleGoldenGate.cross-region-hubs)

## Base de données source sur site et hub Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.on-prem-source-gg-hub"></a>

Dans ce scénario, une base de données source Oracle sur site et un GoldenGate hub Oracle sur site fournissent des données à une instance de base de données Amazon RDS cible. 

![\[GoldenGate Configuration Oracle 0 à l'aide d'Amazon RDS\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/oracle-gg0.png)


## Base de données source sur site et hub Amazon EC2
<a name="Appendix.OracleGoldenGate.on-prem-source-ec2-hub"></a>

Dans ce scénario, une base de données Oracle sur site agit comme base de données source. Elle est connectée à un hub d'instance Amazon EC2. Ce hub fournit des données à une instance de base de données RDS for Oracle cible.

![\[GoldenGate Configuration Oracle 1 à l'aide d'Amazon RDS\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/oracle-gg1.png)


## Base de données source Amazon RDS et hub Amazon EC2
<a name="Appendix.OracleGoldenGate.rds-source-ec2-hub"></a>

Dans ce scénario, une instance de base de données RDS for Oracle agit comme base de données source. Elle est connectée à un hub d'instance Amazon EC2. Ce hub fournit des données à une instance de base de données RDS for Oracle cible.

![\[GoldenGate Configuration Oracle 2 à l'aide d'Amazon RDS\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/oracle-gg2.png)


## Base de données source Amazon EC2 et hub Amazon EC2
<a name="Appendix.OracleGoldenGate.ec2-source-ec2-hub"></a>

Dans ce scénario, une base de données Oracle sur une instance Amazon EC2 agit comme base de données source. Elle est connectée à un hub d'instance Amazon EC2. Ce hub fournit des données à une instance de base de données RDS for Oracle cible.

![\[GoldenGate Configuration Oracle 3 à l'aide d'Amazon RDS\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/oracle-gg3.png)


## Hubs Amazon EC2 dans différentes régions AWS
<a name="Appendix.OracleGoldenGate.cross-region-hubs"></a>

Dans ce scénario, une base de données Oracle sur une instance de base de données Amazon RDS est connectée à un hub d'instance Amazon EC2 dans la AWS même région. Le hub est connecté à un hub d'instance Amazon EC2 dans une autre AWS région. Ce deuxième hub fournit des données à l'instance de base de données RDS pour Oracle cible dans la même AWS région que le deuxième hub d'instance Amazon EC2.

![\[GoldenGate Configuration Oracle 4 à l'aide d'Amazon RDS\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/oracle-gg4.png)


**Note**  
Tout problème affectant l'exécution d'Oracle dans un environnement GoldenGate sur site a également une incidence sur l'exécution d'Oracle GoldenGate sur AWS. Nous vous recommandons vivement de surveiller le GoldenGate hub Oracle pour vous en assurer `EXTRACT` et `REPLICAT` de le reprendre en cas de basculement. Le GoldenGate hub Oracle étant exécuté sur une instance Amazon EC2, Amazon RDS ne gère pas le GoldenGate hub Oracle et ne peut pas garantir son fonctionnement.

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

Pour configurer Oracle à GoldenGate l'aide d'Amazon RDS, configurez le hub sur une instance Amazon EC2, puis configurez les bases de données source et cible. Les sections suivantes fournissent un exemple de configuration d'Oracle GoldenGate pour une utilisation avec Amazon RDS for Oracle.

**Topics**
+ [

## Configuration d'un GoldenGate hub Oracle sur Amazon EC2
](#Appendix.OracleGoldenGate.Hub)
+ [

## Configuration d'une base de données source à utiliser avec Oracle GoldenGate sur Amazon RDS
](#Appendix.OracleGoldenGate.Source)
+ [

## Configuration d'une base de données cible à utiliser avec Oracle GoldenGate sur Amazon RDS
](#Appendix.OracleGoldenGate.Target)

## Configuration d'un GoldenGate hub Oracle sur Amazon EC2
<a name="Appendix.OracleGoldenGate.Hub"></a>

Pour créer un GoldenGate hub Oracle sur une instance Amazon EC2, vous devez d'abord créer une instance Amazon EC2 avec une installation client complète d'Oracle RDBMS. Le GoldenGate logiciel Oracle doit également être installé sur l'instance Amazon EC2. Les versions du GoldenGate logiciel Oracle dépendent des versions de base de données source et cible. Pour plus d'informations sur l'installation d'Oracle GoldenGate, consultez la [ GoldenGatedocumentation Oracle](https://docs.oracle.com/en/middleware/goldengate/core/index.html).

L'instance Amazon EC2 qui sert de GoldenGate hub Oracle stocke et traite les informations de transaction de la base de données source dans des fichiers de suivi. Pour prendre en charge ce processus, veillez à respecter les exigences suivantes :
+ Vous avez alloué suffisamment de stockage aux fichiers de suivi.
+ L'instance Amazon EC2 dispose d'une puissance de traitement suffisante pour traiter le volume de données.
+ L'instance EC2 dispose de suffisamment de mémoire pour stocker les informations de transaction avant leur écriture dans le fichier de suivi.

**Pour configurer un hub d'architecture GoldenGate classique Oracle sur une instance Amazon EC2**

1. Créez des sous-répertoires dans le GoldenGate répertoire Oracle.

   Dans le shell de ligne de commande Amazon EC2`ggsci`, lancez l'interpréteur de GoldenGate commandes Oracle. La commande `CREATE SUBDIRS` crée des sous-répertoires sous le répertoire `/gg` pour les fichiers de point de vérification, de rapport et de paramètres.

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

1. Configurez le fichier `mgr.prm`.

   L'exemple suivant ajoute des lignes dans le fichier `$GGHOME/dirprm/mgr.prm`.

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

1. Démarrez le gestionnaire.

   L'exemple suivant lance `ggsci` et exécute la commande `start mgr`.

   ```
   GGSCI> start mgr
   ```

Le GoldenGate hub Oracle est maintenant prêt à être utilisé.

## Configuration d'une base de données source à utiliser avec Oracle GoldenGate sur Amazon RDS
<a name="Appendix.OracleGoldenGate.Source"></a>

Effectuez les tâches suivantes pour configurer une base de données source à utiliser avec Oracle GoldenGate.

**Topics**
+ [

### Étape 1 : activer une journalisation supplémentaire sur la base de données source
](#Appendix.OracleGoldenGate.Source.Logging)
+ [

### Étape 2 : définir le paramètre d'initialisation ENABLE\$1GOLDENGATE\$1REPLICATION sur true
](#Appendix.OracleGoldenGate.Source.enable-gg-rep)
+ [

### Étape 3 : définir la période de conservation des journaux sur la base de données source
](#Appendix.OracleGoldenGate.Source.Retention)
+ [

### Étape 4 : créer un compte GoldenGate utilisateur Oracle dans la base de données source
](#Appendix.OracleGoldenGate.Source.Account)
+ [

### Étape 5 : accorder des privilèges de compte d'utilisateur sur la base de données source
](#Appendix.OracleGoldenGate.Source.Privileges)
+ [

### Étape 6 : ajouter un alias TNS pour la base de données source
](#Appendix.OracleGoldenGate.Source.TNS)

### Étape 1 : activer une journalisation supplémentaire sur la base de données source
<a name="Appendix.OracleGoldenGate.Source.Logging"></a>

Pour activer la journalisation supplémentaire minimale au niveau de la base de données, exécutez la procédure PL/SQL suivante : 

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

### Étape 2 : définir le paramètre d'initialisation ENABLE\$1GOLDENGATE\$1REPLICATION sur true
<a name="Appendix.OracleGoldenGate.Source.enable-gg-rep"></a>

Lorsque vous définissez le paramètre d'initialisation `ENABLE_GOLDENGATE_REPLICATION` sur `true`, il permet aux services de base de données de prendre en charge la réplication logique. Si votre base de données source est sur une instance de base de données Amazon RDS, veillez à disposer d'un groupe de paramètres affecté à l'instance de base de données avec le paramètre d'initialisation `ENABLE_GOLDENGATE_REPLICATION` défini sur `true`. Pour plus d'informations sur le paramètre d'initialisation `ENABLE_GOLDENGATE_REPLICATION`, consultez la [documentation Oracle Database](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/ENABLE_GOLDENGATE_REPLICATION.html).

### Étape 3 : définir la période de conservation des journaux sur la base de données source
<a name="Appendix.OracleGoldenGate.Source.Retention"></a>

Veillez à configurer la base de données source de manière à conserver les journaux redo archivés. Considérez les directives suivantes :
+ Spécifiez la durée de conservation des journaux en heures. La valeur minimale est d'une heure.
+ Définissez cette durée de manière à ce qu'elle dépasse tout temps d'arrêt éventuel de l'instance de base de données source ou la durée de tout problème potentiel de communication ou de mise en réseau pour l'instance source. Une telle durée permet à Oracle de GoldenGate récupérer les journaux de l'instance source selon les besoins.
+ Assurez-vous de disposer d'un espace de stockage suffisant sur votre instance pour les fichiers.

Par exemple, définissez la période de conservation des journaux redo archivés sur 24 heures.

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

Si la conservation des journaux n'est pas activée ou si la valeur de conservation est trop faible, vous recevez un message d'erreur similaire au suivant.

```
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.
```

Étant donné que votre instance de base de données conserve vos journaux redo archivés, assurez-vous de disposer de suffisamment d'espace pour les fichiers. Pour connaître l'espace que vous avez utilisé au cours des dernières *num\$1hours* heures, exécutez la requête suivante en *num\$1hours* remplaçant par le nombre d'heures.

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

### Étape 4 : créer un compte GoldenGate utilisateur Oracle dans la base de données source
<a name="Appendix.OracleGoldenGate.Source.Account"></a>

Oracle GoldenGate fonctionne en tant qu'utilisateur de base de données et nécessite les privilèges de base de données appropriés pour accéder aux journaux de restauration et aux journaux de journalisation archivés de la base de données source. Pour cela, créez un compte d'utilisateur sur la base de données source. Pour plus d'informations sur les autorisations associées à un compte GoldenGate utilisateur Oracle, consultez la [documentation Oracle](https://docs.oracle.com/en/middleware/goldengate/core/19.1/oracle-db/establishing-oracle-goldengate-credentials.html#GUID-79122058-27B0-4FB6-B3DC-B7D1B67EB053).

Les instructions suivantes créent un compte d'utilisateur nommé `oggadm1`. 

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

**Note**  
Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

### Étape 5 : accorder des privilèges de compte d'utilisateur sur la base de données source
<a name="Appendix.OracleGoldenGate.Source.Privileges"></a>

Dans cette tâche, vous accordez les privilèges de compte nécessaires aux utilisateurs de base de données sur votre base de données source.

**Pour accorder des privilèges de compte sur la base de données source**

1. Accordez les privilèges nécessaires au compte GoldenGate utilisateur Oracle à l'aide de la commande SQL `grant` et de la `rdsadmin.rdsadmin_util` procédure`grant_sys_object`. Les instructions suivantes accordent des privilèges à un utilisateur nommé `oggadm1`.

   ```
   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. Accordez les privilèges nécessaires à un compte utilisateur pour être un GoldenGate administrateur Oracle. Exécutez le PL/SQL programme suivant.

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

   Pour révoquer des privilèges, utilisez la procédure `revoke_admin_privilege` dans le même package.

### Étape 6 : ajouter un alias TNS pour la base de données source
<a name="Appendix.OracleGoldenGate.Source.TNS"></a>

Ajoutez l'entrée suivante à `$ORACLE_HOME/network/admin/tnsnames.ora` dans le répertoire de base de base de données Oracle que doit utiliser le processus `EXTRACT`. Pour de plus amples informations sur le fichier `tnsnames.ora`, veuillez consulter la [documentation Oracle](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))
    )
```

## Configuration d'une base de données cible à utiliser avec Oracle GoldenGate sur Amazon RDS
<a name="Appendix.OracleGoldenGate.Target"></a>

Dans cette tâche, vous configurez une instance de base de données cible à utiliser avec Oracle GoldenGate.

**Topics**
+ [

### Étape 1 : définir le paramètre d'initialisation ENABLE\$1GOLDENGATE\$1REPLICATION sur true
](#Appendix.OracleGoldenGate.Target.enable-gg-rep)
+ [

### Étape 2 : créer un compte GoldenGate utilisateur Oracle sur la base de données cible
](#Appendix.OracleGoldenGate.Target.User)
+ [

### Étape 3 : accorder des privilèges de compte sur la base de données cible
](#Appendix.OracleGoldenGate.Target.Privileges)
+ [

### Étape 4 : ajouter un alias TNS pour la base de données cible
](#Appendix.OracleGoldenGate.Target.TNS)

### Étape 1 : définir le paramètre d'initialisation ENABLE\$1GOLDENGATE\$1REPLICATION sur true
<a name="Appendix.OracleGoldenGate.Target.enable-gg-rep"></a>

Lorsque vous définissez le paramètre d'initialisation `ENABLE_GOLDENGATE_REPLICATION` sur `true`, il permet aux services de base de données de prendre en charge la réplication logique. Si votre base de données source est sur une instance de base de données Amazon RDS, veillez à disposer d'un groupe de paramètres affecté à l'instance de base de données avec le paramètre d'initialisation `ENABLE_GOLDENGATE_REPLICATION` défini sur `true`. Pour plus d'informations sur le paramètre d'initialisation `ENABLE_GOLDENGATE_REPLICATION`, consultez la [documentation Oracle Database](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/ENABLE_GOLDENGATE_REPLICATION.html).

### Étape 2 : créer un compte GoldenGate utilisateur Oracle sur la base de données cible
<a name="Appendix.OracleGoldenGate.Target.User"></a>

Oracle GoldenGate fonctionne en tant qu'utilisateur de base de données et nécessite les privilèges de base de données appropriés. Pour vous assurer qu'il possède ces privilèges, créez un compte d'utilisateur sur la base de données cible.

L'instruction suivante crée un utilisateur nommé `oggadm1`.

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

**Note**  
Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

### Étape 3 : accorder des privilèges de compte sur la base de données cible
<a name="Appendix.OracleGoldenGate.Target.Privileges"></a>

Dans cette tâche, vous accordez les privilèges de compte nécessaires aux utilisateurs de base de données sur votre base de données cible.

**Pour accorder des privilèges de compte sur la base de données cible**

1. Accordez les privilèges nécessaires au compte GoldenGate utilisateur Oracle sur la base de données cible. Dans l'exemple suivant, vous accordez des privilèges à `oggadm1`.

   ```
   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. Accordez les privilèges nécessaires à un compte utilisateur pour être un GoldenGate administrateur Oracle. Exécutez le PL/SQL programme suivant.

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

   Pour révoquer des privilèges, utilisez la procédure `revoke_admin_privilege` dans le même package.

### Étape 4 : ajouter un alias TNS pour la base de données cible
<a name="Appendix.OracleGoldenGate.Target.TNS"></a>

Ajoutez l'entrée suivante à `$ORACLE_HOME/network/admin/tnsnames.ora` dans le répertoire de base de base de données Oracle que doit utiliser le processus `REPLICAT`. Pour les bases de données Oracle Multitenant, assurez-vous que l'alias TNS pointe vers le nom de service de la PDB. Pour de plus amples informations sur le fichier `tnsnames.ora`, veuillez consulter la [documentation Oracle](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))
    )
```

# Utilisation des utilitaires EXTRACT et REPLICAT d'Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.ExtractReplicat"></a>

Les GoldenGate utilitaires `EXTRACT` Oracle `REPLICAT` travaillent ensemble pour synchroniser les bases de données source et cible grâce à une réplication incrémentielle des transactions à l'aide de fichiers de suivi. Toutes les modifications apportées à la base de données source sont automatiquement détectées`EXTRACT`, puis formatées et transférées vers des fichiers de suivi sur le hub d'instance Oracle sur GoldenGate site ou Amazon EC2. Après le chargement initial, les données sont lues depuis ces fichiers et répliquées sur la base de données cible par l'utilitaire `REPLICAT`.

## Exécution de l'utilitaire Oracle GoldenGate EXTRACT
<a name="Appendix.OracleGoldenGate.Extract"></a>

L'utilitaire `EXTRACT` récupère et convertit des données provenant de la base de données source pour les fournir en sortie dans des fichiers de suivi. La procédure de base est la suivante :

1. `EXTRACT` met en file d'attente les détails de transaction pour les stocker dans la mémoire ou dans un stockage temporaire sur disque.

1. La base de données source valide la transaction.

1. `EXTRACT` écrit les détails de la transaction dans un fichier de suivi.

1. Le fichier de suivi achemine ces informations vers le hub d'instance Oracle GoldenGate sur site ou Amazon EC2, puis vers la base de données cible.

Les étapes suivantes démarrent l'utilitaire `EXTRACT`, capturent les données de `EXAMPLE.TABLE` dans la base de données source `OGGSOURCE` et créent les fichiers de suivi. 

**Pour exécuter l'utilitaire EXTRACT**

1. Configurez le fichier de `EXTRACT` paramètres sur le GoldenGate hub Oracle (sur site ou instance Amazon EC2). La liste suivante affiche un exemple de fichier de paramètres `EXTRACT` nommé `$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. Sur le GoldenGate hub Oracle, connectez-vous à la base de données source et lancez l'interface de ligne de GoldenGate commande Oracle`ggsci`. L'exemple suivant illustre le format pour la connexion.

   ```
   dblogin oggadm1@OGGSOURCE
   ```

1. Ajoutez des données de transaction pour activer la journalisation supplémentaire pour la table de base de données.

   ```
   add trandata EXAMPLE.TABLE
   ```

1. En utilisant la ligne de commande `ggsci`, activez l'utilitaire `EXTRACT` en utilisant les commandes suivantes.

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

1. Enregistrez l'utilitaire `EXTRACT` avec la base de données afin que les journaux d'archivage ne soient pas supprimés. Cette tâche vous permet de récupérer d'anciennes transactions non validées, si nécessaire. Pour enregistrer l'utilitaire `EXTRACT` avec la base de données, utilisez la commande suivante.

   ```
   register EXTRACT EABC, DATABASE
   ```

1. Démarrez l'utilitaire `EXTRACT` avec la commande suivante.

   ```
   start EABC
   ```

## Exécution de l'utilitaire Oracle GoldenGate REPLICAT
<a name="Appendix.OracleGoldenGate.Replicat"></a>

L'utilitaire `REPLICAT` transmet (push) les informations de transaction des fichiers de suivi vers la base de données cible.

Les étapes suivantes permettent d'activer et de démarrer l'utilitaire `REPLICAT` afin qu'il puisse répliquer les données capturées dans la table `EXAMPLE.TABLE` de la base de données cible `OGGTARGET`.

**Pour exécuter l'utilitaire REPLICATE**

1. Configurez le fichier de `REPLICAT` paramètres sur le GoldenGate hub Oracle (instance sur site ou EC2). La liste suivante affiche un exemple de fichier de paramètres `REPLICAT` nommé `$GGHOME/dirprm/rabc.prm`.

   ```
   REPLICAT RABC
    
   USERID oggadm1@OGGTARGET, password "my-password"
    
   ASSUMETARGETDEFS
   MAP EXAMPLE.TABLE, TARGET EXAMPLE.TABLE;
   ```
**Note**  
Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

1. Connectez-vous à la base de données cible et lancez l'interface de ligne de GoldenGate commande Oracle (`ggsci`). L'exemple suivant illustre le format pour la connexion.

   ```
   dblogin userid oggadm1@OGGTARGET
   ```

1. En utilisant la ligne de commande `ggsci`, ajoutez une table de points de vérification. L'utilisateur indiqué doit être le compte GoldenGate utilisateur Oracle, et non le propriétaire du schéma de table cible. L'exemple suivant crée une table de points de vérification nommée `gg_checkpoint`.

   ```
   add checkpointtable oggadm1.oggchkpt
   ```

1. Pour activer l'utilitaire `REPLICAT`, utilisez la commande suivante :

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

1. Démarrez l'utilitaire `REPLICAT` en utilisant la commande suivante :

   ```
   start RABC
   ```

# Surveillance d'Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Monitoring"></a>

Lorsque vous utilisez Oracle GoldenGate pour la réplication, veillez à ce que le processus Oracle GoldenGate soit opérationnel et que les bases de données source et cible soient synchronisées. Vous pouvez utiliser les outils de surveillance suivants :
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) est un service de surveillance utilisé dans ce modèle pour surveiller les journaux d'erreurs GoldenGate.
+ [Amazon SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html) est un service de notification par messages utilisé dans ce modèle pour envoyer des e-mails de notification.

Pour obtenir des instructions détaillées, consultez [Surveiller les journaux Oracle GoldenGate à l'aide d'Amazon CloudWatch](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch.html).

# Dépannage d'Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Troubleshooting"></a>

Cette section décrit les problèmes les plus courants liés à l'utilisation d'Oracle GoldenGate avec Amazon RDS for Oracle.

**Topics**
+ [

## Erreur lors de l'ouverture d'un journal redo en ligne
](#Appendix.OracleGoldenGate.Troubleshooting.Logs)
+ [

## Oracle GoldenGate semble être correctement configuré mais la réplication ne fonctionne pas
](#Appendix.OracleGoldenGate.Troubleshooting.Replication)
+ [

## Lenteur du REPLICAT intégré en raison d'une requête sur SYS."\$1DBA\$1APPLY\$1CDR\$1INFO"
](#Appendix.OracleGoldenGate.IR)

## Erreur lors de l'ouverture d'un journal redo en ligne
<a name="Appendix.OracleGoldenGate.Troubleshooting.Logs"></a>

Veillez à configurer vos bases de données pour conserver les journaux redo archivés. Considérez les directives suivantes :
+ Spécifiez la durée de conservation des journaux en heures. La valeur minimale est d'une heure.
+ Définissez cette durée de manière à ce qu'elle dépasse tout temps d'arrêt éventuel de l'instance de base de données source ou la durée de tout problème potentiel de communication ou de mise en réseau pour l'instance de base de données source. Une telle durée permet à Oracle de GoldenGate récupérer les journaux de l'instance de base de données source selon les besoins.
+ Assurez-vous de disposer d'un espace de stockage suffisant sur votre instance pour les fichiers.

Si la conservation des journaux n'est pas activée ou si la valeur de conservation est trop faible, vous recevez un message d'erreur similaire au suivant.

```
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 semble être correctement configuré mais la réplication ne fonctionne pas
<a name="Appendix.OracleGoldenGate.Troubleshooting.Replication"></a>

Pour les tables préexistantes, vous devez spécifier le SCN à partir duquel Oracle GoldenGate travaille.

**Pour résoudre ce problème**

1. Connectez-vous à la base de données source et lancez l'interface de ligne de GoldenGate commande Oracle (`ggsci`). L'exemple suivant illustre le format pour la connexion.

   ```
   dblogin userid oggadm1@OGGSOURCE
   ```

1. À l'aide de la ligne de commande `ggsci`, configurez le numéro SCN de départ du processus `EXTRACT`. L'exemple suivant définit le SCN sur 223274 pour `EXTRACT`.

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

1. Connectez-vous à la base de données cible. L'exemple suivant illustre le format pour la connexion.

   ```
   dblogin userid oggadm1@OGGTARGET
   ```

1. À l'aide de la ligne de commande `ggsci`, configurez le numéro SCN de départ du processus `REPLICAT`. L'exemple suivant définit le SCN sur 223274 pour `REPLICAT`.

   ```
   start RABC atcsn 223274
   ```

## Lenteur du REPLICAT intégré en raison d'une requête sur SYS."\$1DBA\$1APPLY\$1CDR\$1INFO"
<a name="Appendix.OracleGoldenGate.IR"></a>

Oracle GoldenGate Conflict Detection and Resolution (CDR) fournit des routines de résolution de conflits de base. Par exemple, CDR peut résoudre un conflit unique pour une instruction `INSERT`.

Lorsque le CDR résout une collision, il peut temporairement insérer des enregistrements dans la table des exceptions `_DBA_APPLY_CDR_INFO`. Le processus `REPLICAT` intégré supprime ces enregistrements par la suite. Il existe un scénario rare dans lequel le processus `REPLICAT` intégré peut traiter un grand nombre de collisions, mais aucun nouveau processus `REPLICAT` intégré ne le remplace. Au lieu d'être supprimées, les lignes existantes de `_DBA_APPLY_CDR_INFO` sont orphelines. Tous les nouveaux processus `REPLICAT` intégrés ralentissent car ils interrogent des lignes orphelines dans `_DBA_APPLY_CDR_INFO`.

Pour supprimer toutes les lignes de `_DBA_APPLY_CDR_INFO`, utilisez la procédure Amazon RDS `rdsadmin.rdsadmin_util.truncate_apply$_cdr_info`. Cette procédure est publiée dans le cadre de la version et de la mise à jour d'octobre 2020. La procédure est disponible dans les versions suivantes des bases de données :
+ [ 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) et versions ultérieures
+ [ 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) et versions ultérieures

L'exemple suivant tronque la table `_DBA_APPLY_CDR_INFO`.

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