Details of Support for Oracle Data Types and Objects
This topic describes data types, objects and operations that are supported by Oracle GoldenGate.
DBA_GOLDENGATE_SUPPORT_MODE
to get information about supported
objects. There are different types for replication support:
-
Support by Capturing from Redo
-
Procedural Replication Support
Most data types are supported (SUPPORT_MODE=FULL
),
which implies that Oracle GoldenGate captures the
changes out of the redo. In some unique cases, the information cannot be captured,
but the information can be fetched with a connection to the database
(SUPPORT_MODE=ID KEY
). Tables supported with ID
KEY
require a connection to the source database or an ADG Standby
database for fetching to support those tables. If using downstream Integrated
Extract, with NOUSERID
a customer must specify a
FETCHUSERID
or FETCHUSERIDALIAS
connection.
Other changes can be replicated with Procedural Replication
(SUPPORT_MODE=PLSQL
) that requires additional parameter setting
of Extract. See About Procedural Replication
for details. In the unlikely case that there is no native support, no support by
fetching and no procedural replication support, there is no Oracle GoldenGate
support.
To know more information about capture modes, see Deciding Which Capture Method to Use.
Besides the DBA_GOLDENGATE_SUPPORT_MODE at the source database you should check the DBA_GOLDENGATE_NOT_UNIQUE dictionary view at the target side. If there are tables without any uniqueness and unbounded data_types (BAD_COLUMN='Y'), the table records cannot be uniquely identified and cannot be used for logical replication.
Detailed support information for Oracle data types, objects, and operations starts with Details of Support for Objects and Operations in Oracle DML.
There might be a few cases where replication support exists, but there
are limitations of processing such as in case of using SQLEXEC
. The
following table lists these limitations:
Support Datatypes | No Support |
---|---|
|
Special cases of:
|
|
Tables with restricted uniqueness |
|
X |
|
X |
|
X |
|
X |
Hierarchy-enabled tables |
X |
|
X |
|
X |
|
X |
Identity columns |
X |
|
X |
Note:
SECUREFILE
LOBs
updated using DBMS_LOG.FRAGMENT
or SECUREFILE
LOBs
that are set to NOLOGGING
are fetched instead of read from the
redo.
Supported Capture from Redo:
-
NUMBER
,BINARY FLOAT
,BINARY DOUBLE
, and (logical)UROWID
-
DATE
andTIMESTAMP
-
CHAR
,VARCHAR2
,LONG
,NCHAR
, andNVARCHAR2
-
RAW
,LONG RAW
,CLOB
,NCLOB
,BLOB
,SECUREFILE
,BASICFILE
, andBFILE
(LOB size limited to 4GB) -
XML
columns stored asCLOB
,Binary
and Object-Relational (OR) -
XMLType
columns andXMLType
tables stored asXML CLOB
,XML
Object Relational, andXML Binary
-
UDTs
(user-defined or abstract data types) onBYTE
semantics with source database compatibility 12.0.0.0.0 or higher -
ANYDATA
data type with source database compatibility 12.0.0.0.0 or higher -
Hierarchy-enabled tables are managed by the Oracle XML database repository with source database compatibility 12.2.0.0.0 or higher and enabled procedural replication
-
REF
types with source database compatibility 12.2.0.0.0 or higher -
DICOM
with source database compatibility 12.0.0.0.0 or higher -
SDO _TOPO_GEOMETRY
orSDO_GEORASTER
with source database compatibility 12.2.0.0.0 or higher and enabled procedural replication -
Identity columns with source database compatibility 18.1.0.0.0 or higher
-
SDO_RDF_TRIPLE_S
with source database compatibility 19.1.0.0.0 or higher
Supported (Fetch from database)
SECUREFILE
LOBs
-
Modified with
DBMS_LOB.FRAGMENT_*
procedures -
NOLOGGING
LOBs -
Deduplicated LOBs with a source database release less than 12gR2
UDTs
that contain following data types:
-
TIMESTAMP WITH TIMEZONE
,TIMESTAMP WITH LOCAL TIMEZONE
,TIMESTAMP WITH TIMEZONE
with region ID -
INTERVAL YEAR TO MONTH
,INTERVAL DAY TO SECOND
-
BINARY FLOAT
,BINARY DOUBLE
-
BFILE
-
Nested table
-
SDO_TOP_GEOMETRY
-
SDO_GEORASTER
Additional Considerations
-
NUMBER
can be up to the maximum size permitted by Oracle. The support of the range and precision for floating-point numbers depends on the host machine. In general, the precision is accurate to 16 significant digits, but you should review the database documentation to determine the expected approximations. Oracle GoldenGate rounds or truncates values that exceed the supported precision. -
Non-logical
UROWID
columns will be identified by Extract. A warning message is generated in the report file. The column information is not part of the trail record. All other supported datatypes of the record are part of the trail record and are replicated. -
TIMESTAMP WITH TIME ZONE
asTZR
(region ID) for initial loads,SQLEXEC
or operations where the column can only be fetched from the database. In those cases, the region ID is converted to a time offset by the source database when the column is selected. Replicat applies the timestamp as date and time data into the target database with a time offset value. -
VARCHAR
expansion from 4K to 32K (extended or longVARCHAR
)-
32K long columns cannot be used as row identifiers:
-
Columns as part of a key or unique index
-
Columns in a
KEYCOLS
clause of theTABLE
orMAP
parameter.
-
-
32K long columns as resolution columns in a CDR (conflict resolution and detection)
-
If an extended
VARCHAR
column is part of unique index or constraint, then direct path inserts to this table may cause Replicat to abend with a warning. Verify that the extendedVARCHAR
caused the abend by checkingALL_INDEXES
orALL_IND_COLUMNS
for a unique index orALL_CONS_COLUMNS
orALL_CONSTRAINTS
for a unique constraint. Once you determine that an extendedVARCHAR
, you can temporarily drop the index or disable the constraint:-
Unique Index:
DROP INDEX
index_name
; -
Unique Constraint:
ALTER TABLE table_name MODIFY CONSTRAINT
constraint_name DISABLE
;
-
-
-
Oracle GoldenGate does not support the filtering, column mapping, or manipulation of objects larger than 4K.
-
BFILE
column are replicating the locator. The file on the server file system outside of the database and is not replicated. -
Multi-byte character data: The source and target databases must be logically identical in terms of schema definition for the tables and sequences being replicated. Transformation, filtering, and other manipulation cannot be used.
-
The character sets between the two databases must be one of the following:
-
Identical on the source and on the target
-
Equivalent, which is not the same character set but containing the same set of characters
-
Target is a superset of the source
Multi-byte data can be used in any semantics: bytes or characters.
-
-
The structure of the UDTs and Abstract Data Types (ADTs) itself must be the same on both the source and target.
UDTs
can have different source and target schemas.UDTs
, including values inside object columns or rows, cannot be used within filtering criteria inTABLE
orMAP
statements, or as input or output for the Oracle GoldenGate column-conversion functions,SQLEXEC
, or other built-in data manipulation tools. Support is only provided for like-to-like Oracle source and targets.To fully support object tables created using the
CREATE TABLE as SELECT (CTAS)
statement, Integrated Extract must be configured to capture DML from the CTAS statement. Oracle object table can be mapped to a non-Oracle object table in a supported target database. -
XML
column type cannot be used for filtering and manipulation. You can map theXML
representation of an object to a character column by means of aCOLMAP
clause in aTABLE
orMAP
statement.Oracle recommends the
AL32UTF8
character set as the database character set when working withXML
data. This ensures the correct conversion by Oracle GoldenGate from source to target. With DDL replication enabled, Oracle GoldenGate replicates the CTAS statement and allows it to select the data from the underlying target tables. OIDs are preserved ifTRANSLOGOPTIONS GETCTASDML
parameter is set. ForXMLType
tables, the row object IDs must match between source and target.