

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.

# 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))
    )
```