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 :
-
Définissez une quantité suffisante de conservation des informations de journalisation en définissant les paramètres d'initialisation Oracle
UNDO_MANAGEMENTetUNDO_RETENTIONcomme suit (en secondes).UNDO_MANAGEMENT=AUTO UNDO_RETENTION=86400 UNDO_RETENTION can be adjusted upward in high-volume environments. -
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_RETENTIONest la valeur du paramètreUNDO_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$UNDOSTATpour estimer les UPS et les frais généraux. -
-
Pour les tables qui contiennent
LOBs, effectuez l'une des opérations suivantes :-
Définissez la clause de stockage
LOBsurRETENTION. Il s'agit de la valeur par défaut pour les tables créées lorsqueUNDO_MANAGEMENTest défini surAUTO. -
Si vous utilisez
PCTVERSIONau lieu deRETENTION, définissezPCTVERSIONsur une valeur initiale de 25. Vous pouvez l'ajuster en fonction des statistiques d'extraction qui sont rapportées avec la commandeSTATS EXTRACT. Si la valeur du champSTAT_OPER_ROWFETCHCURRENTBYROWIDouSTAT_OPER_ROWFETCH_CURRENTBYKEYdans ces statistiques est élevée, augmentezPCTVERSIONpar 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 Dans l'instruction |
| 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
|
| Numéros | Pour répliquer des instructions LDD pour des séquences ( Pour répliquer uniquement des valeurs de séquence, utilisez le paramètre |
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 :

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 :
-
Les différentes bases de données pluggables de la base de données Conteneur colocative peuvent avoir des jeux de caractères différents. Oracle GoldenGate capture les données de n'importe quelle base colocative avec différents jeux de caractères dans un seul fichier trace et réplique les données sans corruption en raison de l'utilisation de différents jeux de caractères.
-
Pour créer et enregistrer une extraction par base de données pluggable, vous devez vous connecter à l'utilisateur de base de données pluggable, tel que
ggadmincréé pour l'accès au niveau de la base de données pluggable. Utilisez le paramètreUSERIDALIASpour configurer une chaîne de connexion réseau SQL, telle queggadmin@pdbeast. Vous n'avez *pas besoin de la clause de conteneur ou deSOURCECATALOGpour configurer l'extraction par base de données pluggable. -
Si le nom utilisateur de la base de données pluggable, le nom utilisateur de la base de données Conteneur ou GLOBAL_NAME contient un tiret, Oracle GoldenGate génère l'erreur suivante :
ERROR OGG-08221 Cannot register or unregister EXTRACT <extract_name> because of the following SQL error: OCI Error ORA (status = 44004-ORA-44004: invalid qualified SQL name -
Pour prendre en charge la base de données Conteneur source 12.2, le processus Extract doit indiquer le format de trace dans la version 12.3. En raison des modifications apportées aux fichiers de journalisation, pour effectuer une capture à partir d'une base de données colocative Oracle 12.2 ou supérieure, la version du format de trace doit être 12.3 ou supérieure.
-
La réplication LDD fonctionne comme une réplication normale pour les bases de données colocatives.
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>
- Avant d'utiliser
FLUSH SEQUENCE, connectez-vous à la base de données à l'aide de la commandeDBLOGIN.
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 : Utilisateur de base de données pluggable pour les séquences : |
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.