When replicating with Oracle as the source database, the following prerequisites must be met:
1) The version of Oracle must be 11g or later.
2) The Oracle Database-Level Supplemental Logging must be at least Minimal Supplemental Logging. Also, the connection to the logminer must be the same as the Oracle source database, logmining from a remote Oracle Database is not allowed.
3) The Oracle User used to connect to the source Oracle database must have permissions to access the logminer and read all the entries in the V$TRANSACTION view. The following is an example of a user with the required permissions:
a) create role ep_logmnr;
b) grant create session to ep_logmnr;
c) grant select on v_$logmnr_contents to ep_logmnr;
d) grant select on v_$logmnr_dictionary to ep_logmnr;
e) grant select on v_$logmnr_parameters to ep_logmnr;
f) grant select on v_$logmnr_logs to ep_logmnr;
g) grant select on v_$archived_log to ep_logmnr;
h) grant select on V_$TRANSACTION to ep_logmnr;
i) grant execute_catalog_role, select any dictionary, select any transaction, select any table, create tablespace, drop tablespace to ep_logmnr;
j) grant execute on DBMS_LOGMNR to ep_logmnr;
k) grant logmining to ep_logmnr;
l) grant alter system to ep_logmnr;
m) create user epminer identified by epminer;
n) grant ep_logmnr to epminer;
o) alter user epminer quota unlimited on users;
4) If using a multitenant container database (CDB) a common user must be used to access the logminer. This is an example of a common user with the required permissions:
a) create role c##cnx_ep_logmnr CONTAINER=ALL;
b) grant create session,logmining,execute_catalog_role, select any dictionary, select any transaction, lock any table, select any table, create tablespace, drop tablespace to c##cnx_ep_logmnr CONTAINER=ALL;
c) grant select on v_$logmnr_contents to c##cnx_ep_logmnr CONTAINER=ALL;
d) grant select on v_$logmnr_dictionary to c##cnx_ep_logmnr CONTAINER=ALL;
e) grant select on v_$logmnr_parameters to c##cnx_ep_logmnr CONTAINER=ALL;
f) grant select on v_$logmnr_logs to c##cnx_ep_logmnr CONTAINER=ALL;
g) grant select on v_$archived_log to c##cnx_ep_logmnr CONTAINER=ALL;
h) create user c##oracleuser4 identified by oracleuser CONTAINER=ALL;
i) grant c##cnx_ep_logmnr to c##oracleuser4 CONTAINER=ALL;
j) alter user c##oracleuser4 quota unlimited on users CONTAINER=ALL;
CONTAINER=ALL is syntax for Oracle 12 and above, and is not valid for oracle 11 and below.
Notice that the role and user name all start with c## - this prefix is required by oracle for common user and role names.
The following restrictions apply:
The sum of all the fields in a table must be less than 8,000 bytes.
BLOB/CLOB data types are not supported. This includes CLOB, NCLOB, BLOB, BFILE, LONG, LONG RAW, etc.
Computed columns have limited support.
The index used for replication cannot be a computed column.
The source table can have computed columns but the target table cannot.
If a computed column is part of the replication, the data in the computed column will not be replicated. In this case, the target column that the computed column is mapped to will receive nulls.