Skip to main content

OracleDB Connector

Macrometa collection connectors allow you to extract data from or send data to an existing OracleDB collection.

Prerequisites

  • Macrometa account with admin permissions.
  • Remotely accessible, running OracleDB instance. Make sure to have the required permissions on the database, schema, and tables that you want to replicate from Oracle.
  • Source collections must not be empty.
  • Access to V$DATABASE and V_$THREAD performance views. These are required to verify setting configuration while setting up your Oracle database and to retrieve the database's Oracle System ID.

OracleDB Source

Read this section carefully before you set up your OracleDB source connector.

Multi-Tenant

If Multi-Tenant is set as True and a Pluggable Database Name is not provided, then CDB$ROOT container is used to access the database.

Log-Based Replication Requirements

Follow these instructions to configure log-based replication with LogMiner:

  1. Verify the database's current archiving mode.

    To check the database's current mode, run:

        SELECT LOG_MODE FROM V$DATABASE

    If the result is ARCHIVELOG, then archiving is enabled and no further action is required. Skip to Step 3 to configure RMAN backups.

  2. Enable ARCHIVELOG mode:

    1. Shut down the database instance. The database and any associated instances must be shut down before the database's archiving mode can be changed.

    2. Run the following:

      SQL> SHUTDOWN IMMEDIATE
      SQL> STARTUP MOUNT
      SQL> ALTER DATABASE ARCHIVELOG
      SQL> ALTER DATABASE OPEN
  3. Set the retention period by RMAN:

    RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;

    To ensure that archive log files don't consume all of your available disk space, you should also set the DB_RECOVERY_FILE_DEST_SIZE parameter to a value that agrees with your available disk quota. Refer to Oracle's documentation for more information about this parameter.

  4. Enable supplemental logging:

    SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS

    Alternatively, to enable supplemental logging at the table level, run ALTER TABLE <SCHEMA_NAME>.<TABLE_NAME> ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS for every table you want to replicate.

    Verify that supplemental logging was successfully enabled by running the following query:

    SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE

    If the returned value is YES or IMPLICIT, then supplemental logging is enabled.

  5. To use log-based replication, you'll need the following additional permissions for the user. Be sure to check with your Oracle Administrator before granting any permission!

    GRANT EXECUTE_CATALOG_ROLE TO USER

    GRANT SELECT ANY TRANSACTION TO USER

    GRANT SELECT ANY DICTIONARY TO USER

    GRANT EXECUTE ON DBMS_LOGMNR TO USER

    GRANT EXECUTE ON DBMS_LOGMNR_D TO USER

    GRANT SELECT ON SYS.V_$DATABASE TO USER

    GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO USER

    GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO USER

    If you're using version 12 of Oracle, then you'll also need to grant the LOGMINING privilege to the user:

    GRANT LOGMINING TO USER

OracleDB Target

Fields with Boolean, JSON, and array data types in the source collection are stored as columns of VARCHAR datatype in the OracleDB target table.