Amazon RDS for Oracle is a fully managed commercial database that makes it easy to set up, operate, and scale Oracle deployments in the cloud. Amazon RDS frees you up to focus on innovation and application development by managing time-consuming database administration tasks including provisioning, backups, software patching, monitoring, and hardware scaling.
Refer to Oracle on Amazon RDS for the supported Oracle database versions.
Prerequisites
-
Oracle database version is 12c and above.
-
Redo Log replication is enabled, if Pipeline mode is Redo Log.
-
Hevo’s IP addresses are whitelisted. The database user must have
CREATE/MANAGE SECURITY GROUPS
privileges in Amazon RDS to do this. -
Database hostname and port number of the Source instance are available.
-
You are assigned the Team Administrator, Team Collaborator, or Pipeline Administrator role in Hevo, to create the Pipeline.
Perform the following steps to configure your Amazon RDS Oracle Source:
Step 1Set up Redo Logs for Replication
A redo log is a collection of log files that record information about modifications made to data objects on an Oracle server instance. Oracle LogMiner uses redo logs to track these modifications and determine the rows requiring updates in the Destination system.
To set up redo logs for replication, connect to your Oracle server and perform the following steps:
1. Enable ARCHIVE Log
You need to enable archiving for redo logs.
To do this:
-
Check the current log mode. This should be
ARCHIVELOG
.SELECT LOG_MODE FROM "V$DATABASE";
-
Enable
ARCHIVELOG
mode if the current log mode isNOARCHIVELOG
.BEGIN rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours', 72); END;
Note: The minimum value for
archivelog retention hours
is 72. The archive log retention must be 72 hours at a minimum. This avoids any data loss that may occur due to downtimes in the Source database.
2. Enable supplemental logging
Supplemental logging ensures that the Oracle server logs all the columns of every changed Event.
-
Check if supplemental logging is enabled:
SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM "V$DATABASE";
This returns either of the following values:
-
YES
: Represents that the supplemental logging is enabled. -
IMPLICIT
: Represents that the supplemental logging is disabled.
-
-
If the value returned in the previous step is
IMPLICIT
, enable supplemental logging of primary key columns :BEGIN rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','ALL'); END;
-
Optionally, if you’re using Oracle 12, grant the following permission:
GRANT LOGMINING TO "<user_name>";
Step 2Whitelist Hevo’s IP Addresses
You need to whitelist the Hevo IP address for your region to enable Hevo to connect to your Amazon RDS Oracle database. You can do this by creating a VPC security group and adding inbound and outbound access rules for the Hevo IP addresses. A VPC group controls access to the database instances and virtual server instances inside a VPC. To do this:
1. Create a VPC security group
-
Access the Amazon RDS console.
-
In the left navigation pane, under Dashboard, select Databases (or Instances if you are using an older version).
-
In the Databases section on the right, select the read replica or master database instance that you want to connect.
-
In the Connectivity & Security tab, click the hyperlink under Security, VPC security groups.
-
On the Security Groups page, click Create security group.
You can also select an existing group, which you have used for other database instances, and modify it.
-
On the Create security group page, specify the following:
-
Security group name: An appropriate name for the security group.
-
Description: A brief description of the security group.
-
VPC ID: A unique identifier for the VPC.
-
2. Add inbound rules
In the Inbound Rules section:
-
Click Add Rule and specify the following:
-
Port range: The port of your Amazon RDS Oracle instance. For example, 1521.
-
Source: Select Custom from the drop-down and enter Hevo’s IP addresses for your region.
-
-
Add more rules for all the Hevo IPs you want to whitelist.
-
Click Create security group.
Step 3Create a Database User and Grant Privileges
You can log in to Oracle as a masteruser
or create a new database user for Hevo.
1. Create a database user (optional)
2. Grant privileges to the user
The database user you specify in the Hevo Pipeline must have the SELECT
privilege.
To assign this privilege, log in to Oracle as a masteruser
or a user with GRANT
privilege and enter the following commands:
-
Grant SELECT privilege to all or specific tables:
-- Grant access to all tables GRANT SELECT ANY TABLE TO "hevo"; -- Grant access to specific tables GRANT SELECT ON "<schema>"."<table>" TO "hevo";
-
Optionally, if you are using Redo Logs as the Pipeline mode, grant access to Oracle LogMiner:
GRANT SELECT ON SYS.V_$DATABASE TO "hevo"; GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO "hevo"; GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO "hevo"; GRANT EXECUTE ON DBMS_LOGMNR TO "hevo"; GRANT EXECUTE ON DBMS_LOGMNR_D TO "hevo";
Now you can try connecting to Oracle using Redo Logs pipeline mode, with the user configured in the above steps.
Step 4Retrieve the Hostname, Service ID, and Port Number
Note: The RDS hostnames start with your database name and end with rds.amazonaws.com.
For example:
Host: oracle-database-1.xxxxxxxxx.rds.amazonaws.com
Service ID: ORCL
Port: 1521
-
In the left navigation pane of the Amazon RDS console, click Databases (or Instances if you are using an older version).
-
In the Databases section on the right, click the DB identifier of the Amazon RDS Oracle instance.
-
Click the Connectivity & Security tab, and copy the values under Endpoint and Port as the hostname and port number. You will specify these while creating your Hevo Pipeline.
-
Click the Configuration tab, and copy the value under DB name. You will use this DB name as the Service Name while creating your Pipeline.
Step 5Specify Amazon RDS Oracle Connection Settings
Perform the following steps to configure Amazon RDS Oracle as a Source in Hevo:
-
Click PIPELINES in the Navigation Bar.
-
Click + CREATE PIPELINE in the Pipelines List View.
-
On the Select Source Type page, select Amazon RDS Oracle.
-
On the Configure your Amazon RDS Oracle Source page, specify the following:
-
Pipeline Name: A unique name for your Pipeline, not exceeding 255 characters.
-
Database Host: The Oracle database host’s IP address or DNS.
The following table lists a few examples of Oracle hosts:
Variant Host Amazon RDS Oracle oracle-rds-1.xxxxx.rds.amazonaws.com Generic Oracle 192.168.2.5 Note: For URL-based hostnames, exclude the http:// or https:// part. For example, if the hostname URL is https://oracle-rds-1.xxxxx.rds.amazonaws.com, enter oracle-rds-1.xxxxx.rds.amazonaws.com.
-
Database Port: The port on which your Amazon RDS Oracle server listens for connections. Default value: 1521.
-
Database User: The authenticated user who has the permissions to read tables in your database.
-
Database Password: The password for the database user.
-
Select an Ingestion Mode: The desired mode by which you want to ingest data from the Source. You can expand this section by clicking SEE MORE to view the list of ingestion modes to choose from. Default value: RedoLog. The available ingestion modes are RedoLog, Table, and Custom SQL.
Depending on the ingestion mode you select, you must configure the objects to be replicated. Refer to section, Object and Query Mode Settings for the steps to do this.
For Pipelines created after Release 1.96, Hevo supports the RedoLog ingestion mode for Oracle Database 19c and higher.
Note: For Custom SQL ingestion mode, all Events loaded to the Destination are billable.
-
Redo Log Advanced Settings: This section is applicable if RedoLog is selected as an ingestion mode:
Note: Any modification in the default value of the following settings may impact your database performance. We recommend that you contact Hevo Support before making any changes.
-
Poll Interval (in ms): The delay in milliseconds between the checks that Hevo makes to search for new transactions in the redo logs. Default value: 500.
-
Query Fetch Size: The maximum number of rows that Hevo fetches from the logs in each query. Default value: 10,000.
-
Long Transaction Window (in mins): The duration in minutes that Hevo must traverse back from the current transaction to fetch the data in a long-running transaction. Default value: 5.
Note: Increasing the default value can lead to increased memory consumption by the Source database during log mining sessions.
-
Load All Schemas: If enabled, Hevo loads data for all the schemas.
If disabled, Hevo loads data from the schema(s) that you specify in a comma-separated list.
-
Online Catalog: If enabled, Hevo retrieves the updated schema information from the specified Oracle database. This setting is ideal when schema changes are infrequent or nonexistent in the database tables.
If disabled, Hevo retrieves the schema information from the copy that Hevo maintains.
Note: This option is non-editable post-Pipeline creation.
-
Archive Log Only: If enabled, Hevo ingests data only from the archived redo logs.
If disabled, Hevo ingests data from the archived and online redo logs.
-
-
Connect through SSH: Enable this option to connect to Hevo using an SSH tunnel, instead of directly connecting your Oracle database host to Hevo. This provides an additional level of security to your database by not exposing your Oracle setup to the public. Read Connecting Through SSH.
If this option is disabled, you must whitelist Hevo’s IP addresses to allow Hevo to connect to your Oracle database host. Refer to the content for your Oracle variant for steps to do this.
-
Advanced Settings:
-
Load Historical Data: If enabled, Hevo fetches the entire table data in the first run of the Pipeline.
If disabled, Hevo loads only the data that was written in your database after the time of creation of the Pipeline.
This option is applicable only for Pipelines with RedoLog mode.
-
Merge Tables: If enabled, Hevo merges tables with the same name from different databases while loading the data to the warehouse. Hevo loads the Database Name field with each record.
If disabled, Hevo adds the database name as prefix to each table name. Read How does the Merge Tables feature work?.
This option is applicable only for Pipelines with RedoLog mode.
-
Include New Tables in the Pipeline: If enabled, Hevo automatically ingests data from tables created after the Pipeline has been built.
If disabled, the new tables are listed in the Pipeline Detailed View in Skipped state, and you can manually include the ones you want and load their historical data. You can include these objects post-Pipeline creation to ingest data.
You can change this setting later. Also, this option is applicable for all ingestion modes except Custom SQL.
-
-
-
Click TEST CONNECTION. This button is enabled once you specify all the mandatory fields. Hevo’s underlying connectivity checker validates the connection settings you provide.
-
Click TEST & CONTINUE to proceed for setting up the Destination. This button is enabled once you specify all the mandatory fields.
Object and Query Mode Settings
Once you have specified the Source connection settings in Step 5 above, do one of the following:
-
For Pipelines configured with the Table or RedoLog mode:
-
On the Select Objects page, select the objects you want to replicate and click CONTINUE.
Note:
-
Each object represents a table in your database.
-
From Release 2.19 onwards, for log-based Pipelines, you can keep the objects listed on the Select Objects page deselected by default. In this case, when you skip object selection, all objects are skipped for ingestion, and the Pipeline is created in the Active state. You can include the required objects post-Pipeline creation. Contact Hevo Support to enable this option for your teams.
-
-
On the Configure Objects page, specify the query mode you want to use for each selected object.
-
-
For Pipelines configured with the Custom SQL mode:
-
On the Provide Query Settings page, enter the custom SQL query to fetch data from the Source.
-
In the Query Mode drop-down, select the query mode, and click CONTINUE.
-
Data Replication
For Teams Created | Ingestion Mode | Default Ingestion Frequency | Minimum Ingestion Frequency | Maximum Ingestion Frequency | Custom Frequency Range (in Hrs) |
---|---|---|---|---|---|
Before Release 2.21 | Table | 15 Mins | 5 Mins | 24 Hrs | 1-24 |
Log-based | 5 Mins | 5 Mins | 1 Hr | NA | |
After Release 2.21 | Table | 6 Hrs | 30 Mins | 24 Hrs | 1-24 |
Log-based | 30 Mins | 30 Mins | 12 Hrs | 1-24 |
Note: The custom frequency must be set in hours as an integer value. For example, 1, 2, or 3 but not 1.5 or 1.75.
-
Historical Data: In the first run of the Pipeline, Hevo ingests all available data for the selected objects from your Source database.
-
Incremental Data: Once the historical load is complete, data is ingested as per the ingestion frequency.
Additional Information
Read the detailed Hevo documentation for the following related topics:
Limitations
-
Hevo does not support the flashback method to track incremental updates.
-
Redo Log does not support user-defined data types. Therefore, fields with such data types are not captured in the log and are lost.
-
Hevo does not load an Event into the Destination table if its size exceeds 128 MB, which may lead to discrepancies between your Source and Destination data. To avoid such a scenario, ensure that each row in your Source objects contains less than 100 MB of data.