ADD SCHEMATRANDATA
Valide pour Oracle.
Utilisez ADD SCHEMATRANDATA afin d'activer la journalisation supplémentaire de niveaux schéma pour une table. ADD SCHEMATRANDATA agit sur toutes les tables actuelles et futures dans un schéma donné afin de journaliser automatiquement un surensemble de clés disponibles dont Oracle GoldenGate a besoin pour l'identification de ligne.
Remarque : Oracle GoldenGate 23.6 ne prend pas en charge l'activation de la réplication logique au niveau du schéma pour les vues de dualité relationnelle JSON (DV JSON) et les tables de collecte JSON (JCT).
Afin d'exécuter ADD SCHEMATRANDATA pour un schéma dans la PDB d'une base de données colocative, vous devez vous connecter à la PDB pour émettre la commande.
ADD SCHEMATRANDATA est valide pour l'extraction, et effectue les actions suivantes :
-
Active la journalisation supplémentaire Oracle pour les nouvelles tables créées avec une commande
CREATE TABLE. -
Met à jour la journalisation supplémentaire pour les tables faisant l'objet d'un ajout ou d'une suppression de colonnes via
ALTER TABLE. -
Met à jour la journalisation supplémentaire pour les tables renommées.
-
Met à jour la journalisation supplémentaire pour les tables faisant l'objet d'ajout ou de suppression de clés primaires ou uniques.
-
Active une table pour la capture automatique. La commande ajoute les données de journalisation supplémentaire PK, UI, FK, ALLKEYS de niveau schéma.
Par défaut, ADD SCHEMATRANDATA journalise les colonnes de clé d'une table dans l'ordre de priorité suivant :
-
Clé primaire
-
En l'absence de clé primaire, toutes les clés uniques de la table, y compris celles qui sont désactivées, inutilisables ou invisibles. Les clés uniques qui contiennent des colonnes de membre ADT sont également journalisées. Seules les clés uniques sur des colonnes virtuelles (index basés sur des fonctions) ne sont pas journalisées.
-
Si aucune des clés précédentes n'existe, toutes les colonnes scalaires de la table sont journalisées. (Les ID d'objet de ligne générés par le système sont toujours journalisés.)
ADD SCHEMATRANDATA prend également en charge les exigences en matière de journalisation conditionnelle ou non conditionnelle dans le contexte de l'utilisation de l'outil de réplication intégrée.
Utilisez ADD SCHEMATRANDATA dans les cas suivants :
-
Pour toutes les tables qui font partie d'un groupe d'extraction qui n'est pas configuré pour la capture intégrée.
ADD SCHEMATRANDATAgarantit que la clé correcte est consignée en consignant toutes les clés. -
Pour toutes les tables source qui seront traitées dans un groupe de réplication intégrée. Des options fournies permettent d'activer la journalisation des clés primaires, uniques et étrangères afin de prendre en charge le calcul des dépendances parmi les tables relationnelles traitées par le biais de différents serveurs d'application.
-
Lorsque la réplication DDL est active, que DML et DDL sont exécutés simultanément et que DDL crée des colonnes de clé ou en modifie. La commande gère parfaitement les scénarios dans lesquels DML peut être appliqué aux objets aussitôt après l'émission de DDL sur ces derniers.
ADD SCHEMATRANDATAentraîne la journalisation atomique des valeurs de clé appropriées dans un fichier de journalisation à chaque opération DDL, qui assure ainsi la continuité des métadonnées pour le DML lorsqu'elles sont capturées à partir du journal, malgré le décalage dans les traitements d'extraction.
Exigences de journalisation au niveau de la base de données pour UsingADD SCHEMATRANDATA
Oracle vous encourage vivement à mettre la base de données source en mode de journalisation forcée et à activer la journalisation supplémentaire minimale au niveau de la base de données lorsque vous utilisez Oracle GoldenGate. Ainsi, les informations de chaînage de lignes sont ajoutées, le cas échéant, au fichier de journalisation pour les opérations de mise à jour.
Remarques supplémentaires concernant UsingADD SCHEMATRANDATA
-
Avant d'utiliser
ADD SCHEMATRANDATA, émettez la commandeDBLOGIN. L'utilisateur émettant la commande doit disposer du privilège d'administrateur Oracle Streams.EXEC DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE('*GGADMIN*') -
ADD SCHEMATRANDATApeut être utilisé à la place de la commandeADD TRANDATAquand la réplication DDL n'est pas activée. Toutefois, si une table ne dispose d'aucune clé primaire mais de plusieurs clés uniques,ADD SCHEMATRANDATAindique à la base de données de journaliser toutes les clés uniques. Dans de tels cas,ADD SCHEMATRANDATAindique à la base de données de journaliser davantage de données de journalisation queADD TRANDATA. Pour éviter la journalisation supplémentaire, désignez l'une des clés uniques comme clé primaire, si possible. -
Pour les tables avec une clé primaire et une seule clé unique, ou sans clé,
ADD SCHEMATRANDATAn'ajoute aucun temps système supplémentaire de journalisation par rapport àADD TRANDATA. -
Si vous ajoutez
SCHEMATRANDATAsur un schéma dans une base de données pluggable, vous devez être connecté à cette dernière dansDBLOGIN. Par exemple, pourPDBEASTetHR, utilisez la commande suivante :ADD SCHEMATRANDATA pdbeast.hr -
Si vous devez journaliser d'autres colonnes non clé d'une ou de plusieurs tables spécifiques pour l'utilisation par Oracle GoldenGate (par exemple, les colonne nécessaires dans les instructions
FILTERet les clausesKEYCOLSdes paramètresTABLEetMAP), émettez une commandeADD TRANDATApour ces colonnes. Cette commande contient une optionCOLSqui permet d'émettre la journalisation supplémentaire pour les colonnes au niveau table. Cette option peut être utilisée avecADD SCHEMATRANDATA.
Syntaxe
ADD SCHEMATRANDATA schema
{
[ALLOWNONVALIDATEDKEYS]
[NOSCHEDULINGCOLS | ALLCOLS]}
[NOVALIDATE]
[PARTIALJSON]
[PREPARECSN {WAIT | LOCK | NOWAIT | NONE}]
schema
Schéma pour lequel journaliser les informations de clé supplémentaires. N'utilisez aucun caractère générique. Afin d'émettre ADD SCHEMATRANDATA pour des schémas se trouvant dans plusieurs bases de données pluggables d'une même base de données Conteneur colocative, connectez-Vous séparément à chaque base de données pluggable à l'aide de DBLOGIN, puis émettez ADD SCHEMATRANDATA. A partir du conteneur racine, vous pouvez émettre la commande avec le préfixe du conteneur ADD SCHEMATRANDATA [pdb_name].schema
Si vous exécutez la commande à partir de cdb$root, assurez-vous également de définir le privilège utilisateur suivant du côté de la base de données :
ALTER USER userID SET CONTAINER_DATA = ALL CONTAINER = CURRENT;
ALLOWNONVALIDATEDKEYS
Elle inclut les clés primaires NON VALIDATED et NOT VALID dans la journalisation supplémentaire. Ces clés remplacent les critères de sélection de clé habituels employés par Oracle GoldenGate. Si le paramètre GLOBALS ALLOWNONVALIDATEDKEYS est utilisé, ADD SCHEMATRANDATA est exécuté avec ALLOWNONVALIDATEDKEYS, qu'il soit spécifié ou non. Par défaut, ces clés primaires NON VALIDATED et NOT VALID ne sont pas journalisées. Voir le paramètre GLOBALS de ALLOWNONVALIDATEDKEYS.
NOSCHEDULINGCOLS | ALLCOLS
Ces options contrôlent la journalisation supplémentaire d'une base de données cible Oracle. Vous pouvez les utiliser ensemble, même si cette dernière option est employée. Par exemple, avec la commande ADD SCHEMATRANDATA oggadm_ext ALLCOL NOSCHEDULINGCOLS, l'option NOSCHEDULINGCOLS serait utilisée.
NOSCHEDULINGCOLS
Désactive la journalisation des colonnes de programmation. Par défaut, ADD SCHEMATRANDATA active la journalisation non conditionelle de la clé primaire et la journalisation supplémentaire conditionnelle de toutes les clés uniques et étrangères de l'ensemble des tables actuelles et futures dans le schéma donné. La journalisation non conditionnelle force les valeurs de clé primaire vers le journal, que la clé ait été modifiée ou non lors de l'opération en cours. La journalisation conditionnelle journalise toutes les valeurs de colonne d'une clé étrangère ou unique si au moins l'une d'elles a été modifiée lors de l'opération en cours. La clé primaire, les clés uniques et les clés étrangères de réplication intégrée doivent toutes être disponibles afin que le serveur entrant puisse calculer les dépendances.
Si vous activez auto_capture, n'utilisez pas cette option. Les tables de ce schéma pourront ainsi être capturées automatiquement, sauf si la table est explicitement exclue/désactivée pour une réplication (par exemple, via TABLEEXCLUDE, DELETE TRANDATA ou ALTER TABLE DISABLE LOGICAL REPLICATION DDL).
ALLCOLS
Active la journalisation supplémentaire non conditionnelle de toutes les colonnes de clé et non clé prises en charge pour l'ensemble des tables actuelles et futures dans le schéma donné. Cette option active la journalisation des clés nécessaires au calcul des dépendances, ainsi que des colonnes requises pour le filtrage, la résolution de conflit ou à d'autres fins. Les colonnes comme LOB, LONG et ADT ne sont pas incluses.
NOVALIDATE
Valide pour toutes les bases de données prises en charge par ADD SCHEMATRANDATA.
Supprime les informations supplémentaires concernant la table en cours de traitement par ADD SCHEMATRANDATA. Par défaut, cette option est activée. Le traitement des informations supplémentaires génère un délai de réponse de la commande. Cette option peut donc être utilisée pour augmenter le temps de réponse.
PARTIALJSON
Valide pour Oracle.
Extrait les mises à jour JSON partielles au niveau du schéma. En cas d'activation, l'enregistrement redo inclura les enregistrements JSON partiels.
Voir également le paramètre TRANLOGOPTIONS FETCHPARTIALJSON.
PREPARECSN {WAIT | LOCK | NOWAIT | NONE}
Valide pour Oracle (DML et DDL).
Prépare automatiquement les tables au niveau de la source afin que le fichier dump d'export Oracle Data Pump inclue les numéros CSN d'instanciation. La réplication utilise le CSN d'instanciation par table défini par Oracle Data Pump (lors de l'import) pour retirer par filtrage les enregistrements de trace. Sur la cible, l'import Data Pompe remplit la table et la vue système avec des noms SCN d'instanciation à l'aide du paramètre DBOPTIONS ENABLE_INSTANTIATION_FILTERING afin d'activer le filtrage d'instanciation de niveau table.
WAIT
Attend les transactions en attente de traitement et prépare l'instanciation de table.
LOCK
Verrouille la table (pour préparer l'instanciation de table).
NOWAIT
Comportement par défaut. La préparation à l'instanciation est effectuée immédiatement.
NONE
Aucune préparation à l'instanciation n'est effectuée.
Exemple
L'exemple suivant active l'historique supplémentaire pour le schéma hr.
ADD SCHEMATRANDATA hr
L'exemple suivant journalise toutes les colonnes de clé et non clé prises en charge pour l'ensemble de tables actuelles et futures dans le schéma nommé hr.
ADD SCHEMATRANDATA hr ALLCOLS
L'exemple suivant supprime le traitement des informations de table supplémentaires.
ADD SCHEMATRANDATA hr NOVALIDATE