Configure Oracle as a source in Artie with archive logs, LogMiner, supplemental logging, and service account permissions for both single-tenant and multi-tenant architectures.
ALTER SESSION SET CONTAINER=CDB$ROOT;CREATE USER C##ARTIE_USER IDENTIFIED BY YOUR_PASSWORD;ALTER SESSION SET CONTAINER={PDB};CREATE TABLESPACE ARTIE_LOGMINER_TBS DATAFILE SIZE 25M AUTOEXTEND ON MAXSIZE UNLIMITED;ALTER USER C##ARTIE_USER DEFAULT TABLESPACE ARTIE_LOGMINER_TBS;ALTER USER C##ARTIE_USER QUOTA UNLIMITED ON ARTIE_LOGMINER_TBS;-- Grant permissionsGRANT CREATE SESSION TO C##ARTIE_USER CONTAINER=ALL; GRANT SET CONTAINER TO C##ARTIE_USER CONTAINER=ALL; -- Allows the Connector to use LogMinerGRANT LOGMINING TO C##ARTIE_USER CONTAINER=ALL;-- Flashback queries used for performing initial snapshots of the dataGRANT FLASHBACK ANY TABLE TO C##ARTIE_USER CONTAINER=ALL; GRANT SELECT ANY TRANSACTION TO C##ARTIE_USER CONTAINER=ALL; -- Required for schema history when performing initial snapshotsGRANT SELECT_CATALOG_ROLE TO C##ARTIE_USER CONTAINER=ALL; GRANT EXECUTE_CATALOG_ROLE TO C##ARTIE_USER CONTAINER=ALL; -- Connector creates a table for explicitly managing the flushing of internal log buffers (LGWR)GRANT CREATE TABLE TO C##ARTIE_USER CONTAINER=ALL;GRANT CREATE SEQUENCE TO C##ARTIE_USER CONTAINER=ALL; -- Grant the user permission to read each schema and table you wish to syncALTER SESSION SET CONTAINER={PDB};GRANT SELECT ON SCHEMA.TABLE TO C##ARTIE_USER CONTAINER=ALL;-- Alternatively, you can grant access to all-- GRANT SELECT ANY TABLE TO C##ARTIE_USER CONTAINER=ALL;-- Grant the user access to the DBA_EXTENTS, DBA_TABLESPACES, DBA_SEGMENTS, and TRANSACTION system views. GRANT SELECT ON DBA_EXTENTS TO C##ARTIE_USER;GRANT SELECT ON DBA_TABLESPACES TO C##ARTIE_USER;GRANT SELECT ON DBA_SEGMENTS TO C##ARTIE_USER;GRANT SELECT ANY TRANSACTION TO C##ARTIE_USER;-- Grant the user permission to run LogMinerALTER SESSION SET CONTAINER=CDB$ROOT;GRANT SELECT ON SYS.V_$DATABASE TO C##ARTIE_USER;GRANT SELECT ON SYS.V_$PARAMETER TO C##ARTIE_USER;GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO C##ARTIE_USER;GRANT SELECT ON SYS.V_$ARCHIVE_DEST TO C##ARTIE_USER;GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO C##ARTIE_USER;GRANT EXECUTE ON DBMS_LOGMNR TO C##ARTIE_USER;GRANT EXECUTE ON DBMS_LOGMNR_D TO C##ARTIE_USER;GRANT SELECT ANY TRANSACTION TO C##ARTIE_USER;GRANT EXECUTE_CATALOG_ROLE TO C##ARTIE_USER;
If you want to replicate tables that do not have primary keys, you can specify the unique index that you want to use as the primary key.
Specify this under the “Advanced settings” tab in the table settings.