ADD SCHEMATRANDATA
Valido per Oracle.
Utilizzare ADD SCHEMATRANDATA per abilitare il log supplementare a livello di schema per una tabella. ADD SCHEMATRANDATA agisce su tutte le tabelle correnti e future di un determinato schema per registrare in modo automatico un superset di chiavi disponibili di cui Oracle GoldenGate ha bisogno per l'identificazione delle righe.
Nota: Oracle GoldenGate 23.6 non supporta l'abilitazione della replica logica a livello di schema per le viste JSON Relational Duality (JSON DV) e le tabelle di raccolta JSON (JCT).
Per eseguire l'operazione ADD SCHEMATRANDATA su un schema del PDB di un database multi-tenant, è necessario eseguire il login al PDB per eseguire il comando.
ADD SCHEMATRANDATA è valido per Extract e esegue le operazioni riportate di seguito.
-
Abilita il log supplementare Oracle per le nuove tabelle create con
CREATE TABLE. -
Aggiorna il log supplementare per le tabelle interessate dal comando
ALTER TABLEper aggiungere o eliminare le colonne. -
Aggiorna il log supplementare per le tabelle rinominate.
-
Aggiorna il log supplementare per le tabelle per le quali sono state aggiunte o eliminate le chiavi univoche o primarie.
-
Abilita una tabella per l'acquisizione automatica. Il comando aggiunge i dati di log supplementare PK, UI, FK e ALLKEYS a livello di schema.
Per impostazione predefinita ADD SCHEMATRANDATA registra le colonne di chiave di una tabella secondo l'ordine di priorità seguente:
-
Chiave primaria
-
In assenza della chiave primaria, tutte le chiavi univoche della tabella, comprese quelle disabilitate, inutilizzabili o invisibili. Vengono registrate anche le chiavi univoche che contengono colonne di membri ADT. Solo le chiavi univoche nelle colonne virtuali (indici basati su funzione) non vengono registrate.
-
Se i tipi di chiave indicati non esistono, verranno registrate tutte le colonne scalari della tabella. (I valori row-OID generati dal sistema vengono sempre registrati).
ADD SCHEMATRANDATA supporta inoltre i requisiti di registrazione condizionale o non condizionale per l'uso di Integrated Replicat.
Utilizzare ADD SCHEMATRANDATA nei casi riportati di seguito.
-
Per tutte le tabelle che fanno parte di un gruppo Extract da configurare per l'acquisizione integrata.
ADD SCHEMATRANDATAgarantisce la log della chiave corretta registrando tutte le chiavi. -
Per tutte le tabelle di origine che verranno elaborate in un gruppo Integrated Replicat. Sono disponibili opzioni che consentono di registrare le chiavi primarie, univoche ed esterne a supporto del calcolo delle dipendenze tra le tabelle relazionali in fase di elaborazione in vari server di applicazione.
-
Quando la replica DDL è attiva e l'istruzione DML è concorrente con l'istruzione DDL che crea nuove tabelle o modifica le colonne di chiave. Vengono gestiti in modo ottimale gli scenari in cui è possibile applicare l'istruzione DML agli oggetti subito dopo l'esecuzione dell'istruzione DDL su di essi.
ADD SCHEMATRANDATAcausa la registrazione atomica dei valori di chiave appropriati nel redo log con ogni operazione DDL, garantendo in tal modo la continuità di metadati per il DML acquisito dal log, malgrado eventuali ritardi dell'elaborazione Extract.
Requisiti di registrazione a livello di database per UsingADD SCHEMATRANDATA
Oracle consiglia di attivare la modalità di log forzato per il database di origine e di abilitare il log supplementare minimo a livello di database quando si utilizza Oracle GoldenGate. In questo modo si aggiungono le eventuali informazioni di concatenamento delle righe esistenti al redo log per le operazioni di aggiornamento.
Considerazioni aggiuntive per UsingADD SCHEMATRANDATA
-
Prima di utilizzare
ADD SCHEMATRANDATA, eseguire il comandoDBLOGIN. L'utente che esegue il comando deve disporre del privilegio di amministratore di Oracle Streams.EXEC DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE('*GGADMIN*') -
ADD SCHEMATRANDATApuò essere utilizzato al posto del comandoADD TRANDATAquando non è abilitata la replica DDL. Tenere comunque presente che se una tabella non include di chiave primaria, ma dispone Di più chiavi univoche,ADD SCHEMATRANDATAindurrà il database a registrare tutte le chiavi univoche. In questi casiADD SCHEMATRANDATAfa sì che il database registri più dati di redo di quanto non facciaADD TRANDATA. Per evitare questa registrazione supplementare, designare una delle chiavi univoche come chiave primaria, se possibile. -
Per le tabelle con una chiave primaria, con una sola chiave univoca o senza chiave,
ADD SCHEMATRANDATA, rispetto aADD TRANDATA, non aggiunge sovraccarico di log supplementare. -
Se si aggiunge
SCHEMATRANDATAa un schema in un PDB, è necessario essere collegati al PDB con il comandoDBLOGIN. Ad esempio, perPDBEASTe lo schemaHR, utilizzare il comando seguente:ADD SCHEMATRANDATA pdbeast.hr -
Se è necessario registrare altre colonne non di chiave di una o piu tabelle specifiche in maniera che vengano utilizzate da Oracle GoldenGate, quali ad esempio le caselle necessarie per le istruzioni
FILTERe le clausoleKEYCOLSnei parametriTABLEeMAP, eseguire un comandoADD TRANDATAper tali colonne. Il comando dispone di un'opzioneCOLSper l'esecuzione del log supplementare a livello della tabella per le colonne e può essere utilizzato insieme aADD SCHEMATRANDATA.
Sintassi
ADD SCHEMATRANDATA schema
{
[ALLOWNONVALIDATEDKEYS]
[NOSCHEDULINGCOLS | ALLCOLS]}
[NOVALIDATE]
[PARTIALJSON]
[PREPARECSN {WAIT | LOCK | NOWAIT | NONE}]
schema
Schema per il quale si desidera registrare le informazioni di chiave supplementari. Non utilizzare un carattere jolly. Per eseguire il login ADD SCHEMATRANDATA per gli schemi in più pluggable database di un container database multi-tenant, collegarsi separatamente a ogni pluggable database con DBLOGIN, quindi eseguire il comando ADD SCHEMATRANDATA. Per il conatiner radice, è possibile aggiungere schematrandata con il prefisso contenitore ADD SCHEMATRANDATA [pdb_name].schema
Se si esegue il comando da cdb$root, accertarsi di impostare anche il seguente privilegio utente sul lato del database:
ALTER USER userID SET CONTAINER_DATA = ALL CONTAINER = CURRENT;
ALLOWNONVALIDATEDKEYS
Include le chiavi primarie NON VALIDATED e NOT VALID nel log supplementare. Queste chiavi sostituiscono i normali criteri di selezione delle chiavi utilizzati da Oracle GoldenGate. Se viene utilizzato il parametro GLOBALS ALLOWNONVALIDATEDKEYS, ADD SCHEMATRANDATA verrà eseguito con ALLOWNONVALIDATEDKEYS, che sia stato specificato o meno. Per impostazione predefinita non vengono registrate le chiavi primarie NON VALIDATED e NOT VALID. Vedere il parametro GLOBALS ALLOWNONVALIDATEDKEYS.
NOSCHEDULINGCOLS | ALLCOLS
Queste opzioni controllano il log supplementare per un database di destinazione Oracle. È possibile utilizzarle insieme, sebbene venga utilizzata la seconda. Ad esempio, con il comando ADD SCHEMATRANDATA oggadm_ext ALLCOL NOSCHEDULINGCOLS verrebbe utilizzata l'opzione NOSCHEDULINGCOLS.
NOSCHEDULINGCOLS
Disabilita il log delle colonne di pianificazione. Per impostazione predefinita ADD SCHEMATRANDATA consente il log non condizionato della chiave primaria e il log supplementare condizionale di tutte la chiavi univoche e le chiavi esterne di tutte la tabelle correnti e future dello schema specificato. Il log non condizionale comporta l'inserimento forzato dei valori di chiave primaria nel log, indipendentemente dal fatto che la chiave sia stata modificata o meno durante l'operazione corrente. Il log condizionale registra tutti i valori di colonna di una chiave esterna o univoca se almeno uno di essi è stato modificato durante l'operazione corrente. È necessario che tutte le chiavi primarie, le chiavi univoche e le chiavi esterne di Integrated Replicat siano disponibili per il server in entrata per il calcolo delle dipendenze.
Se si abilita auto_capture, non utilizzare questa opzione. Verrà abilitata l'acquis automatico delle tabelle nello schema, a meno che la tabella, ad esempio mediante TABLEEXCLUDE, DELETE TRANDATA o ALTER TABLE DISABLE LOGICAL REPLICATION DDL, non sia esplicitamente esclusa/disabilitata per la replica.
ALLCOLS
Abilita il log supplementare non condizionale di tutte le colonne di chiave e non di chiave supportate per tutte le tabelle correnti e future dello schema specificato. Questa opzione abilita il log delle chiavi necessarie per calcolare le dipendenze, nonché delle colonne necessarie per filtrare, risolvere i conflitti o altri scopi. Le colonne di tipo LOB, LONG e ADT non sono incluse.
NOVALIDATE
Valida per tutti i database supportati da ADD SCHEMATRANDATA.
Elimina le informazioni aggiuntive relative alla tabella elaborata da ADD SCHEMATRANDATA. Per impostazione predefinita, questa opzione è abilitata. L'elaborazione delle informazioni aggiuntive comporta la creazione di un intervallo nella risposta del comando, pertanto questa opzione può essere utilizzata per aumentare il tempo di risposta.
PARTIALJSON
Valido per Oracle.
Recupera gli aggiornamenti JSON parziali a livello di schema. Se abilitato, il redo includerà i record JSON parziali.
Vedere anche il parametro TRANLOGOPTIONS FETCHPARTIALJSON.
PREPARECSN {WAIT | LOCK | NOWAIT | NONE}
Valida per Oracle sia per DML che per DDL.
Prepara automaticamente le tabelle nell'origine in modo che il file di dump di esportazione di Oracle Data Pump includa i valori CSN di creazione delle istanze. Replicat utilizza il valore CSN di creazione delle istanze per tabella impostato da Oracle Data Pump (all'importazione) per filtrare i record di trail. Nella destinazione l'importazione di Data Pump popola le tabelle e le viste del sistema con i SCN di creazione delle istallazioni utilizzando il parametro DBOPTIONS ENABLE_INSTANTIATION_FILTERING per abilitare l'applicazione di filtri di creazione istanze a livello di tabella.
WAIT
Rimane in attesa di eventuali transazioni in esecuzione e prepara la creazione delle istanze di tabella.
LOCK
Applica un lock alla tabella (per preparare la creazione delle istanze di tabella).
NOWAIT
Funzionamento predefinito: la preparazione alla creazione delle istanze di tabella viene eseguita immediatamente.
NONE
Non si verifica alcuna preparazione per la creazione di istanze.
Esempio
Il comando seguente abilita il log supplementare per lo schema hr.
ADD SCHEMATRANDATA hr
Nell'esempio seguente vengono registrate tutte le colonne di chiave e non di chiave supportate per tutte le tabelle correnti e future dello schema denominato hr.
ADD SCHEMATRANDATA hr ALLCOLS
Nell'esempio seguente viene eliminata l'elaborazione delle informazioni aggiuntive della tabella.
ADD SCHEMATRANDATA hr NOVALIDATE