Préparation des paramètres de connexion de base de données, de système et de paramètre

Découvrez comment configurer la connexion à la base de données, le système et les paramètres pour Oracle GoldenGate for Oracle.

Activation du mode de réplication et d'archivage GoldenGate

Etape 1 : activation de la réplication GoldenGate

Les services de base de données requis pour prendre en charge l'extraction et la réplication Oracle GoldenGate doivent être activés explicitement pour Oracle AI Database.

Pour activer la réplication Oracle GoldenGate, définissez le paramètre d'initialisation de base de données suivant. Cette valeur doit être définie sur TRUE pour toutes les instances d'Oracle RAC si vous utilisez Oracle GoldenGate sur l'un des noeuds.

ALTER SYSTEM SET enable_goldengate_replication = true SCOPTE=both;

Pour plus d'informations sur ce paramètre, reportez-vous à la rubrique Paramètres d'initialisation.

Etapes 2 : Activer le mode d'archivage

Les bases de données Oracle doivent être en mode ARCHIVELOG pour que le processus Extract puisse traiter les fichiers journaux. Pour activer le mode ARCHIVELOG, suivez les étapes fournies dans Modification du mode d'archivage de base de données.

Définir Flashback Query

Pour connaître les données extraites par Oracle GoldenGate, reportez-vous à Détails de la prise en charge des types et objets de données Oracle.

Par défaut, Oracle GoldenGate utilise Flashback Query pour extraire les valeurs des tablespaces d'annulation (rollback). De cette façon, Oracle GoldenGate peut reconstruire une image de ligne cohérente en lecture à une heure ou un SCN spécifique pour correspondre à l'enregistrement de journalisation.

Pour obtenir les meilleurs résultats d'extraction, configurez la base de données source comme suit :

  1. Définissez une quantité suffisante de conservation des informations de journalisation en définissant les paramètres d'initialisation Oracle UNDO_MANAGEMENT et UNDO_RETENTION comme suit (en secondes).

    UNDO_MANAGEMENT=AUTO
    
    UNDO_RETENTION=86400
    
    UNDO_RETENTION can be adjusted upward in high-volume environments.
  2. Calculez l'espace requis dans le tablespace d'annulation à l'aide de la formule suivante.

    *undo_space* = UNDO_RETENTION * *UPS* + *overhead*

    Où :

    • undo_space est le nombre de blocs d'annulation.

    • UNDO_RETENTION est la valeur du paramètre UNDO_RETENTION (en secondes).

    • UPS est le nombre de blocs d'annulation par seconde.

    • overhead est la surcharge minimale pour les métadonnées (tables de transaction, etc.).

    Utilisez la vue système V$UNDOSTAT pour estimer les UPS et les frais généraux.

  3. Pour les tables qui contiennent LOBs, effectuez l'une des opérations suivantes :

    • Définissez la clause de stockage LOB sur RETENTION. Il s'agit de la valeur par défaut pour les tables créées lorsque UNDO_MANAGEMENT est défini sur AUTO.

    • Si vous utilisez PCTVERSION au lieu de RETENTION, définissez PCTVERSION sur une valeur initiale de 25. Vous pouvez l'ajuster en fonction des statistiques d'extraction qui sont rapportées avec la commande STATS EXTRACT. Si la valeur du champ STAT_OPER_ROWFETCH CURRENTBYROWID ou STAT_OPER_ROWFETCH_CURRENTBYKEY dans ces statistiques est élevée, augmentez PCTVERSION par incréments de 10 jusqu'à ce que les statistiques affichent des valeurs faibles.

Oracle GoldenGate fournit les paramètres suivants pour gérer l'extraction.

Paramètre ou commande Description
Commande STATS EXTRACT avec option REPORTFETCH Affiche les statistiques d'extraction d'extraction à la demande.
Paramètre STATOPTIONS avec l'option REPORTFETCH Définit la commande STATS EXTRACT de sorte qu'elle affiche toujours les statistiques d'extraction.
Paramètre MAXFETCHSTATEMENTS Contrôle le nombre de curseurs ouverts pour les requêtes préparées que le processus Extract gère dans la base de données source, ainsi que pour les opérations SQLEXEC.
Paramètre MAXFETCHSTATEMENTS Contrôle le comportement d'extraction par défaut du processus Extract : indique si le processus Extract exécute une interrogation Flashback ou extrait l'image en cours de la table.
Paramètre FETCHOPTIONS avec l'option USELATESTVERSION ou NOUSELATESTVERSION gère l'échec d'une interrogation Flashback Extract, par exemple si la conservation des informations d'annulation a expiré ou si la structure d'une table a été modifiée. Le processus Extract peut extraire l'image en cours de la table ou ignorer l'échec.
Paramètre REPFETCHEDCOLOPTIONS Contrôle la réponse du processus Replicat lorsqu'il traite des enregistrements de trace qui incluent des données extraites ou des conditions d'absence de colonne.

Gérer d'autres propriétés de base de données

Certaines propriétés de base de données peuvent affecter Oracle GoldenGate et les paramètres utilisés pour résoudre ou contourner certaines conditions.

Le tableau suivant répertorie les propriétés de la base de données et la préoccupation/résolution associée.

Propriété de base de données Préoccupation/Résolution
Table avec partitionnement par intervalle Pour prendre en charge les tables avec partitionnement par intervalle, assurez-vous que le paramètre WILDCARDRESOLVE reste à sa valeur par défaut DYNAMIC.
Table avec colonnes virtuelles

Les colonnes virtuelles ne sont pas consignées et Oracle n'autorise pas les opérations LMD sur les colonnes virtuelles. Toutefois, vous pouvez capturer ces données et les mettre en correspondance avec une colonne cible qui n'est pas une colonne virtuelle en procédant comme suit :

Incluez la table dans l'instruction TABLE d'extraction et utilisez l'option FETCHCOLS de TABLE pour extraire la valeur de la colonne virtuelle dans la base de données.

Dans l'instruction MAP du processus de réplication, mettez en correspondance la colonne virtuelle source avec la colonne cible non virtuelle.

Table avec vue pouvant être mise à jour par nature Pour effectuer une réplication vers une vue pouvant être mise à jour par nature, définissez une clé sur les colonnes uniques de la vue pouvant être mise à jour à l'aide d'une clause KEYCOLS dans la même instruction MAP dans laquelle les tables source et cible associées sont mises en correspondance.
Fichiers de journalisation ou archives à différents emplacements Le paramètre TRANLOGOPTIONS contient des options permettant de gérer les environnements dans lesquels les fichiers de journalisation (redo logs) ou les archives sont stockés à un emplacement différent de celui de la base de données par défaut ou sur une plate-forme différente de celle sur laquelle le processus Extract est exécuté.
Opérations TRUNCATE

Pour répliquer des opérations TRUNCATE, choisissez l'une des deux options suivantes :

  • La prise en charge autonome de TRUNCATE au moyen du paramètre GETTRUNCATES réplique TRUNCATE TABLE, mais aucune autre option TRUNCATE. A utiliser uniquement si vous n'utilisez pas la prise en charge des instructions LDD Oracle GoldenGate.

  • La prise en charge complète des instructions LDD réplique TRUNCATE TABLE, ALTER TABLE TRUNCATE PARTITION et d'autres instructions LDD.

Numéros

Pour répliquer des instructions LDD pour des séquences (CREATE, ALTER, DROP, RENAME), utilisez la prise en charge des instructions LDD Oracle GoldenGate.

Pour répliquer uniquement des valeurs de séquence, utilisez le paramètre SEQUENCE dans le fichier de paramètres d'extraction. Cela ne nécessite pas l'environnement de prise en charge DDL Oracle GoldenGate.

Configuration d'une base de données Conteneur colocative

Oracle GoldenGate avec Oracle AI Database permet l'implémentation de bases de données pluggables (PDB) pour la source et la cible. L'extraction est enregistrée pour une base de données pluggable spécifique, appelée extraction par base de données pluggable.

Remarque : l'accès au niveau racine avec l'utilisateur c##ggadmin n'est pas recommandé, sauf en cas de configuration d'extraction en aval. Utilisez le processus Extract au niveau de la base de données pluggable au lieu du processus Extract au niveau racine.

Le schéma suivant illustre la configuration de différentes approches dans une configuration de base de données Conteneur colocative :

Description de l'image pdb_extract_feedbk.png

Ajouter le processus Extract directement à partir des captures de base de données pluggable isolées, en gérant la propriété et la responsabilité au niveau des bases de données pluggables.

A l'aide d'une extraction par base de données pluggable, vous pouvez vous connecter en tant qu'utilisateur de base de données pluggable local (par exemple, ggadmin), puis inscrire cette extraction auprès de la base de données. Etant donné que vous êtes déjà connecté en tant qu'utilisateur de base de données pluggable, une clause container supplémentaire n'est pas requise. De même, la convention de dénomination SOURCECATALOG ou en trois parties n'est pas nécessaire.

Pour configurer une extraction, reportez-vous à Ajout d'une extraction.

Remarques concernant la configuration de la base de données Conteneur colocative

Tenez compte des consignes suivantes lorsque vous configurez des bases de données Conteneur colocatives pour la réplication de données à l'aide d'Oracle GoldenGate :

Reportez-vous à Ajout de connexions de base de données pour ajouter un utilisateur de base de données Conteneur colocative dans les informations d'identification Oracle GoldenGate. Reportez-vous à Octroi de privilèges utilisateur pour Oracle Database 21c et inférieur ou à Octroi de privilèges utilisateur pour Oracle AI Database 26ai et supérieur en fonction de l'installation d'Oracle AI Database que vous devez configurer.

Séquence de vidage pour la base de données Conteneur colocative

Vous pouvez uniquement utiliser la commande FLUSH SEQUENCE dans Oracle GoldenGate, si le script sequence.sql applique les procédures de base de données au schéma d'administration GoldenGate de la base de données.

Utilisez la commande FLUSH SEQUENCE immédiatement après le premier démarrage de l'extraction lors d'une synchronisation initiale ou d'une resynchronisation. Cette commande met à jour une séquence Oracle de façon à mettre les enregistrements redo initiaux disponibles au moment où le processus d'extraction commence à capturer les données d'une transaction. En principe, l'enregistrement redo n'est pas généré tant que le cache en cours n'est pas épuisé. Grâce au vidage, la réplication dispose d'un point de départ initial pour effectuer la synchronisation avec la valeur de séquence correcte sur le système cible. L'extraction peut alors utiliser l'enregistrement redo associé à la réservation de cache habituelle des valeurs de séquence. 1. Les procédures Oracle suivantes sont utilisées par FLUSH SEQUENCE :

 | 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>
  1. Avant d'utiliser FLUSH SEQUENCE, connectez-vous à la base de données à l'aide de la commande DBLOGIN.

FLUSH SEQUENCE doit être émis au niveau de la base de données pluggable pour créer un utilisateur Oracle GoldenGate dans chaque base de données pluggable pour laquelle la réplication de séquence est requise. Utilisez DBLOGIN pour vous connecter à cette base de données pluggable et exécutez la commande FLUSH SEQUENCE.

Il est recommandé d'utiliser le même schéma dans chaque base de données pluggable, afin qu'il fonctionne avec le fichier de paramètres GGSCHEMA GLOBALS.

Dans l'exemple suivant, la configuration de l'environnement est pour Oracle 21c vers Oracle 21c Replication, avec extraction intégrée, réplication parallèle à l'aide d'Oracle GoldenGate 21c (21.3.0).

Le tableau suivant répertorie les noms des bases de données Conteneur source et cible, des bases de données pluggables et les informations d'identification utilisateur correspondantes pour la connexion à la base de données.

Base de données Conteneur source Base de données Conteneur cible
NORTH SOUTH
Nom de la base de données pluggable : DBEAST Nom de la base de données pluggable : DBWEST

Utilisateur commun : c##ggadmin

Utilisateur de base de données pluggable pour les séquences : ggate

Utilisateur de base de données pluggable : 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;

Exécutez @sequence.sql.

sqlplus system/manager
ALTER SESSION SET CONTAINER=DBEAST;
@sequence.sql

Lorsque vous y êtes invité, entrez les éléments suivants :

GGADMIN

Exécutez la commande FLUSH SEQUENCE :

DBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate
FLUSH SEQUENCE DBEAST.HR.*

Configuration Oracle GoldenGate cible :

sqlplus system/manager
ALTER SESSION SET CONTAINER =PDBWEST;
@sequence.sql

Lorsque vous y êtes invité, entrez le nom utilisateur de la base de données pluggable ggadmin.

Cela s'applique également au script @sequence.sql, que vous devez également exécuter sur chaque base de données pluggable à partir de laquelle vous allez capturer.