Réplication procédurale
Découvrez les procédures de réplication et comment la configurer.
A propos de la réplication procédurale
La réplication procédurale est disponible uniquement avec Oracle AI Database. Oracle GoldenGate utilise la réplication procédurale pour répliquer les procédures PL/SQL fournies par Oracle AI Database, en évitant l'expédition et l'application d'enregistrements de volume élevé généralement générés par ces opérations. La réplication procédurale implémente des modifications du dictionnaire qui contrôlent le comportement des utilisateurs et des sessions, ainsi que le swap d'objets dans le dictionnaire.
La réplication procédurale n'est pas liée à la réplication des instructions CREATE, ALTER et DROP (ou LDD), mais à la réplication d'un appel de procédure tel que :
CALL *procedure_name*(*arg1*, *arg2*, ...);
Par opposition à :
exec *procedure_name*(*arg1*, *arg2*, ...)
Une fois la réplication procédurale activée, les appels aux procédures dans les packages fournis par Oracle AI Database sur une base de données sont répliqués vers une ou plusieurs autres bases de données, puis exécutés sur ces bases de données. Par exemple, un appel de sous-programmes dans le package DBMS_REDEFINITION peut effectuer une redéfinition en ligne d'une table. Si la table est répliquée dans plusieurs bases de données et que vous souhaitez effectuer la même redéfinition en ligne sur la table dans chaque base de données, vous pouvez effectuer les appels vers les sous-programmes du package DBMS_REDEFINITION dans une base de données et Oracle GoldenGate peut répliquer ces appels vers les autres bases de données.
Pour prendre en charge la réplication procédurale, votre instance Oracle AI Database doit être configurée pour identifier les procédures activées pour cette optimisation.
Pour utiliser la réplication procédurale, les prérequis suivants doivent être respectés :
-
Oracle GoldenGate avec extraction et réplication.
-
Les packages fournis par le système ne fonctionnent qu'en combinaison avec des instructions LMD et LDD.
Présentation des processus de réplication procédurale
La réplication procédurale utilise un enregistrement de trace pour garantir que des informations suffisantes sont encapsulées avec l'enregistrement.
Pour utiliser la réplication procédurale Oracle GoldenGate, vous devez l'activer. Votre base de données Oracle AI Database doit disposer d'un mécanisme intégré pour identifier les procédures activées pour cette optimisation.
Les pragmas PL/SQL sont utilisés pour indiquer quelles procédures peuvent être répliquées. Lorsque le pragma est spécifié, un rappel est effectué vers Logminer à l'entrée et à la sortie de la routine. Le callback fournit le nom de l'appel de procédure et des arguments et indique si la procédure s'est arrêtée correctement ou avec une erreur. Logminer augmente le flux de données de journalisation avec les informations issues des callbacks. Pour les procédures prises en charge, les informations de journalisation normales générées par la procédure sont supprimées et seul l'appel de procédure est répliqué.
Un nouvel enregistrement de trace (trail) est généré pour identifier la réplication procédurale. Cet enregistrement de trace tire parti du format de données de colonne de trace existant pour les arguments transmis aux procédures PL/SQL. Pour les objets LOB, les données sont transmises en blocs similaires au format de trace existant pour les objets LOB. Cet enregistrement de trace (trail) contient suffisamment d'informations pour réexécuter la procédure telle quelle sur la cible.
Lorsque vous activez la réplication procédurale, elle empêche l'écriture d'enregistrements individuels concernés par la procédure dans le fichier trace.
Si une erreur survient lors de l'application d'une procédure PL/SQL, le processus Replicat peut réexécuter l'ensemble de la procédure PL/SQL.
Détermination de l'activation ou non de la réplication procédurale
Utilisez la fonction GG_PROCEDURE_REPLICATION_ON du package DBMS_GOLDENGATE_ADM pour déterminer si la réplication procédurale Oracle GoldenGate est activée ou désactivée.
Si vous souhaitez utiliser Oracle GoldenGate dans un environnement Oracle AI Database Vault avec une réplication procédurale, vous devez définir les privilèges appropriés. Reportez-vous au Guide de l'administrateur Oracle AI Database Vault.
Pour activer la réplication procédurale, procédez comme suit :
-
Connectez-vous à la base de données en tant qu'administrateur Oracle GoldenGate (
sys(sqlplus,sqlcl,sqldeveloper) et non en tant qu'administrateur Oracle GoldenGate. -
Exécutez la fonction
GG_PROCEDURE_REPLICATION_ON.
Exemple 9-1 Exécution de la fonction GG_PROCEDURE_REPLICATION_ON
SET SERVEROUTPUT ON
DECLARE
on_or_off NUMBER;
BEGIN
on_or_off := DBMS_GOLDENGATE_ADM.GG_PROCEDURE_REPLICATION_ON;
IF on_or_off=1 THEN
DBMS_OUTPUT.PUT_LINE('Oracle GoldenGate procedural replication is ON.');
ELSE
DBMS_OUTPUT.PUT_LINE('Oracle GoldenGate procedural replication is OFF.');
END IF;
END;
/
Activation et désactivation de la journalisation supplémentaire
Oracle GoldenGate fournit des commandes permettant d'activer ou de désactiver la journalisation supplémentaire des procédures.
Pour activer la journalisation supplémentaire, procédez comme suit :
-
Connectez-vous à la base de données source en tant qu'administrateur Oracle GoldenGate avec
DBLOGIN.CONNECT https://localhost:9000 DEPLOYMENT demo AS ggadmin PASSWORD adminpwDBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate -
Ajoutez la journalisation supplémentaire pour la réplication procédurale.
ADD PROCEDURETRANDATALa sortie se présente comme suit :
INFO OGG-13005 PROCEDURETRANDATA supplemental logging has been enabled.
La journalisation supplémentaire est activée pour la réplication de procédure.
Pour désactiver la journalisation supplémentaire, procédez comme suit :
-
Connectez-vous à la base de données source en tant qu'administrateur Oracle GoldenGate avec dblogin.
CONNECT https://localhost:9000 DEPLOYMENT demo AS ggadmin PASSWORD adminpwDBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate -
Enlève la journalisation supplémentaire pour la réplication de procédure.
DELETE PROCEDURETRANDATA
La journalisation supplémentaire est désactivée pour la réplication de procédure.
Pour afficher des informations sur la journalisation supplémentaire, procédez comme suit :
-
Connectez-vous à la base de données source en tant qu'administrateur Oracle GoldenGate avec dblogin.
CONNECT https://localhost:9000 DEPLOYMENT demo AS ggadmin PASSWORD adminpwDBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate -
Affichez les informations de journalisation supplémentaires pour la réplication de procédure.
INFO PROCEDURETRANDATA
Les informations de journalisation supplémentaires pour la réplication de procédure s'affichent.
Fonctionnalités de filtrage pour la réplication procédurale
Vous pouvez spécifier les procédures et packages à inclure ou à exclure pour la réplication de procédure.
Vous regroupez les packages et procédures pris en charge à l'aide de groupes de fonctionnalités. Vous utilisez le paramètre de procédure avec le mot-clé INCLUDE ou EXCLUDE pour filtrer les fonctionnalités de réplication de procédure.
Dans le paramètre de procédure, INCLUDE ou EXCLUDE indiquent le début d'une clause de filtrage. Ils indiquent les procédures à répliquer (INCLUDE) ou à filtrer (EXCLUDE). La clause de filtrage doit être composée du mot-clé INCLUDE ALL_SUPPORTED ou EXCLUDE ALL_SUPPORTED suivi de toute combinaison valide des autres options de filtrage du paramètre de procédure. Le filtre EXCLUDE est prioritaire sur les filtres INCLUDE qui contiennent les mêmes critères.
<div class="infoboxnote" markdown="1">
**Note:**
When replicating Oracle Streams Advanced Queuing (AQ) procedures, you must use the `RULE` option in your parameter file as follows:
`PROCEDURE INCLUDE FEATURE ALL_SUPPORTED`
or
`PROCEDURE INCLUDE FEATURE AQ, RULE`
Do *not* use `PROCEDURE INCLUDE FEATURE AQ` without the `RULE` option.
</div>
Inclut tous les packages fournis par le système lors de l'extraction :
-
Connectez-vous à Extract dans la base de données source.
EXTRACT edbaUSERIDALIAS admin_dbA DOMAIN ORADEV -
Créez un fichier trace (trail).
EXTTRAIL ea -
Activez la réplication de procédure, si ce n'est déjà fait.
TRANLOGOPTIONS INTEGRATEDPARAMS (ENABLE_PROCEDURAL_REPLICATION Y) -
Filtre d'inclusion pour la réplication de procédure.
PROCEDURE INCLUDE FEATURE ALL_SUPPORTED
Vous avez inclus tous les packages fournis par le système pour la réplication de procédure.
Exclusion de packages spécifiques dans Replicat :
-
Connectez-vous au processus Replicat dans la base de données cible.
REPLICAT rdbaUSERIDALIAS admin_dbBDOMAIN ORADEV -
Filtre d'inclusion pour la réplication de procédure.
PROCEDURE EXCLUDE FEATURE RLS
Vous avez exclu des packages spécifiques pour la réplication de procédure.
Gestion des erreurs de réplication procédurale
La réplication procédurale utilise le paramètre REPERROR pour configurer le comportement du processus Replicat lorsqu'une erreur procédurale se produit.
Par défaut, le processus Replicat abandonne lorsqu'une réplication procédurale se produit. Les étapes suivantes permettent de configurer la gestion des erreurs :
-
Connectez-vous au processus Replicat dans la base de données cible.
REPLICAT rdbaUSERIDALIAS admin_dbBDOMAIN ORADEV -
Filtre d'inclusion pour la réplication de procédure.
PROCEDURE EXCLUDE FEATURE RLS -
Indiquez le paramètre de gestion des erreurs. Pour d'autres options, reportez-vous à
REPERRORdans Référence des paramètres et des fonctions pour Oracle GoldenGate.REPERROR (PROCEDURE, DISCARD)
Vous avez géré les erreurs pour la réplication procédurale.
Liste des procédures prises en charge pour la réplication procédurale Oracle GoldenGate
La vue DBA_GG_SUPPORTED_PROCEDURES affiche des informations sur les packages pris en charge pour la réplication procédurale Oracle GoldenGate.
Lorsqu'une procédure est prise en charge et que la réplication procédurale Oracle GoldenGate est activée, les appels à la procédure sont répliqués, sauf si la procédure est exclue spécifiquement.
-
Connectez-vous à la base de données en tant qu'administrateur Oracle GoldenGate (
sys(sqlplus,sqlcl,sqldeveloper) et non en tant qu'administrateur Oracle GoldenGate. -
Interrogez la vue
DBA_GG_SUPPORTED_PROCEDURES.
Exemple 9-2 Affichage d'informations sur les packages pris en charge pour la réplication procédurale Oracle GoldenGate
Cette requête affiche les informations suivantes sur les packages :
-
Le propriétaire de chaque package
-
Le nom de chaque package
-
Le nom de chaque procédure
-
Version de base de données minimale à partir de laquelle la procédure est prise en charge
-
Indique si une règle d'exclusion empêche la réplication de la procédure pour certains objets de base de données
COLUMN OWNER FORMAT A10
COLUMN PACKAGE_NAME FORMAT A15
COLUMN PROCEDURE_NAME FORMAT A15
COLUMN MIN_DB_VERSION FORMAT A14
COLUMN EXCLUSION_RULE_EXISTS FORMAT A14
SELECT OWNER,
PACKAGE_NAME,
PROCEDURE_NAME,
MIN_DB_VERSION,
EXCLUSION_RULE_EXISTS
FROM DBA_GG_SUPPORTED_PROCEDURES;
Vous avez l'air d'une sortie similaire à ce qui suit :
OWNER PACKAGE_NAME PROCEDURE_NAME MIN_DB_VERSION EXCLUSION_RULE
---------- --------------- --------------- -------------- --------------
XDB DBMS_XDB_CONFIG ADDTRUSTMAPPING 12.2 NO
CTXSYS CTX_DDL ALTER_INDEX 12.2 NO
SYS DBMS_FGA DROP_POLICY 12.2 NO
SYS XS_ACL DELETE_ACL 12.2 NO
.
.
.
Surveiller la réplication procédurale d'Oracle GoldenGate
Un ensemble de vues du dictionnaire de données vous permet de surveiller la réplication procédurale Oracle GoldenGate.
Vous pouvez utiliser les vues suivantes pour surveiller la réplication procédurale Oracle GoldenGate :
| Voir | Description |
|---|---|
DBA_GG_SUPPORTED_PACKAGES |
Fournit des détails sur les packages pris en charge pour la réplication procédurale Oracle GoldenGate. Lorsqu'un package est pris en charge et que la réplication procédurale Oracle GoldenGate est activée, les appels aux sous-programmes du package sont répliqués. |
DBA_GG_SUPPORTED_PROCEDURES |
Fournit des détails sur les procédures prises en charge pour la réplication procédurale Oracle GoldenGate. |
DBA_GG_PROC_OBJECT_EXCLUSION |
Fournit des détails sur tous les objets de base de données figurant sur la liste d'exclusion pour la réplication procédurale Oracle GoldenGate. Un objet de base de données est ajouté à la liste d'exclusion à l'aide de la procédure |
-
Connectez-vous à la base de données en tant qu'administrateur Oracle GoldenGate (
sys(sqlplus,sqlclousqldeveloper) et non en tant qu'administrateur Oracle GoldenGate. -
Interrogez les vues liées à la réplication procédurale Oracle GoldenGate.