DDLOPTIONS

Valido per

Estrai e Replicat

Descrizione

Utilizzare il parametro DDLOPTIONS per configurare aspetti dell'elaborazione DDL diversi dal filtro e dalla sostituzione delle stringhe. È possibile utilizzare più istruzioni DDLOPTIONS, ma si consiglia di utilizzarne una. Se si utilizzano più istruzioni DDLOPTIONS, renderle univoche in modo che una non esegua l'override dell'altra. Più istruzioni DDLOPTIONS vengono eseguite nell'ordine indicato nel file dei parametri.

Predefinito

Vedere le descrizioni degli argomenti

Sintassi

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}]

Valido per Replicat. (Solo Oracle)

Può essere utilizzato al posto dell'opzione DEFAULTUSERPASSWORDALIAS se non si utilizza un'area di memorizzazione delle credenziali Oracle GoldenGate. Specifica una password diversa per un'istruzione {CREATE | ALTER} USER <name> IDENTIFIED BY <password> replicata da quella utilizzata nell'istruzione di origine. Replicat sostituirà il segnaposto che Extract scrive nel trail con la password specificata. Quando si utilizza DEFAULTUSERPASSWORD, utilizzare l'opzione NOREPLICATEPASSWORD di DDLOPTIONS per Extract.

DEFAULTUSERPASSWORD <password> senza opzioni specifica una password con testo in chiaro. Se per la password viene fatta distinzione tra maiuscole e minuscole, digitarla nel rispetto di questa regola.

Nota: la replica di CREATE | ALTER PROFILE non riuscirà poiché la funzione di verifica profilo/password deve esistere nello schema SYS. Per replicare correttamente queste DDL, è necessario creare manualmente la funzione di verifica della password su entrambe le origini/destinazioni poiché DDL nello schema SYS è escluso.

Utilizzare le seguenti opzioni se la password è stata cifrata con il comando ENCRYPT PASSWORD:

algorithm

Specifica l'algoritmo di cifratura utilizzato per cifrare la password con il comando ENCRYPT PASSWORD: AES128 o AES192, AES256.

ENCRYPTKEY key_name

Specifica il nome logico di una chiave di cifratura creata dall'utente nel file della ricerca ENCKEYS. Utilizzare se l'opzione KEYNAME <key_name> è stata usata con ENCRYPT PASSWORD e specificare lo stesso nome di chiave.

ENCRYPTKEY DEFAULT

Indirizza Oracle GoldenGate all'uso di una chiave casuale. Da utilizzare se ENCRYPT PASSWORD è stato utilizzato con l'opzione KEYNAME. DEFAULT

CAPTUREGLOBALTEMPTABLE

Valido per Oracle

Consente di visualizzare le DDL delle tabelle temporanee globali (GTT) per Extract in modo che possano essere replicate. Per impostazione predefinita, le DDL GTT non sono visibili per Extract. Pertanto, utilizzando CAPTUREGLOBALTEMPTABLE, è possibile impostare Extract in modo che includa le DDL GTT che possono essere filtrate in base all'istruzione DDL e, se passate, possono esser scritte nel trail.

Le DDL GTT presenti nel trail verranno filtrate ed eseguite da Replicat se superano i criteri di filtro.

Per la versione trigger di Extract, questa opzione è impostata su false indipendentemente dal fatto che la tabella sia GTT o meno.

DEFAULTUSERPASSWORDALIAS *alias* [DOMAIN *domain*]

Valido per Replicat. (Solo Oracle)

Può essere utilizzato al posto dell'opzione DEFAULTUSERPASSWORD se si utilizza un'area di memorizzazione delle credenziali Oracle GoldenGate. Specifica l'alias di una credenziale la cui password sostituisce quella presente nella clausola IDENTIFIED BY di un'istruzione CREATE USER o ALTER USER replicata. L'alias viene risolto nella password cifrata nell'area di memorizzazione delle credenziali di Oracle GoldenGate. Replicat sostituisce il segnaposto che Extract scrive nel trail con la password risolta prima di applicare il valore DDL alla destinazione.

Quando si utilizza DEFAULTUSERPASSWORDALIAS, utilizzare l'opzione NOREPLICATEPASSWORD di DDLOPTIONS per Extract.

alias

Specifica l'alias della credenziale la cui password verrà utilizzata per la password sostitutiva. Questa credenziale deve esistere nell'area di memorizzazione delle credenziali di Oracle GoldenGate. Se non si è certi dell'alias da utilizzare, è possibile ispezionare il contenuto dell'area di memorizzazione delle credenziali mediante il comando INFO CREDENTIALSTORE.

DOMAIN dominio

Specifica il dominio assegnato all'utente specificato nell'area di memorizzazione delle credenziali.

EXCLUDETAG {*tag* | + | NULL}]

Valido per Extract. (Solo Oracle)

Nota: a partire da Oracle GoldenGate 26ai, la sintassi per l'utilizzo delle opzioni EXCLUDETAG e INCLUDETAG è stata migliorata e deve essere utilizzata al posto delle opzioni GETREPLICATES, IGNOREREPLICATES, GETAPPLOPS e IGNOREAPPLOPS che sono state rimosse.

EXCLUDETAG viene utilizzato per escludere le modifiche precedentemente contrassegnate da Replicat utilizzando l'opzione DBOPTIONS SET TAG o all'interno della sessione di Oracle AI Database utilizzando la procedura dbms_xstream.set_tag.

Utilizzare EXCLUDETAG <tag> per indirizzare il processo Extract a ignorare i singoli record contrassegnati con il redo tag specificato.

Utilizzare EXCLUDETAG NULL per escludere tutte le operazioni DDL non contrassegnate. Questa è l'opposto di EXCLUDETAG +.

Utilizzare EXCLUDETAG + per indirizzare il processo Extract a ignorare i singoli record contrassegnati con qualsiasi redo tag.

Nota: quando si specificano entrambi i parametri EXCLUDETAG e INCLUDETAG con il comando DDLOPTIONS, il comando EXCLUDETAG deve essere eseguito per primo.

Per impostazione predefinita, l'opzione DDLOPTIONS EXCLUDETAG + indica a Extract di filtrare le operazioni DDL contrassegnate, in modo che le DDL di Oracle Data Pump contrassegnate con 00 vengano escluse dall'acquisizione. Per acquisire queste DDL, configurare DDLOPTIONS INCLUDETAG 00.

Nota: nelle configurazioni bidirezionali, l'abilitazione dell'inclusione di tag può consentire l'acquisizione di altre DDL contrassegnate, introducendo potenzialmente loop di replica o duplicando l'esecuzione di DDL.

Esempio

Di seguito sono riportati alcuni esempi di utilizzo degli identificatori di tag con EXCLUDETAG.

Per escludere tutte le modifiche contrassegnate:

DDLOPTIONS EXCLUDETAG +

Per escludere modifiche specifiche contrassegnate:

DDLOPTIONS EXCLUDETAG 00
DDLOPTIONS EXCLUDETAG 0952

Per avere più tag di esclusione in una singola istruzione DDLOPTIONS:

DDLOPTIONS EXCLUDETAG 00 EXCLUDETAG 97ab

INCLUDETAG {tag | +}

Valido per Extract. (Solo Oracle)

Utilizzare INCLUDETAG <tag> per includere specifiche operazioni DDL con tag nei file trail. Il valore del tag può contenere fino a 2000 cifre esadecimali (0-9 A-F).

Nota: quando si specificano entrambi i parametri EXCLUDETAG e INCLUDETAG con il comando DDLOPTIONS, il comando EXCLUDETAG deve essere eseguito per primo.

Esempio:

Per includere tutte le modifiche contrassegnate:

DDLOPTIONS INCLUDETAG +

Per includere modifiche con tag specifiche, procedere come segue.

DDLOPTIONS INCLUDETAG 00

Linee guida per l'utilizzo dei parametri EXCLUDETAG e INCLUDETAG

Durante l'uso dei parametri EXCLUDETAG e INCLUDETAG con i comandi TRANLOGOPTIONS e DDLOPTIONS, tenere presente quanto riportato di seguito.

IGNOREMAPPING

Valido per Replicat. Disabilita la valutazione del mapping dei nomi che determina se DDL è un ambito MAPPED o UNMAPPED. Questa opzione migliora le prestazioni in configurazioni di replica DDL simili, in cui i nomi degli schemi di origine e destinazione e i nomi degli oggetti corrispondono e in cui le funzioni di mapping non sono pertanto necessarie. Se IGNOREMAPPING è abilitato, non è possibile determinare l'ambito MAPPED o UNMAPPED, pertanto tutte le istruzioni DDL vengono considerate come ambito OTHER. Non utilizzare questo parametro quando gli schemi di origine e i nomi degli oggetti vengono mappati a nomi di schema e oggetti diversi nella destinazione.

MAPDERIVED | NOMAPDERIVED

Valido per Replicat (Oracle). Determina la modalità di mapping dei nomi oggetto derivati.

MAPDERIVED

Se esiste un'istruzione MAP per l'oggetto derivato, il nome viene mappato al nome specificato nella clausola TARGET. In caso contrario, il nome viene mappato al nome specificato nella clausola TARGET dell'istruzione MAP che contiene l'oggetto base. MAPDERIVED è l'impostazione predefinita.

NOMAPDERIVED

Impedisce il mapping dei nomi. NOMAPDERIVED sostituisce tutte le istruzioni MAP esplicite che contengono il nome dell'oggetto derivato.

Per ulteriori informazioni sulla gestione degli oggetti derivati durante la replica DDL, vedere Modalità di gestione dei nomi oggetto derivati di Oracle GoldenGate.

MAPSCHEMAS

Valido per Replicat (Oracle e Teradata). Utilizzare solo se si utilizza MAPSESSIONSCHEMA.

Questo mapping viene eseguito dopo il mapping specificato nell'istruzione MAP.

Si supponga, ad esempio, che la seguente istruzione DDL venga emessa su un Oracle AI Database di origine:

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

Si supponga che l'istruzione MAP sulla destinazione sia la seguente:

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

Come risultato di questo mapping, Replicat emette la seguente istruzione DDL sulla destinazione:

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

Senza MAPSCHEMAS, l'oggetto derivato verrà mappato allo schema c (come specificato nella clausola TARGET), poiché solo MAPSESSIONSCHEMA mappa solo gli oggetti non qualificati.

MAPSESSIONSCHEMA *source_schema* TARGET *target_schema*

Valido solo per Replicat (Oracle). Consente di eseguire il mapping a un altro schema di sessione (trasformato) nella destinazione di uno schema di sessione diverso.

Caratteri jolly non supportati. È possibile utilizzare più parametri MAPSESSIONSCHEMA per mappare schemi diversi.

MAPSESSIONSCHEMA sostituisce qualsiasi mapping di nomi di schema basato su nomi di oggetto master o derivati

Per l'uso, vedere l'esempio alla fine di questo argomento.

Vedere anche MAPSCHEMAS.

NLSLENGTHSEMANTICS CHAR | BYTE | DEFAULT]

Valido solo per Replicat (Oracle).

Consente a Replicat di sostituire l'impostazione dei parametri di sessione di Oracle AI Database NLS_LENGTH_SEMANTICS che fa parte del record del file trail di replica DDL. Ad esempio, se DDL viene eseguito in una sessione di database con il valore del parametro NLS_LENGTH_SEMANTICS impostato su BYTE, per impostazione predefinita, prima che Replicat applichi DDL, il parametro della sessione di database NLS_LENGTH_SEMANTICS verrà impostato su BYTE. Per eseguire l'override di questa impostazione, è possibile impostare il parametro NLSLENGTHSEMANTICS su CHAR e prima dell'applicazione di DDL, il parametro della sessione NLS_LENGTH_SEMANTICS viene impostato su CHAR.

NOAPPLYGLOBALTEMPTABLE

Impedisce a Replicat di applicare tabelle temporanee globali (GTT). Se questa opzione non viene specificata, Replicat applicherà sempre le DDL alle tabelle temporanee globali (GTT) dal trail.

NOTAG

Valido per Replicat

Impedisce l'applicazione di tag a DDL applicata da Replicat con un redo tag (la tag predefinita '00' o un set con il parametro DBOPTIONS con l'opzione SETTAG).

Il valore di tag predefinito utilizzato da Replicat è 00 e può essere modificato manualmente utilizzando il parametro DBOPTIONS SETTAG. Vedere DBOPTIONS.

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

Valido per estrazione (solo Oracle)

Directs Extract per cifrare tutte le password nell'origine DDL prima di scrivere il file DDL nel trail.

<algorithm>

Specifica l'algoritmo di cifratura da utilizzare per cifrare la password. I valori validi sono AES128, AES192 o AES256.

ENCRYPTKEY *key_name*

Specifica il nome logico di una chiave di cifratura creata dall'utente in una ricerca ENCKEYS.

ENCRYPTKEY DEFAULT

Indirizza Oracle GoldenGate all'uso di una chiave casuale.

REMOVECOMMENTS {BEFORE | AFTER}

(Facoltativo) Valido solo per Extract e Replicat (Oracle). Controlla se i commenti vengono rimossi dall'operazione DDL. Per impostazione predefinita, i commenti non vengono rimossi in modo che possano essere utilizzati per la sostituzione delle stringhe con il parametro DDLSUBST. Per ulteriori informazioni, vedere DDLSUBST.

REMOVECOMMENTS BEFORE

Rimuove i commenti prima che l'operazione DDL venga elaborata da Extract o Replicat. Non saranno disponibili per la sostituzione delle stringhe.

REMOVECOMMENTS AFTER

Rimuove i commenti dopo che sono stati utilizzati per la sostituzione delle stringhe. Questo è il comportamento predefinito se non viene specificato REMOVECOMMENTS.

REPLICATEPASSWORD | NOREPLICATEPASSWORD

Valido per Extract (solo Oracle). Si applica alla password in un comando {CREATE | ALTER} USER <user> IDENTIFIED BY <password>.

Quando si utilizza NOREPLICATEPASSWORD, specificare una password per l'istruzione DDL di destinazione utilizzando un'istruzione DDLOPTIONS con l'opzione DEFAULTUSERPASSWORD o DEFAULTUSERPASSWORDALIAS nel file dei parametri Replicat.

REPORT | NOREPORT

Valido per Extract e Replicat (Oracle e Teradata). Controlla se le informazioni di elaborazione di DDL espanse sono scritte nel file di report. L'impostazione predefinita di NOREPORT riporta le statistiche di base di DDL. REPORT aggiunge i parametri utilizzati e una cronologia dettagliata delle operazioni elaborate.

UPDATEMETADATA

Valido solo per Replicat (Oracle). Utilizzare in una configurazione bidirezionale attiva-attiva. Questo parametro notifica Replicat al sistema in cui DDL ha avuto origine che questo DDL è stato propagato all'altro sistema e che Replicat deve ora aggiornare la cache dei metadati dell'oggetto in modo che corrisponda ai nuovi metadati. In questo modo la cache dei metadati di Replicat viene sincronizzata con i metadati correnti del database locale.

USEPASSWORDVERIFIERLEVEL {10|11}

Valido solo in una configurazione Oracle a Oracle. Verifica se il verificatore password inviato in un'istruzione DDL CREATE USER richiede la modifica. Il motivo di questo controllo è dovuto al fatto che Oracle dispone di verificatori password diversi, a seconda della versione del database:

I verificatori SHA-1, SHA-2 e HTTP vengono acquisiti in user$.spare4 nel formato: 'S:<SHA-1-verifier>;H:<http-verifier>;T:<SHA-2-verifier>'. Integrated Extract restituisce il seguente DDL in 12c per le istruzioni DDL di creazione dell'utente:

Se Replicat viene eseguito su Oracle 12c, questi form di CREATE USER vengono gestiti a livello RDBMS, ma se Replicat viene eseguito su Oracle 10g o 11, questi form non vengono gestiti da RDBMS. Oracle 10g accetta solo il verificatore debole, mentre Oracle 11g accetta solo il verificatore S:SHA-1 e quello debole.

Per consentire a CREATE USER DDL generato per un'estrazione connessa a Oracle 12c di utilizzare un Replicat connesso a Oracle 10g o 11g, è possibile utilizzare questo parametro per filtrare i verificatori indesiderati, come indicato di seguito.

WARNONLARGEDDL

Questa opzione è valida per Extract.

Consente di generare un messaggio di avvertenza per Extract senza interruzioni, quando un valore DDL supera la dimensione BUFFER.

Esempi

Esempio 1

Di seguito viene illustrato il funzionamento di MAPSESSIONSCHEMA per consentire il mapping di uno schema di sessione di origine a un altro schema nella destinazione.

Assumere le seguenti configurazioni di acquisizione e mapping DDL in Extract e Replicat:

Estrai:

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.*

Si supponga che l'utente che ha eseguito il login nell'origine esegua le istruzioni DDL riportate di seguito.

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

Replicat eseguirà DDL come segue (spiegazioni precedenti a ciascun segmento di codice):

-- 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

Senza MAPSESSIONSCHEMA, SELECT * FROM TAB tenterà di effettuare una selezione da una tabella SRC.TAB inesistente e non riuscirà. L'impostazione predefinita prevede l'applicazione dello schema di origine agli oggetti non qualificati in un'istruzione DDL di destinazione. L'istruzione DDL in questo caso sarebbe la seguente e non riuscirebbe:

-- 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.

Esempio 2

Di seguito viene illustrato come utilizzare DEFAULTUSERPASSWORDALIAS per specificare una password diversa per un'istruzione {CREATE | ALTER} USER <name> IDENTIFIED BY <password> replicata rispetto a quella utilizzata nell'istruzione di origine. In questo esempio, l'alias ddlalias si trova nel dominio target nell'area di memorizzazione delle credenziali.

DDLOPTIONS DEFAULTUSERPASSWORDALIAS ddlalias DOMAIN target