Dettagli del supporto per oggetti e operazioni in Oracle DDL
Scopri gli oggetti e le operazioni Oracle supportati da Oracle GoldenGate per l'acquisizione e la replica delle operazioni DDL.
Oggetti e operazioni supportati in Oracle DDL
Il supporto dell'acquisizione DDL è integrato nel server di logmining del database. Impostare la compatibilità dei parametri del database su 11.2.0.4.0 o versione successiva. Extract supporta DDL che include la cifratura delle colonne basata su password, ad esempio:
-
CREATE TABLE t1 (a number, b varchar2(32) ENCRYPT IDENTIFIED BY my_password); -
ALTER TABLE t1 ADD COLUMN c varchar2(64) ENCRYPT IDENTIFIED BY my_password;
Le seguenti istruzioni aggiuntive si applicano a Extract in relazione al supporto DDL.
-
Tutte le configurazioni della topologia Oracle GoldenGate sono supportate per la replica DDL Oracle.
-
La replica attiva-attiva (bi-direzionale) di Oracle DDL è supportata tra due (e solo due) database che contengono metadati identici.
-
Oracle GoldenGate supporta DDL negli oggetti riportati di seguito.
-
cluster
-
directory
-
funzioni
-
indici
-
confezioni
-
procedura
-
tabelle
-
tablespace
-
ruoli
-
sequenze
-
sinonimi
-
trigger
-
tipi
-
viste
-
viste materializzate
-
utenti
-
colonne invisibili
-
-
La replica del database EDR (Oracle Edition-Based Redefinition) di Oracle DDL è supportata per Extract per i seguenti oggetti di Oracle AI Database:
-
funzioni
-
libreria
-
pacchi (specifica e corpo)
-
procedura
-
sinonimi
-
tipi (specifica e corpo)
-
viste
-
-
Da Oracle GoldenGate 21c in poi, verrà fornito il supporto di replica per le DDL di dimensioni superiori a 4 MB.
-
Da Oracle GoldenGate 23ai in poi, sono supportati i domini SQL.
-
Oracle GoldenGate è in grado di gestire tabelle con 4000 colonne se la dimensione della riga è inferiore a 4 MB.
-
Oracle GoldenGate supporta le operazioni DDL GTT (Global Temporary Tables) da visualizzare per Extract in modo che possano essere replicate. È necessario impostare il parametro
DDLOPTIONSper abilitare questa operazione perché non è impostato per impostazione predefinita. -
Oracle GoldenGate supporta il dizionario da utilizzare con
NOUSERIDeTRANLOGOPTIONS GETCTASDML. Ciò significa che Extract riceve i metadati dell'oggetto dal dizionario LogMiner senza eseguire query sugli oggetti del dizionario. Oracle GoldenGate utilizza automaticamente il dizionario quando il parametro di compatibilità del database di origine è maggiore o uguale a 11.2.0.4.Quando si utilizza il dizionario e il formato trail nella release 12.2.x di Oracle GoldenGate, Extract richiede l'applicazione della patch Logminer nel database di mining se la release di Oracle Database è precedente a 12.1.0.2.
-
Oracle GoldenGate supporta la replica di colonne invisibili in Extract. Il formato trail release 12.2 è obbligatorio. Replicat deve specificare il parametro
MAPINVISIBLECOLUMNSo eseguire il mapping esplicito a colonne invisibili nella clausolaCOLMAPdel parametroMAP.Se si utilizza
SOURCEDEFSoTARGETDEFS, il formato dei metadati di un file di definizione per le tabelle Oracle deve essere compatibile con il formato trail. Il formato dei metadati 12.2 è compatibile con il formato trail 12.2 e il formato dei metadati precedente alla 12.2 è compatibile con il formato trail precedente alla 12.2. Per specificare il formato dei metadati di un file di definizione, utilizzare l'opzioneFORMAT RELEASEdel parametroDEFSFILEquando il file di definizione viene generato inDEFGEN. -
Le istruzioni DDL per creare un contesto di spazio di nomi (
CREATE CONTEXT) vengono acquisite da Extract e applicate da Replicat. -
Extract in modalità pompa supporta le seguenti opzioni DDL:
-
DDL INCLUDE ALL -
DDL EXCLUDE ALL -
DDL EXCLUDE OBJNAME
Sono supportate anche le opzioni
SOURCECATALOGeALLCATALOGdiDDL EXCLUDE.Se non viene specificato alcun parametro DDL, tutte le DDL vengono scritte nel trail. Se si specifica
DDL EXCLUDE OBJNAMEe il proprietario dell'oggetto non corrisponde a una regola di esclusione, viene scritto nel trail. -
-
A partire dal database Oracle 21c, il DDL riportato di seguito è disponibile per supportare il blocco delle modifiche DML/DDL non replicate da Oracle GoldenGate.
ALTER DATABASE [ENABLE | DISABLE] goldengate blocking mode;Quando la modalità di blocco di Oracle GoldenGate è abilitata, i DML che utilizzano
support_mode NONEnelle tabelle ed eseguono istruzioni Oracle PL/SQL non supportate non riusciranno con il seguente errore:ORA-26981: "operation was unsupported during Oracle GoldenGate blocking mode"Per il database Oracle 21c, le funzioni riportate di seguito consentono a una tabella di disporre di
support_mode NONEin Oracle GoldenGate.-
BFILEcome attributo della colonna ADT o della tabella tipizzata -
Tabella senza scalari
-
Tabella AW$ OLAP
-
Tabella delle code con partizionamento orizzontale
-
Tabella cluster hash ordinata
-
Vincolo chiave primaria per l'attributo ADT nella tabella relazionale
-
Vincolo chiave primaria/chiave univoca su
raw/varcharlungo (oltre 4000 byte) -
La colonna
V$DATABASE,Goldengate_Blocking_Mode, può essere interrogata per determinare lo stato della modalità di blocco corrente.
-
-
Per la modalità di acquisizione automatica DDL:
-
È rilevante solo per
DDL INCLUDE MAPPEDperché Extract acquisisce le DDL in base ai parametriTABLEeTABLEEXCLUDE. -
Solo le DDL correlate alla tabella possono essere acquisite automaticamente.
-
DDL per abilitare l'acquisizione automatica a livello di tabella:
CREATE/ALTER TABLE ... ENABLE LOGICAL REPLICATION ALLKEYS;
oppure
<pre class="copy"><code>CREATE/ALTER TABLE ... ENABLE LOGICAL REPLICATION ALLOW NOVALIDATE KEYS;</code></pre>Vedere How to Capture Supplemental Logging for Oracle GoldenGate nella guida Oracle AI Database Utilities.
-
-
Le seguenti operazioni sono supportate per le DDL correlate alla partizione e le operazioni di manutenzione della partizione
- Elimina partizione:
Se una partizione viene ricreata con lo stesso nome, otterrà un nuovo numero oggetto. Le cache interne vengono cancellate per ridurre al minimo il consumo di spazio quando viene elaborato un DDL della partizione di rilascio.
- Partizione troncata:
Il nome della partizione e il numero dell'oggetto rimangono invariati. La versione dell'oggetto della tabella base rimane invariata.
- Rinomina partizione
Il numero dell'oggetto partizione rimane invariato, ma ottiene un nuovo nome. La versione dell'oggetto della tabella di base viene saltata. Nella cache dei nomi di memoria verrà invalidata la visualizzazione di questa DDL e ripopolata al successivo DML. La cache, che memorizza se un determinato numero di oggetto di partizione è interessante o meno, dovrà anche essere rivalutata in quanto il nuovo nome di partizione potrebbe passare da filtrato a non filtrato o viceversa.
- Partizione di cambio:
Scambia i dati in una partizione con quelli in una tabella o viceversa. Il valore obj# della partizione scambiata non cambia. Dataobj# cambia ma non viene utilizzato da Extract. La partizione stessa appartiene ancora alla stessa tabella.
- Partizione di unione:
Unisce una o più partizioni in una nuova partizione. La DDL crea la nuova partizione ed elimina le partizioni da cui è stata unita. Le cache in memoria devono essere cancellate per risparmiare spazio e l'utente deve garantire regole di filtro appropriate per la partizione appena creata.
- Partizione frazionata:
La partizione in fase di divisione mantiene il nome originale e il numero oggetto e viene creata una nuova partizione per i dati suddivisi. L'utente deve assicurarsi che le regole di filtro della partizione siano corrette per la partizione appena creata.
- Partizione di Coalesce:
Riduce il numero di partizioni in una tabella con hash partizionamento. La partizione specifica di cui viene eseguito il coalesse è selezionata dal database e viene eliminata dopo la ridistribuzione del relativo contenuto. Le partizioni rimanenti mantengono lo stesso nome e numero oggetto. Le cache interne devono essere cancellate per ridurre al minimo il consumo di spazio.
- Modificare partizione:
Modifica gli attributi predefiniti e reali delle partizioni, oltre all'aggiunta o all'eliminazione di valori per le partizioni elenco. Tutte le modifiche lasciano intatti il nome delle partizioni e il numero oggetto.
- Sposta partizione
I dati della partizione vengono spostati in una nuova tablespace. Il nome e il numero della partizione rimangono invariati.
- Ridefinisci tabella:
dbms_redefinitionpuò essere utilizzato per partizionare una tabella mediante l'uso di una tabella provvisoria. Le partizioni vengono create nella tabella provvisoria e, dopo l'operazionefinish_redef, i nomi delle tabelle vengono scambiati. Le partizioni create nella tabella provvisoria conservano i nomi e i numeri oggetto quando le tabelle vengono scambiate. La cache dei filtri Extract deve essere rivalutata sufinish_redefpoiché le partizioni ora appartengono alla tabella di base. L'utente deve garantire regole di filtro appropriate.- Ridefinisci partizione:
Quando si ridefinisce una tabella, le partizioni seguono la tabella originale e la tabella provvisoria. Ad esempio, si consideri il caso in cui la tabella originale contiene partizioni che risiedono nella tablespace
USERe la tabella provvisoria viene creata senza partizioni e la tabella risiede nella tablespaceNEW. In questo caso, dopo l'operazionefinish_redef, quando le tabelle vengono scambiate, la partizione rimane ancora nella tablespaceUSER. La partizione Redef consente di spostare una partizione nella tablespaceNEWdella tabella provvisoria. La partizione conserva il nome e il numero oggetto.- Nomi di partizione generati dal sistema:
Quando le partizioni vengono create automaticamente per le partizioni hash e le operazioni come la partizione split, il nome della partizione ha il formato
SYS_P sequence value. Analogamente, le sottopartizioni hanno il formatoSYS_SUBP sequence value. Si consiglia di rinominare la partizione prima di escludere DML in modo che sia conforme alle regole di filtro.
Oggetti e operazioni non supportati in DDL Oracle
Di seguito è riportato un elenco di oggetti e operazioni non supportati in Oracle DDL.
Oggetti esclusi
I nomi o i prefissi di nomi seguenti vengono considerati riservati da Oracle e devono essere esclusi dalla configurazione DDL di Oracle GoldenGate. Oracle GoldenGate ignorerà gli oggetti che contengono questi nomi.
Schemi esclusi:
"ANONYMOUS", // HTTP access to XDB
"APPQOSSYS", // QOS system user
"AUDSYS", // audit super user
"BI", // Business Intelligence
"CTXSYS", // Text
"DBSNMP", // SNMP agent for OEM
"DIP", // Directory Integration Platform
"DMSYS", // Data Mining
"DVF", // Database Vault
"DVSYS", // Database Vault
"EXDSYS", // External ODCI System User
"EXFSYS", // Expression Filter
"GSMADMIN_INTERNAL", // Global Service Manager
"GSMCATUSER", // Global Service Manager
"GSMUSER", // Global Service Manager
"LBACSYS", // Label Security
"MDSYS", // Spatial
"MGMT_VIEW", // OEM Database Control
"MDDATA",
"MTSSYS", // MS Transaction Server
"ODM", // Data Mining
"ODM_MTR", // Data Mining Repository
"OJVMSYS", // Java Policy SRO Schema
"OLAPSYS", // OLAP catalogs
"ORACLE_OCM", // Oracle Configuration Manager User
"ORDDATA", // Intermedia
"ORDPLUGINS", // Intermedia
"ORDSYS", // Intermedia
"OUTLN", // Outlines (Plan Stability)
"SI_INFORMTN_SCHEMA", // SQL/MM Still Image
"SPATIAL_CSW_ADMIN", // Spatial Catalog Services for Web
"SPATIAL_CSW_ADMIN_USR",
"SPATIAL_WFS_ADMIN", // Spatial Web Feature Service
"SPATIAL_WFS_ADMIN_USR",
"SYS",
"SYSBACKUP",
"SYSDG",
"SYSKM",
"SYSMAN", // Adminstrator OEM
"SYSTEM",
"TSMSYS", // Transparent Session Migration
"WKPROXY", // Ultrasearch
"WKSYS", // Ultrasearch
"WK_TEST",
"WMSYS", // Workspace Manager
"XDB", // XML DB
"XS$NULL",
"XTISYS", // Time Index
Schemi speciali:
"AURORA$JIS$UTILITY$", // JSERV
"AURORA$ORB$UNAUTHENTICATED", // JSERV
"DSSYS", // Dynamic Services Secured Web Service
"OSE$HTTP$ADMIN", // JSERV
"PERFSTAT", // STATSPACK
"REPADMIN",
"TRACESVR" // Trace server for OEM
Tabelle escluse (il carattere jolly * indica qualsiasi schema o qualsiasi carattere):
"*.AQ$*", // advanced queues
"*.DR$*$*", // oracle text
"*.M*_*$$", // Spatial index
"*.MLOG$*", // materialized views
"*.OGGQT$*",
"*.OGG$*", // AQ OGG queue table
"*.ET$*", // Data Pump external tables
"*.RUPD$*", // materialized views
"*.SYS_C*", // constraints
"*.MDR*_*$", // Spatial Sequence and Table
"*.SYS_IMPORT_TABLE*",
"*.SYS_EXPORT_TABLE*",
"*.CMP*$*", // space management, rdbms >= 12.1
"*.DBMS_TABCOMP_TEMP_*", // space management, rdbms < 12.1
"*.MDXT_*$*" // Spatial extended statistics tables
DDL non supportato - Altro
Oracle GoldenGate non supporta quanto riportato di seguito.
-
DDL nelle tabelle nidificate.
-
DDL nelle colonne di identità.
-
ALTER DATABASEeALTER SYSTEM(non sono considerati DDL) Utilizzando il dizionario, è possibile replicareALTER DATABASE DEFAULT EDITIONeALTER PLUGGABLE DATABASE DEFAULT EDITION. Tutti gli altri comandiALTER [PLUGABLE] DATABASEvengono ignorati. -
DDL in un database di standby.
-
DDL del database link.
-
DDL che crea tabelle con la clausola
FLASHBACK ARCHIVEe DDL che creano, alterano o eliminano lo stesso archivio di dati flashback. È supportato il DML sulle tabelle conFLASHBACK ARCHIVE. -
Alcune DDL genereranno i nomi degli oggetti generati dal sistema. I nomi degli oggetti generati dal sistema potrebbero non essere sempre uguali tra due database diversi. Pertanto, le operazioni DDL su oggetti con nomi generati dal sistema devono essere eseguite solo se il nome è esattamente lo stesso sulla destinazione.