Follow these instructions to replicate your Oracle RAC database to your destination using Fivetran.
To connect your Oracle RAC database to Fivetran, you need:
- Oracle 11g or above
- Your database host’s IP (e.g.,
184.108.40.206) or domain (e.g.,
- Your database’s port (usually
1521for unencrypted connections and
2484for encrypted connections using SSL/TLS)
- Your database’s system identifier (SID)/service name
Choose connection methodlink
First, decide whether to connect Fivetran to your Oracle RAC database directly or using an SSH tunnel.
Connect directly (TLS required)
IMPORTANT: You must have TLS enabled on your database to connect directly to Fivetran. Follow Oracle’s TLS setup instructions to enable TLS on your database.
Fivetran connects directly to your Oracle RAC database. This is the simplest and most secure method.
To connect directly, configure your firewall and/or other access control systems to allow incoming connections to your Oracle database host and port (usually
1521) from Fivetran’s IPs for your database’s region. How you do this will vary based on how your Oracle database is hosted (cloud platform, on-premises, etc.).
Connect via SSH (TLS optional)
IMPORTANT: You must connect using an SSH tunnel if your Oracle RAC database is version 12.1 or below.
Fivetran connects to a separate server in your network that provides an SSH tunnel to your database. You must connect through SSH if your database is in an inaccessible subnet.
Create a database user for Fivetran’s exclusive use.
Connect to your Oracle RAC database as an admin user.
Execute the following SQL commands to create a user for Fivetran and grant it permission to connect to your database. Replace
<password>with a username and password of your choice.
CREATE USER <username> IDENTIFIED BY <password>; GRANT CREATE SESSION TO <username>;
NOTE: Usernames in Oracle are case sensitive. For example,
fivetranis not the same user as
Grant read-only accesslink
Grant the Fivetran user read-only access to the data you want to sync.
NOTE: Oracle database defaults to using upper case letters, unless the values are surrounded by double quotes.
Grant the Fivetran user
SELECTpermission for each schema and table you want to sync.
GRANT SELECT ON "<schemaA>"."<tableA>" TO <username>; GRANT SELECT ON "<schemaA>"."<tableB>" TO <username>; GRANT SELECT ON "<schemaB>"."<tableC>" TO <username>;
Alternatively, you can grant access to all tables:
GRANT SELECT ANY TABLE TO <username>;
Grant the Fivetran user access to the
GRANT SELECT ON DBA_EXTENTS TO <username>; GRANT SELECT ON DBA_TABLESPACES TO <username>; GRANT SELECT ON DBA_SEGMENTS TO <username>;
To keep your data up to date after the initial sync, we use Oracle’s built-in LogMiner technology. LogMiner uses archived redo log files to identify modified tables and determine which rows need to be updated, which allows Fivetran to update only the data that has changed since our last sync.
IMPORTANT: Fivetran’s Oracle RAC connector can only connect to a single node in a cluster. We do not support SCAN listener connections.
To enable LogMiner, do the following:
If ARCHIVELOG mode is not enabled on your database, enable ARCHIVELOG mode.
NOTE: Enabling ARCHIVELOG mode requires the Oracle instance to be briefly taken offline. To learn more, see Oracle’s archived redo log file documentation.
Shut down all database instances.
$ srvctl stop database -d <db_unique_name>
Start the database in mount mode.
$ srvctl start database -d <db_unique_name> -o mount
Enable archive logging.
$ sqlplus / as sysdba sql> ALTER DATABASE ARCHIVELOG; sql> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=<SHARED_LOCATION>' SCOPE=SPFILE; sql> EXIT;
NOTE: <SHARED_LOCATION> could be any of the following:
- Automatic Storage Management disks
- Flash Recovery Area
- Shared storage
Stop the database.
$ srvctl stop database -d <db_unique_name>
Restart all database instances.
$ srvctl start database -d <db_unique_name>
Verify that archiving is enabled.
sql> archive log list;
IMPORTANT: The connector’s database host must have access to the archived logs of all other nodes in the cluster.
Configure Oracle RMAN to retain backups and archive logs for at least 24 hours. We recommend retaining data for seven days.
IMPORTANT: To sync your data, Fivetran must have a minimum of 3 hours’ worth of log data to analyze. You cannot finish setting up your connector until 3 hours after you configure RMAN to retain archive logs.
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
(Recommended) Set the
DB_RECOVERY_FILE_DEST_SIZEparameter to a value that matches your available disk space, because expired and obsolete log and backup files can quickly fill your disk. For more information, see Oracle’s DB_RECOVERY_FILE_DEST_SIZE documentation.
Enable supplemental logging on all the tables you plan to sync.
If you plan to sync all tables in your database, run the following query.
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
If you plan to only sync specific tables, run the following query for each table you want to include.
ALTER TABLE "<schema>"."<table>" ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
For each table where the primary key is expected to change, run the following query.
ALTER TABLE "<schema>"."<table>" ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS
NOTE: If you don’t configure the logging data correctly, you will receive a warning when Fivetran encounters a primary key change. The warning will give you customized instructions.
Grant the Fivetran user permission to run LogMiner.
GRANT SELECT ON SYS.V_$DATABASE TO <username>; GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO <username>; GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO <username>; GRANT EXECUTE ON DBMS_LOGMNR TO <username>; GRANT EXECUTE ON DBMS_LOGMNR_D TO <username>; GRANT SELECT ANY TRANSACTION TO <username>; GRANT EXECUTE_CATALOG_ROLE TO <username>;
(Oracle version 12 and above) Grant logmining permissions to the Fivetran user.
GRANT LOGMINING TO <username>;
Finish Fivetran configurationlink
In your connector setup form, enter a destination schema prefix. This prefix applies to each replicated schema and cannot be changed once your connector is created.
In the Host field, enter your RAC node public IP (for example,
220.127.116.11) or URL (for example,
Enter your database’s Port number. The port number is usually
1521for unencrypted connections and
2484for encrypted connections using SSL/TLS.
Enter the Fivetran-specific User that you created in Step 2.
Enter the Password for the Fivetran-specific user that you created in Step 2.
Enter your database’s SID/Service Name.
Choose your connection method. If you selected Connect via an SSH tunnel, provide the following information:
- SSH hostname (do not use a load balancer’s IP address/hostname)
- SSH port
- SSH user
- If you enabled TLS on your database in Step 1, set the Require TLS through tunnel toggle to ON.
Click Save & Test. Fivetran tests and validates our connection to your Oracle database. Upon successful completion of the setup tests, you can sync your data using Fivetran.
Fivetran performs the following tests to ensure that we can connect to your Oracle RAC database and that it is properly configured:
- The Connecting to SSH Tunnel Test validates the SSH tunnel details you provided in the setup form. It then checks that we can connect to your database using the SSH tunnel. (We skip this test if you aren’t connecting using an SSH tunnel.)
- The Connecting to Host Test validates the database credentials you provided in the setup form. It then verifies that the database host is not private and checks that we can connect to the host.
- The Validating Certificate Test generates a pop-up window where you must choose which certificate you want Fivetran to use. It then validates that certificate and checks that we can connect to your database using TLS. (We skip this test if you aren’t connecting directly.)
- The Validating Database Version Test checks your database version. The test passes if your database version is 12.2 or above or if your database version is 12.1 or below and you are connecting using an SSH tunnel.
- The Validating System View Permission Test checks that we have permission to access the
- The Validating Archive Log Access Test checks that we can access your archive log.
- The Validating Archive Log Retention Period Test verifies that your archive log is set to retain at least 24 hours’ worth of changes.
- The Access to Database-Level Supplemental Logging Test verifies that supplemental logging is enabled on your database. If supplemental logging is not enabled, the test passes but generates a warning message in your dashboard.
NOTE: The tests may take a few minutes to finish running.