DDLOPTIONS

Durée de validité

Extraction et réplication

Description

Utilisez le paramètre DDLOPTIONS pour configurer des aspects du traitement DDL autres que le filtrage et la substitution de chaîne. Vous pouvez utiliser plusieurs instructions DDLOPTIONS, mais il est recommandé d'en utiliser une. Si vous utilisez plusieurs instructions DDLOPTIONS, rendez chacune d'elles unique afin que l'une ne remplace pas l'autre. Plusieurs instructions DDLOPTIONS sont exécutées dans l'ordre indiqué dans le fichier de paramètres.

Valeur par défaut

Voir les descriptions des arguments

Syntaxe

DDLOPTIONS
[, DEFAULTUSERPASSWORD <password>] [<algorithm> [ENCRYPTKEY DEFAULT | ENCRYPTKEY] <key_name>]
[, CAPTUREGLOBALTEMPTABLE ]
[, DEFAULTUSERPASSWORDALIAS <alias> [DOMAIN <domain>] ]
[, EXCLUDETAG {<tag> | + | NULL}]
[, IGNOREMAPPING]
[, INCLUDETAG {<tag> | +}][, MAPDERIVED | NOMAPDERIVED]
[, MAPSCHEMAS]
[, MAPSESSIONSCHEMA <source_schema> TARGET <target_schema>]
[, NLSLENGTHSEMANTICS CHAR | BYTE | DEFAULT][, NOAPPLYGLOBALTEMPTABLE]
[, NOTAG]
[, PASSWORD <algorithm> ENCRYPTKEY {<key_name> | DEFAULT}]
[, REMOVECOMMENTS {BEFORE | AFTER}]
[, REPLICATEPASSWORD | NOREPLICATEPASSWORD]
[, REPORT | NOREPORT]
[, UPDATEMETADATA]
[, USEPASSWORDVERIFIERLEVEL {10|11}]
[, _USEOWNERFORSESSION]
[, WARNONLARGEDDL]

DEFAULTUSERPASSWORD *password* [*algorithm* ENCRYPTKEY {*key_name* | DEFAULT}]

Valide pour la réplication. (Oracle uniquement)

Peut être utilisé à la place de l'option DEFAULTUSERPASSWORDALIAS si aucune banque d'informations d'identification Oracle GoldenGate n'est utilisée. Spécifie un mot de passe différent pour une instruction {CREATE | ALTER} USER <name> IDENTIFIED BY <password> répliquée de celui utilisé dans l'instruction source. Le processus Replicat remplacera l'espace réservé que le processus Extract écrit dans la trace par le mot de passe indiqué. Lorsque vous utilisez DEFAULTUSERPASSWORD, utilisez l'option NOREPLICATEPASSWORD de DDLOPTIONS pour l'extraction.

DEFAULTUSERPASSWORD <password> sans option indique un mot de passe en texte clair. Si le mot de passe fait la distinction entre les minuscules et les majuscules, indiquez-le en respectant cette distinction.

Remarque : la réplication de CREATE | ALTER PROFILE échouera car la fonction de vérification du profil/mot de passe doit exister dans le schéma SYS. Pour répliquer ces instructions LDD, la fonction de vérification du mot de passe doit être créée manuellement sur les deux sources/cibles, car DDL vers le schéma SYS est exclu.

Utilisez les options suivantes si le mot de passe a été chiffré à l'aide de la commande ENCRYPT PASSWORD :

algorithm

Indique l'algorithme de cryptage utilisé pour crypter le mot de passe à l'aide de la commande ENCRYPT PASSWORD : AES128, ou AES192, AES256.

ENCRYPTKEY key_name

Indique le nom logique d'une clé de cryptage créée par l' utilisateur dans le fichier ENCKEYS. Utilisez cette option si ENCRYPT PASSWORD a été utilisé avec l'option KEYNAME <key_name> et indiquez le même nom de clé.

ENCRYPTKEY DEFAULT

Indique à Oracle GoldenGate d'utiliser une clé aléatoire. Utilisez cette case si la commandeENCRYPT PASSWORD a été employée avec l'option KEYNAME DEFAULT.

CAPTUREGLOBALTEMPTABLE

Valide pour Oracle

Permet d'afficher les instructions LDD des tables temporaires globales (GTT) pour qu'elles puissent être répliquées. Par défaut, les DDL GTT ne sont pas visibles pour le processus d'extraction. Par conséquent, à l'aide de CAPTUREGLOBALTEMPTABLE, vous pouvez définir le processus d'extraction de façon à inclure les DDL GTT qui pourront ensuite être filtrées par l'instruction DDL et écrites sur la trace, si celles-ci sont transmises.

Les instructions LDD GTT présentes dans la trace sont filtrées et exécutées par le processus Replicat si elles répondent aux critères de filtrage.

Pour la version trigger de l'extraction, cette option est définie sur false, que la table soit GTT ou non.

DEFAULTUSERPASSWORDALIAS *alias* [DOMAIN *domain*]

Valide pour la réplication. (Oracle uniquement)

Peut être utilisé à la place de l'option DEFAULTUSERPASSWORD si une banque d'informations d'identification Oracle GoldenGate est utilisée. Indique l'alias d'informations d'identification dont le mot de passe remplace celui de la clause IDENTIFIED BY d'une instruction CREATE USER ou ALTER USER répliquée. L'alias est résolu en mot de passe crypté dans la banque d'informations d'identification Oracle GoldenGate. Le processus Replicat remplace l'espace réservé que le processus Extract écrit dans la trace par le mot de passe résolu avant d'appliquer DDL à la cible.

Lorsque vous utilisez DEFAULTUSERPASSWORDALIAS, utilisez l'option NOREPLICATEPASSWORD de DDLOPTIONS pour l'extraction.

alias

Spécifie l'alias des informations d'identification dont le mot de passe sera utilisé pour le mot de passe de remplacement. Ces informations d'identification doivent exister dans la banque d'informations d'identification Oracle GoldenGate. Si vous ne savez pas quel alias utiliser, vous pouvez inspecter le contenu de la banque d'informations d'identification en exécutant la commande INFO CREDENTIALSTORE.

DOMAIN domaine

Spécifie le domaine affecté à l'utilisateur indiqué dans la banque d'informations d'identification.

EXCLUDETAG {*tag* | + | NULL}]

Valide pour le processus d'extraction. (Oracle uniquement)

Remarque : à partir d'Oracle GoldenGate 26ai, la syntaxe d'utilisation des options EXCLUDETAG et INCLUDETAG a été améliorée et doit être utilisée à la place des options GETREPLICATES, IGNOREREPLICATES, GETAPPLOPS et IGNOREAPPLOPS qui ont été enlevées.

EXCLUDETAG permet d'exclure les modifications précédemment balisées par le processus Replicat à l'aide de l'option DBOPTIONS SET TAG ou dans la session Oracle AI Database à l'aide de la procédure dbms_xstream.set_tag.

Utilisez EXCLUDETAG <tag> pour indiquer au processus d'extraction d'ignorer les enregistrements individuels balisés avec la balise de journalisation indiquée.

Utilisez EXCLUDETAG NULL pour exclure toutes les opérations DDL qui ne sont pas balisées. C'est le contraire de EXCLUDETAG +.

Utilisez EXCLUDETAG + pour indiquer au processus d'extraction d'ignorer les enregistrements individuels balisés avec une balise de journalisation.

Remarque : lorsque vous indiquez à la fois les paramètres EXCLUDETAG et INCLUDETAG avec la commande DDLOPTIONS, EXCLUDETAG doit apparaître en premier.

Par défaut, l'option DDLOPTIONS EXCLUDETAG + indique au processus Extract de filtrer les opérations DDL balisées, ce qui entraîne l'exclusion des instructions LDD Oracle Data Pump balisées avec la valeur 00. Pour capturer ces instructions LDD, configurez DDLOPTIONS INCLUDETAG 00.

Remarque : Dans les configurations bidirectionnelles, l'activation de l'inclusion de balises peut permettre la capture d'autres DDL balisés, ce qui peut entraîner l'introduction de boucles de réplication ou la duplication de l'exécution DDL.

Exemple

Voici des exemples d'utilisation des indicateurs de balise avec EXCLUDETAG.

Pour exclure toutes les modifications étiquetées :

DDLOPTIONS EXCLUDETAG +

Pour exclure des modifications marquées spécifiques, procédez comme suit :

DDLOPTIONS EXCLUDETAG 00
DDLOPTIONS EXCLUDETAG 0952

Pour inclure plusieurs balises d'exclusion dans une instruction DDLOPTIONS unique, procédez comme suit :

DDLOPTIONS EXCLUDETAG 00 EXCLUDETAG 97ab

INCLUDETAG {tag | +}

Valide pour le processus d'extraction. (Oracle uniquement)

Utilisez INCLUDETAG <tag> pour inclure des opérations DDL balisées spécifiques dans les fichiers trace. La valeur de balise peut comporter jusqu'à 2000 chiffres hexadécimaux (0-9 A-F).

Remarque : lorsque vous indiquez à la fois les paramètres EXCLUDETAG et INCLUDETAG avec la commande DDLOPTIONS, EXCLUDETAG doit apparaître en premier.

Exemple :

Pour inclure toutes les modifications étiquetées :

DDLOPTIONS INCLUDETAG +

Pour inclure des modifications étiquetées spécifiques, procédez comme suit :

DDLOPTIONS INCLUDETAG 00

Instructions relatives à l'utilisation des paramètres EXCLUDETAG et INCLUDETAG

Lors de l'utilisation des paramètres EXCLUDETAG et INCLUDETAG avec les commandes TRANLOGOPTIONS et DDLOPTIONS, tenez compte des points suivants :

IGNOREMAPPING

Valide pour la réplication. Désactive l'évaluation du mappage de noms qui détermine si DDL est de portée MAPPED ou UNMAPPED. Cette option améliore les performances dans les configurations de réplication DDL similaires, où les noms de schéma source et cible et les noms d'objet correspondent, et où les fonctions de mise en correspondance sont donc inutiles. Lorsque IGNOREMAPPING est activé, la portée MAPPED ou UNMAPPED ne peut pas être déterminée, de sorte que toutes les instructions DDL sont traitées comme une portée OTHER. N'utilisez pas ce paramètre lorsque les schémas source et les noms d'objet sont mis en correspondance avec des noms de schéma et d'objet différents sur la cible.

MAPDERIVED | NOMAPDERIVED

Valide pour la réplication (Oracle). Contrôle la correspondance des noms d'objet dérivés.

MAPDERIVED

Si une instruction MAP existe pour l'objet dérivé, le nom est mis en correspondance avec le nom indiqué dans cette clause TARGET. Sinon, le nom est mis en correspondance avec le nom indiqué dans la clause TARGET de l'instruction MAP qui contient l'objet de base. MAPDERIVED est la valeur par défaut.

NOMAPDERIVED

Empêche le mappage de noms. NOMAPDERIVED remplace toutes les instructions MAP explicites qui contiennent le nom de l'objet dérivé.

Pour plus d'informations sur la gestion des objets dérivés lors de la réplication DDL, reportez-vous à Gestion des noms d'objet dérivés par Oracle GoldenGate.

MAPSCHEMAS

Valide pour la réplication (Oracle et Teradata). A utiliser uniquement lorsque MAPSESSIONSCHEMA est utilisé.

Ce mapping a lieu après le mapping indiqué dans l'instruction MAP.

Par exemple, supposons que l'instruction DDL suivante soit exécutée sur une base de données Oracle AI Database source :

create table a.t as select from b.t;

Supposons que l'instruction MAP sur la cible soit la suivante :

MAP a.*, TARGET c.*;
DDLOPTIONS MAPSESSIONSCHEMA b, TARGET b1, MAPSCHEMAS

Suite à ce mapping, le processus Replicat émet l'instruction DDL suivante sur la cible :

create table c.t as select from b1.t;

Sans MAPSCHEMAS, l'objet dérivé serait mis en correspondance avec le schéma c (comme indiqué dans la clause TARGET), car MAPSESSIONSCHEMA seul met en correspondance uniquement les objets non qualifiés.

MAPSESSIONSCHEMA *source_schema* TARGET *target_schema*

Valide pour le processus Replicat (Oracle uniquement). Active la mise en correspondance d'un schéma d'une session source avec un schéma d'une session différent sur la cible (transformé en).

Les caractères génériques ne sont pas pris en charge. Vous pouvez utiliser plusieurs paramètres MAPSESSIONSCHEMA pour mettre en correspondance différents schémas.

MAPSESSIONSCHEMA remplace tout mapping de noms de schéma basé sur des noms d'objet maître ou dérivé.

Reportez-vous à l'exemple à la fin de cette rubrique pour connaître l'utilisation.

Voir aussi MAPSCHEMAS.

NLSLENGTHSEMANTICS CHAR | BYTE | DEFAULT]

Valide pour le processus Replicat (Oracle uniquement).

Permet au processus de réplication de remplacer le paramètre de session Oracle AI Database NLS_LENGTH_SEMANTICS qui fait partie de l'enregistrement de fichier de trace de réplication DDL. Par exemple, si DDL est exécuté dans une session de base de données avec la valeur de paramètre NLS_LENGTH_SEMANTICS BYTE, par défaut, avant que le processus de réplication n'applique DDL, il définit le paramètre de session de base de données NLS_LENGTH_SEMANTICS sur BYTE. Pour remplacer cette valeur, vous pouvez définir le paramètre NLSLENGTHSEMANTICS sur CHAR et, avant l'application de DDL, le paramètre de session NLS_LENGTH_SEMANTICS est défini sur CHAR.

NOAPPLYGLOBALTEMPTABLE

Empêche le processus Replicat d'appliquer des tables temporaires globales (GTT). Si cette option n'est pas indiquée, le processus Replicat applique toujours des instructions LDD aux tables temporaires globales (GTT) à partir de la trace.

NOTAG

Valide pour la réplication

Empêche le balisage de DDL appliqué par le processus Replicat avec une balise redo (balise '00' par défaut ou ensemble avec le paramètre DBOPTIONS avec l'option SETTAG).

La valeur de balise par défaut utilisée par le processus Replicat est 00. Vous pouvez la modifier manuellement à l'aide du paramètre DBOPTIONS SETTAG. Reportez-vous à DBOPTIONS.

PASSWORD *algorithm* ENCRYPTKEY {*key_name* | DEFAULT}

Valide pour extraction (Oracle uniquement)

Indique au processus Extract de crypter tous les mots de passe dans la source DDL avant d'écrire le fichier DDL dans la trace.

<algorithm>

Spécifie l'algorithme de chiffrement à utiliser pour chiffrer le mot de passe. Les valeurs valides sont AES128, AES192 ou AES256.

ENCRYPTKEY *key_name*

Indique le nom logique d'une clé de cryptage créé par l'utilisateur dans une consultation ENCKEYS.

ENCRYPTKEY DEFAULT

Indique à Oracle GoldenGate d'utiliser une clé aléatoire.

REMOVECOMMENTS {BEFORE | AFTER}

(Facultatif) Valide pour l'extraction et la réplication (Oracle uniquement). Détermine si les commentaires sont enlevés de l'opération DDL. Par défaut, les commentaires ne sont pas supprimés, de sorte qu'ils peuvent être utilisés pour la substitution de chaîne avec le paramètre DDLSUBST. Pour plus d'informations, reportez-vous à DDLSUBST.

REMOVECOMMENTS BEFORE

Enlève les commentaires avant que l'opération DDL ne soit traitée par le processus d'extraction ou de réplication. Ils ne seront pas disponibles pour la substitution de chaîne.

REMOVECOMMENTS AFTER

Supprime les commentaires après leur utilisation pour la substitution de chaîne. Il s'agit du comportement par défaut si REMOVECOMMENTS n'est pas spécifié.

REPLICATEPASSWORD | NOREPLICATEPASSWORD

Valide pour l'extraction (Oracle uniquement). S'applique au mot de passe dans une commande {CREATE | ALTER} USER <user> IDENTIFIED BY <password>.

Lorsque vous utilisez NOREPLICATEPASSWORD, indiquez un mot de passe pour l'instruction DDL cible à l'aide d'une instruction DDLOPTIONS avec l'option DEFAULTUSERPASSWORD ou DEFAULTUSERPASSWORDALIAS dans le fichier de paramètres de réplication.

REPORT | NOREPORT

Valide pour l'extraction et la réplication (Oracle et Teradata). Détermine si les informations du traitement DDL développées sont écrites dans le fichier d'état. La valeur par défaut de NOREPORT indique les statistiques de base de DDL. REPORT ajoute les paramètres en cours d'utilisation et un historique étape par étape des opérations qui ont été traitées.

UPDATEMETADATA

Valide pour le processus Replicat (Oracle uniquement). A utiliser dans une configuration bidirectionnelle active-active. Ce paramètre notifie le processus Replicat sur le système à l'origine de DDL que ce processus DDL a été propagé vers l'autre système et que le processus Replicat doit maintenant mettre à jour son cache de métadonnées d'objet pour qu'il corresponde aux nouvelles métadonnées. Ainsi, le cache de métadonnées du processus Replicat est synchronisé avec les métadonnées en cours de la base de données locale.

USEPASSWORDVERIFIERLEVEL {10|11}

Valide uniquement dans une configuration Oracle à Oracle. Vérifie si le vérificateur de mot de passe envoyé dans une instruction DDL CREATE USER doit être modifié. La raison de cette vérification est qu'Oracle dispose de vérificateurs de mot de passe différents, en fonction de la version de la base de données :

Les vérificateurs SHA-1, SHA-2 et HTTP sont capturés dans user$.spare4 au format suivant : 'S:<SHA-1-verifier>;H:<http-verifier>;T:<SHA-2-verifier>'. L'extraction intégrée renvoie la valeur DDL suivante dans 12c pour les instructions de création d'utilisateur DDL :

Si le processus Replicat est exécuté sur Oracle 12c, ces formulaires de type CREATE USER sont gérés au niveau du SGBDR, mais si le processus Replicat est exécuté sur Oracle 10g ou 11, ces formulaires ne sont pas gérés par le SGBDR. Oracle 10g accepte uniquement le vérificateur faible, tandis qu'Oracle 11g accepte uniquement les vérificateurs S:SHA-1 et faible.

Afin d'autoriser le fichier CREATE USER DDL généré pour une extraction connectée à Oracle 12c à fonctionner avec un processus Replicat connecté à Oracle 10g ou 11g, ce paramètre peut être utilisé pour filtrer les vérificateurs indésirables, comme suit :

WARNONLARGEDDL

Cette option est valide pour l'extraction.

Il vous permet de générer un message d'avertissement pour l'extraction sans abandon, lorsqu'une valeur DDL dépasse la taille de BUFFER.

Exemples

Exemple 1

L'exemple suivant montre comment MAPSESSIONSCHEMA fonctionne pour autoriser la mise en correspondance d'un schéma de session source avec un autre schéma sur la cible.

Supposons les configurations de capture et de mise en correspondance DDL suivantes dans Extract et Replicat :

Extraire :

DDL INCLUDE OBJNAME SRC.* INCLUDE OBJNAME SRC1.*
TABLE SRC.*;
TABLE SRC1.*;
DDL INCLUDE OBJNAME SRC.* INCLUDE OBJNAME SRC1.*
TABLE SRC.*;
TABLE SRC1.*;

Réplication:

DDLOPTIONS MAPSESSIONSCHEMA SRC TARGET DST
DDLOPTIONS MAPSESSIONSCHEMA SRC1 TARGET DST1
MAP SRC.*, TARGET DST.*;
MAP SRC1.*, TARGET DST1.*;
DDL INCLUDE OBJNAME DST.* INCLUDE OBJNAME DST1.*

Supposons que l'utilisateur connecté à la source exécute les instructions DDL suivantes :

ALTER SESSION SET CURRENT_SCHEMA=SRC;
CREATE TABLE tab (X NUMBER);
CREATE TABLE SRC1.tab (X NUMBER) AS SELECT * FROM tab;

Le processus Replicat exécutera DDL comme suit (des explications précèdent chaque segment de code) :

-- Set session to DST, because SRC.* is mapped to DST.* in MAP statement.
ALTER SESION SET CURRENT_SCHEMA=DST;
-- Create the first TAB table in the DST schema, using the DST session schema.
CREATE TABLE DST.tab (X NUMBER);
-- Restore Replicat schema.
ALTER SESSION SET CURRENT_SCHEMA=REPUSER
-- Set session schema to DST, per MAPSESSIONSCHEMA, so that AS SELECT succeeds.
ALTER SESION SET CURRENT_SCHEMA=DST;
-- Create the DST1.TAB table AS SELECT * FROM the first table (DST.TAB).
CREATE TABLE DST1.tab (X NUMBER) AS SELECT * FROM tab;
-- Restore Replicat schema.
ALTER SESSION SET CURRENT_SCHEMA=REPUSER

Sans MAPSESSIONSCHEMA, SELECT * FROM TAB tente de sélectionner une table SRC.TAB inexistante et échoue. Par défaut, le schéma source est appliqué aux objets non qualifiés dans une instruction DDL cible. Dans ce cas, l'instruction DDL se présente comme suit et échoue :

-- Set session to DST, because SRC.* is mapped to DST.* in MAP statement.
ALTER SESION SET CURRENT_SCHEMA=DST;
-- Create the first TAB table in the DST schema, using the DST session schema.
CREATE TABLE DST.tab (X NUMBER);
-- Restore Replicat schema.
ALTER SESSION SET CURRENT_SCHEMA=REPUSER
-- Set session schema to SRC, because TAB in the AS SELECT is unqualified-- and SRC is the source session schema.
ALTER SESION SET CURRENT_SCHEMA=SRC;
-- Create DST1.TAB AS SELECT * from SRC.TAB (SRC=current session schema).
CREATE TABLE DST1.tab (X NUMBER) AS SELECT * FROM tab;
-- SRC.TAB does not exist.
-- Abend with an error unless the error is handled by a DDLERROR statement.

Exemple 2

L'exemple suivant montre comment utiliser DEFAULTUSERPASSWORDALIAS pour indiquer un mot de passe différent pour une instruction {CREATE | ALTER} USER <name> IDENTIFIED BY <password> répliquée de celui utilisé dans l'instruction source. Dans cet exemple, l'alias ddlalias se trouve dans le domaine target de la banque d'informations d'identification.

DDLOPTIONS DEFAULTUSERPASSWORDALIAS ddlalias DOMAIN target