DDLOPTIONS
Válido para
Extraer y Replicat
Descripción
Utilice el parámetro DDLOPTIONS para configurar aspectos del procesamiento DDL que no sean el filtrado y la sustitución de cadenas. Puede utilizar varias sentencias DDLOPTIONS, pero se recomienda utilizar una. Si utiliza varias sentencias DDLOPTIONS, haga que cada una de ellas sea única para que una no sustituya a la otra. Se ejecutan varias sentencias DDLOPTIONS en el orden indicado en el archivo de parámetros.
Valor por defecto
Consulte las descripciones de los argumentos
Sintaxis
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}]
Válido para Replicat. (Solo para Oracle)
Se puede utilizar en lugar de la opción DEFAULTUSERPASSWORDALIAS si no se está utilizando un almacén de credenciales de Oracle GoldenGate. Especifica una contraseña diferente para una sentencia {CREATE | ALTER} USER <name> IDENTIFIED BY <password> replicada de la utilizada en la sentencia de origen. Replicat sustituirá el marcador de posición que Extract escribe en la pista por la contraseña especificada. Al utilizar DEFAULTUSERPASSWORD, utilice la opción NOREPLICATEPASSWORD de DDLOPTIONS para Extract.
DEFAULTUSERPASSWORD <password> sin opciones especifica una contraseña de texto no cifrado. Si la contraseña es sensible a mayúsculas/minúsculas, escríbala de esa forma.
Nota: La replicación de CREATE | ALTER PROFILE fallará, ya que la función de verificación de perfil/contraseña debe existir en el esquema SYS. Para replicar correctamente estas DDL, la función de verificación de contraseñas se debe crear manualmente en ambos orígenes/destinos, ya que se excluye DDL en el esquema SYS.
Utilice las siguientes opciones si la contraseña se cifró con el comando ENCRYPT PASSWORD:
algorithm
Especifica el algoritmo de cifrado que se ha utilizado para cifrar la contraseña con el comando ENCRYPT PASSWORD: AES128 o AES192, AES256.
ENCRYPTKEY key_name
Especifica el nombre lógico de una clave de cifrado creada por la persona en el archivo de consulta ENCKEYS. Utilice si se ha utilizado ENCRYPT PASSWORD con la opción KEYNAME <key_name> y especifique el mismo nombre de clave.
ENCRYPTKEY DEFAULT
Indica a Oracle GoldenGate que utilice una clave aleatoria. Utilícelo si se ha utilizado ENCRYPT PASSWORD con la opción KEYNAME DEFAULT.
CAPTUREGLOBALTEMPTABLE
Válido para Oracle
Permite que las DDL de tablas temporales globales (GTT) sean visibles para Extract para que se puedan replicar. Por defecto, las DDL de GTT no están visibles para Extract, por lo que mediante CAPTUREGLOBALTEMPTABLE puede definir Extract para que incluya las DDL de GTT que, si se transfieren, se escriben en la pista y se pueden filtrar por la sentencia DDL.
Las DDL de GTT presentes en la pista serán filtradas y ejecutadas por el Replicat si pasan los criterios de filtrado.
Para la versión de disparador de Extract, esta opción se define en false independientemente de si la tabla es GTT o no.
DEFAULTUSERPASSWORDALIAS *alias* [DOMAIN *domain*]
Válido para Replicat. (Solo para Oracle)
Se puede utilizar en lugar de la opción DEFAULTUSERPASSWORD si se está utilizando un almacén de credenciales de Oracle GoldenGate. Especifica el alias de una credencial cuya contraseña sustituye a la de la cláusula IDENTIFIED BY de una sentencia CREATE USER o ALTER USER replicada. El alias se resuelve en la contraseña cifrada en el almacén de credenciales de Oracle GoldenGate. Replicat sustituye el marcador de posición que Extract escribe en la pista por la contraseña resuelta antes de aplicar DDL al destino.
Al utilizar DEFAULTUSERPASSWORDALIAS, utilice la opción NOREPLICATEPASSWORD de DDLOPTIONS para Extract.
alias
Especifica el alias de la credencial cuya contraseña se utilizará para la contraseña de sustitución. Esta credencial debe existir en el almacén de credenciales de Oracle GoldenGate. Si no está seguro de qué alias utilizar, puede inspeccionar el contenido del almacén de credenciales emitiendo el comando INFO CREDENTIALSTORE.
DOMAIN dominio
Especifica el dominio que está asignado al usuario especificado en el almacén de credenciales.
EXCLUDETAG {*tag* | + | NULL}]
Válido para Extract. (Solo para Oracle)
Nota: A partir de Oracle GoldenGate 26ai, se ha mejorado la sintaxis para utilizar las opciones EXCLUDETAG y INCLUDETAG y se debe utilizar en lugar de las opciones GETREPLICATES, IGNOREREPLICATES, GETAPPLOPS y IGNOREAPPLOPS que se han eliminado.
EXCLUDETAG se utiliza para excluir los cambios etiquetados anteriormente por Replicat mediante la opción DBOPTIONS SET TAG o en la sesión de Oracle AI Database mediante el procedimiento dbms_xstream.set_tag.
Utilice EXCLUDETAG <tag> para indicar al proceso Extract que ignore los registros individuales que están etiquetados con la etiqueta de redo especificada.
Utilice EXCLUDETAG NULL para excluir todas las operaciones DDL que no están etiquetadas. Esto es lo contrario de EXCLUDETAG +.
Utilice EXCLUDETAG + para indicar al proceso Extract que ignore los registros individuales que están etiquetados con cualquier etiqueta de redo.
Nota: Al especificar los parámetros EXCLUDETAG y INCLUDETAG con el comando DDLOPTIONS, EXCLUDETAG debe ser lo primero.
Por defecto, la opción DDLOPTIONS EXCLUDETAG + indica a Extract que filtre las operaciones DDL etiquetadas, lo que provoca que las DDL de Oracle Data Pump etiquetadas con 00 se excluyan de la captura. Para capturar estas DDL, configure DDLOPTIONS INCLUDETAG 00.
Nota: En las configuraciones bidireccionales, la activación de la inclusión de etiquetas puede permitir la captura de otras DDL etiquetadas, lo que podría introducir bucles de replicación o una ejecución duplicada de DDL.
Ejemplo
A continuación se muestran ejemplos de cómo utilizar los especificadores de etiquetas con EXCLUDETAG.
Para excluir todos los cambios etiquetados:
DDLOPTIONS EXCLUDETAG +
Para excluir cambios etiquetados específicos:
DDLOPTIONS EXCLUDETAG 00
DDLOPTIONS EXCLUDETAG 0952
Para tener varias etiquetas de exclusión en una sola sentencia DDLOPTIONS:
DDLOPTIONS EXCLUDETAG 00 EXCLUDETAG 97ab
INCLUDETAG {tag | +}
Válido para Extract. (Solo para Oracle)
Utilice INCLUDETAG <tag> para incluir operaciones DDL etiquetadas específicas en los archivos de pista. El valor de la etiqueta puede tener hasta 2000 dígitos hexadecimales (0-9 A-F).
Nota: Al especificar los parámetros EXCLUDETAG y INCLUDETAG con el comando DDLOPTIONS, EXCLUDETAG debe ser lo primero.
Ejemplo:
Para incluir todos los cambios etiquetados:
DDLOPTIONS INCLUDETAG +
Para incluir cambios etiquetados específicos:
DDLOPTIONS INCLUDETAG 00
Instrucciones al utilizar los parámetros EXCLUDETAG e INCLUDETAG
Al utilizar los parámetros EXCLUDETAG y INCLUDETAG con los comandos TRANLOGOPTIONS y DDLOPTIONS, tenga en cuenta lo siguiente:
-
Si se especifican
TRANLOGOPTIONS EXCLUDETAG/INCLUDETAGy no se especificaDDLOPTIONS EXCLUDETAG/INCLUDETAG, los parámetrosTRANLOGOPIIONS EXCLUDETAG/INCLUDETAGse aplican a las operacionesDMLyDDL. -
Si se especifican las opciones
TRANLOGOPTIONS EXCLUDETAG/INCLUDETAGy también se especificaDDLOPTIONS EXCLUDETAG/INCLUDETAG,TRANLOGOPIIONS EXCLUDETAG/INCLUDETAGse aplica a las operacionesDMLyDDLOPTIONS EXCLUDETAG/INCLUDETAGse aplica a las operacionesDDL. -
Si no se especifica
TRANLOGOPTIONS EXCLUDETAG/INCLUDETAGy se especificaDDLOPTIONS EXCLUDETAG/INCLUDETAG,DDLOPTIONS EXCLUDETAG/INCLUDETAGse aplica a las operacionesDDLy no hay ningún filtrado de etiquetas para las operacionesDML. -
Si no se especifica
TRANLOGOPTIONS EXCLUDETAG/INCLUDETAGy tampoco se especificaDDLOPTIONS EXCLUDETAG/INCLUDETAG, se aplica la opción por defectoDDLOPTIONS EXCLUDETAG +, que excluye todas las operacionesDDLetiquetadas. -
Para
DDLOPTIONSal especificarEXCLUDETAGyINCLUDETAG,EXCLUDETAGdebe aparecer primero.
IGNOREMAPPING
Válido para Replicat. Desactiva la evaluación de la asignación de nombres que determina si DDL es del ámbito MAPPED o UNMAPPED. Esta opción mejora el rendimiento en configuraciones de replicación similares a DDL, donde coinciden los nombres de esquema de origen y destino y los nombres de objeto, y donde, por lo tanto, no son necesarias las funciones de asignación. Con IGNOREMAPPING activado, no se puede determinar el ámbito MAPPED o UNMAPPED, por lo que todas las sentencias DDL se tratan como ámbito OTHER. No utilice este parámetro cuando los esquemas de origen y los nombres de objeto se asignen a diferentes nombres de esquema y objeto en el destino.
MAPDERIVED | NOMAPDERIVED
Válido para Replicat (Oracle). Controla cómo se asignan los nombres de objetos derivados.
MAPDERIVED
Si existe una sentencia MAP para el objeto derivado, el nombre se asigna al nombre especificado en esa cláusula TARGET. De lo contrario, el nombre se asigna al nombre especificado en la cláusula TARGET de la sentencia MAP que contiene el objeto base. MAPDERIVED es el valor por defecto.
NOMAPDERIVED
Impide la asignación de nombres. NOMAPDERIVED sustituye cualquier sentencia MAP explícita que contenga el nombre del objeto derivado.
Para obtener más información sobre cómo se manejan los objetos derivados durante la replicación DDL, consulte How Oracle GoldenGate Handles Derived Object Names.
MAPSCHEMAS
Válido para Replicat (Oracle y Teradata). Se utiliza solo cuando se utiliza MAPSESSIONSCHEMA.
-
MAPSESSIONSCHEMAestablece una asignación de origen a destino para los esquemas de sesión y se utiliza para objetos cuyos esquemas no están cualificados enDDL. -
MAPSCHEMASasigna objetos que tienen esquemas cualificados en el origenDDL, pero que no califican para la asignación conMAP, a la misma asignación de esquema de sesión que enMAPSESSIONSCHEMA. Algunos ejemplos de estos objetos son la sentenciaCREATE TABLE AS SELECTde Oracle, que contiene un objeto derivado en la cláusulaAS SELECTo la sentencia TeradataCREATE REPLICATION RULESET.
Esta asignación se realiza después de la asignación que se especifica en la sentencia MAP.
Por ejemplo, supongamos que se emite la siguiente sentencia DDL en una instancia de Oracle AI Database de origen:
create table a.t as select from b.t;
Supongamos que la sentencia MAP en el destino es la siguiente:
MAP a.*, TARGET c.*;
DDLOPTIONS MAPSESSIONSCHEMA b, TARGET b1, MAPSCHEMAS
Como resultado de esta asignación, Replicat emite la siguiente sentencia DDL en el destino:
create table c.t as select from b1.t;
-
La tabla base se asigna según la cláusula
TARGET(al esquemac). -
El objeto derivado cualificado (tabla
tenSELECT FROM) se asigna segúnMAPSESSIONSCHEMA(en el esquemab1) porqueMAPSCHEMASestá presente.
Sin MAPSCHEMAS, el objeto derivado se asignaría al esquema c (como se especifica en la cláusula TARGET), porque solo MAPSESSIONSCHEMA asigna objetos no calificados.
MAPSESSIONSCHEMA *source_schema* TARGET *target_schema*
Válido para Replicat (solo para Oracle). Activa un esquema de sesión del origen que se va a asignar a (transformar a) otro esquema de sesión distinto en el destino.
-
<source_schema>es el esquema de sesión que se define conALTER SESSION set CURRENT_SCHEMAen el origen. -
<target_schema>es el esquema de sesión que se define conALTER SESSION set CURRENT_SCHEMAen el destino.
Los comodines no están soportados. Puede utilizar varios parámetros MAPSESSIONSCHEMA para asignar diferentes esquemas.
MAPSESSIONSCHEMA sustituye cualquier asignación de nombres de esquema basada en nombres de objetos maestros o derivados
Consulte el ejemplo al final de este tema para obtener información sobre el uso.
Véase también MAPSCHEMAS.
NLSLENGTHSEMANTICS CHAR | BYTE | DEFAULT]
Válido para Replicat (solo para Oracle).
Permite a Replicat sustituir el valor de parámetro de sesión de Oracle AI Database NLS_LENGTH_SEMANTICS que forma parte del registro de archivo de pista de replicación DDL. Por ejemplo, si DDL se ejecuta en una sesión de base de datos con el valor de parámetro NLS_LENGTH_SEMANTICS como BYTE, por defecto, antes de que Replicat aplique DDL, definirá el parámetro de sesión de base de datos NLS_LENGTH_SEMANTICS en BYTE. Para sustituir esto, puede definir el parámetro NLSLENGTHSEMANTICS en CHAR y, antes de aplicar DDL, el parámetro de sesión NLS_LENGTH_SEMANTICS se define en CHAR.
NOAPPLYGLOBALTEMPTABLE
Impide que Replicat aplique tablas temporales globales (GTT). Si no se especifica esta opción, Replicat siempre aplicará las DDL a las tablas temporales globales (GTT) desde la pista.
NOTAG
Válido para replicación
Evita el etiquetado de DDL que aplica Replicat con una etiqueta redo (ya sea la etiqueta por defecto '00' o un juego con el parámetro DBOPTIONS con la opción SETTAG).
El valor de etiqueta por defecto que utiliza Replicat es 00 y se puede cambiar manualmente mediante el parámetro DBOPTIONS SETTAG. Consulte DBOPTIONS.
PASSWORD *algorithm* ENCRYPTKEY {*key_name* | DEFAULT}
Válido para extracción (solo para Oracle)
Indica a Extract que cifre todas las contraseñas en el origen DDL antes de escribir DDL en la pista.
<algorithm>
Especifica el algoritmo de cifrado que se va a utilizar para cifrar la contraseña. Los valores válidos son: AES128, AES192 o AES256.
ENCRYPTKEY *key_name*
Especifica el nombre lógico de una clave de cifrado creada por un usuario en los archivos de consulta ENCKEYS.
ENCRYPTKEY DEFAULT
Indica a Oracle GoldenGate que utilice una clave aleatoria.
REMOVECOMMENTS {BEFORE | AFTER}
(Opcional) Válido para Extract y Replicat (solo para Oracle). Controla Si los comentarios se eliminan de la operación DDL. Por defecto, los comentarios no se eliminan, por lo que se pueden utilizar para la sustitución de cadenas con el parámetro DDLSUBST. Consulte DDLSUBST para obtener más información.
REMOVECOMMENTS BEFORE
Elimina comentarios antes de que la operación DDL sea procesada por Extract o Replicat. No estarán disponibles para la sustitución de cadenas.
REMOVECOMMENTS AFTER
Elimina comentarios después de que se utilicen para la sustitución de cadenas. Este es el comportamiento por defecto si no se especifica REMOVECOMMENTS.
REPLICATEPASSWORD | NOREPLICATEPASSWORD
Válido para Extract (solo para Oracle). Se aplica a la contraseña en un comando {CREATE | ALTER} USER <user> IDENTIFIED BY <password>.
-
Por defecto (
REPLICATEPASSWORD), Oracle GoldenGate utiliza la contraseña de origen en la sentenciaCREATEoALTERde destino. -
Para evitar que la contraseña de origen se envíe al destino, utilice
NOREPLICATEPASSWORD.
Al utilizar NOREPLICATEPASSWORD, especifique una contraseña para la sentencia DDL de destino mediante una sentencia DDLOPTIONS con la opción DEFAULTUSERPASSWORD o DEFAULTUSERPASSWORDALIAS en el archivo de parámetros Replicat.
REPORT | NOREPORT
Válido para Extract y Replicat (Oracle y Teradata). Controla si se amplía o no la información de procesamiento de DDL se escribe en el archivo de informe. El valor por defecto de NOREPORT informa estadísticas básicas de DDL. REPORT agrega los parámetros que se están utilizando y un historial paso a paso de las operaciones que se han procesado.
UPDATEMETADATA
Válido para Replicat (solo para Oracle). Se utiliza en una configuración bidireccional activa-activa. Este parámetro notifica a Replicat en el sistema donde se originó DDL que este DDL se propagó al otro sistema y que Replicat ahora debe actualizar su caché de metadatos de objeto para que coincida con los nuevos metadatos. Esto mantiene la caché de metadatos de Replicat sincronizada con los metadatos actuales de la base de datos local.
USEPASSWORDVERIFIERLEVEL {10|11}
Solo es válido en una configuración de Oracle a Oracle. Comprueba si el verificador de contraseña que se envía en una sentencia DDL CREATE USER necesita modificación. El motivo de esta comprobación se debe a que Oracle tiene diferentes verificadores de contraseña, según la versión de la base de datos:
-
10g: verificador débil mantenido en
user$.password. -
11g: verificador SHA-1.
-
12c: verificadores de resumen SHA-2 y HTTP.
Los verificadores SHA-1, SHA-2 y HTTP se capturan en user$.spare4 con el formato: 'S:<SHA-1-verifier>;H:<http-verifier>;T:<SHA-2-verifier>'. Integrated Extract devuelve el siguiente DDL en 12c para crear sentencias DDL de usuario:
-
En 12.0.1.0 devuelve:
CREATE USER <username>IDENTIFIED BY VALUES'S:SHA-1;H:http;weak'. -
En 12.0.2.0 y posteriores, devuelve:
CREATE USER <username>IDENTIFIED BY VALUES'S:SHA-1;H:http;T:SHA-2;weak'.
Si Replicat se ejecuta en Oracle 12c, estas formas de CREATE USER se gestionan en el nivel de RDBMS, pero si Replicat se ejecuta en Oracle 10g u 11, RDBMS no gestiona estas formas. Oracle 10g solo acepta el verificador débil, mientras que Oracle 11g solo acepta los verificadores S:SHA-1 y débiles.
Para permitir que CREATE USER DDL generado para un Extract conectado a Oracle 12c funcione con un Replicat conectado a Oracle 10g o 11g, este parámetro se puede utilizar para filtrar los verificadores no deseados, de la siguiente forma:
-
Si
USEPASSWORDVERIFIERLEVELse define en 10, todo excepto el verificador débil se filtra fuera de la cadena de verificaciónCREATE USERDDL. -
Si
USEPASSWORDVERIFIERLEVELse define en 11, todo excepto los verificadores S:SHA-1 y débiles se filtra fuera de la cadena de verificaciónCREATE USERDDL.
WARNONLARGEDDL
Esta opción es válida para Extract.
Permite generar un mensaje de advertencia para Extract sin finalizar de forma anormal, cuando un valor DDL supera el tamaño de BUFFER.
Ejemplos
Ejemplo 1
A continuación se muestra cómo funciona MAPSESSIONSCHEMA para permitir la asignación de un esquema de sesión de origen a otro esquema en el destino.
Suponga las siguientes configuraciones de captura y asignación de DDL en Extract y Replicat:
Extracción:
DDL INCLUDE OBJNAME SRC.* INCLUDE OBJNAME SRC1.*
TABLE SRC.*;
TABLE SRC1.*;
DDL INCLUDE OBJNAME SRC.* INCLUDE OBJNAME SRC1.*
TABLE SRC.*;
TABLE SRC1.*;
Replicat:
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.*
Supongamos que el usuario conectado en el origen emite las siguientes sentencias DDL:
ALTER SESSION SET CURRENT_SCHEMA=SRC;
CREATE TABLE tab (X NUMBER);
CREATE TABLE SRC1.tab (X NUMBER) AS SELECT * FROM tab;
Replicat realizará el DDL de la siguiente manera (las explicaciones preceden a cada segmento de código):
-- 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
Sin MAPSESSIONSCHEMA, SELECT * FROM TAB intentaría seleccionar una tabla SRC.TAB no existente y fallaría. El valor por defecto es aplicar el esquema de origen a objetos no calificados en una sentencia DDL de destino. La sentencia DDL en ese caso sería la siguiente y fallaría:
-- 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.
Ejemplo 2
A continuación se muestra cómo utilizar DEFAULTUSERPASSWORDALIAS para especificar una contraseña diferente para una sentencia {CREATE | ALTER} USER <name> IDENTIFIED BY <password> replicada de la que se utiliza en la sentencia de origen. En este ejemplo, el alias ddlalias está en el dominio target del almacén de credenciales.
DDLOPTIONS DEFAULTUSERPASSWORDALIAS ddlalias DOMAIN target