Prerequisites
Multi-tenant databasesDue to the AWS RDS limitation where you cannot connect to the CDB and only being able to create local users, Streamkap does not support Oracle multi-tenant databases on AWS RDS.
Standby databasesAn Oracle database can be configured with either a physical or a logical standby database for recovery after a production failure. At this time, Streamkap does not support them.
- Oracle 12c or above, Standard or Enterprise Edition
- AWS RDS endpoint and port of the database
- (single-tenant architecture): Database name
- The Oracle database master user credentials or equivalent
- An AWS console account with administrator access to the database
Oracle Setup
For the Connector to ingest changes from your database it is dependent on Oracle’s redo logs and archive logs. It is important that these redo logs are large enough and the archive logs are retained for long enough to ensure all changes are captured.1. Grant Database Access
- Configure one of the Connection Options to ensure Streamkap can reach your database.
2. Enable Archive Logs
When redo logs fill up, Oracle archives groups of them into archive logs. For Oracle on RDS, archiving is enabled when AWS automated backups is enabled.Enable AWS Automated Backups
Reboot requiredWhen automated backups are enabled, your RDS instance and database are taken offline and a backup is immediately created which can take some time.
- Sign in to and open the Amazon RDS console at https://console.aws.amazon.com/rds/.
- In the left-side navigation menu, choose Databases. The Databases page should appear.
- Select the DB instance that you want to modify.
- Click Modify. The Modify DB instance page should appear.
- For Backup retention period, choose at least 1 or higher.
- Click Continue.
- Select Apply immediately.
- On the confirmation page, click Modify DB instance to enable automated backups.
LOG_MODE is ARCHIVELOG then it is enabled.
Or:
- Sign into your AWS account.
- Once signed in, navigate to the RDS dashboard by clicking on Services in the top left corner, Databases and then RDS or by typing RDS into the top left search box.
- From the AWS RDS Dashboard, click on DB Instances or Databases in the left side menu.
- Click on the DB identifier for the Oracle database you want Streamkap to use.
- Click on the Maintenance & backups tab.
- Under the Backups section, check Automated backups says “Enabled (N Days)”.
Configure Log Retention
Archive logs should be retained for at least 24 hours. However, we recommend retaining them for longer, if possible. Too short a retention period and changes may not be captured and processed.3. Enable LogMiner
For the Connector to query the redo and archive logs, it is dependent on the Oracle LogMiner utility. To enable that, supplemental logging must be enabled.SUPPLEMENTAL_LOG_DATA_MIN is YES then it is enabled.
Resize Redo Logs
An Amazon RDS Oracle instance starts with four, online redo log files, 128MB each. That is too small; more log files are necessary, and the logs should be resized to at least 1024MB or more, especially for production databases. Before making any changes, run this query to check the current log sizes:| GROUP# | SIZE_MB | STATUS |
|---|---|---|
| 1 | 128 | INACTIVE |
| 2 | 128 | CURRENT |
| 3 | 128 | INACTIVE |
| 4 | 128 | INACTIVE |
| GROUP# | SIZE_MB | STATUS |
|---|---|---|
| 1 | 128 | INACTIVE |
| 2 | 128 | CURRENT |
| 3 | 128 | INACTIVE |
| 4 | 128 | INACTIVE |
| 5 | 1024 | UNUSED |
| 6 | 1024 | UNUSED |
| … | … | … |
INACTIVE, drop them and run the query from earlier to confirm they have been dropped:
| GROUP# | SIZE_MB | STATUS |
|---|---|---|
| 2 | 128 | CURRENT |
| 5 | 1024 | UNUSED |
| 6 | 1024 | UNUSED |
| … | … | … |
CURRENT log so we can drop it and run the query from earlier to confirm it has switched.
| GROUP# | SIZE_MB | STATUS |
|---|---|---|
| 2 | 128 | ACTIVE |
| 5 | 1024 | CURRENT |
| 6 | 1024 | UNUSED |
| … | … | … |
STATUS of the log we want to drop is still ACTIVE, we need to issue a checkpoint to make it INACTIVE.
| GROUP# | SIZE_MB | STATUS |
|---|---|---|
| 5 | 1024 | CURRENT |
| 6 | 1024 | UNUSED |
| … | … | … |
4. Create Database User
The script below creates a database user with privileges for the Connector.5. Enable Snapshots
To backfill your data, the Connector needs to be able to perform Snapshots (See Snapshots & Backfilling for more information). To enable this process, a table must be created for the Connector to use.6. Heartbeats
Connectors use “offsets”—like bookmarks—to track their position in the database’s log or change stream. When no changes occur for long periods, these offsets may become outdated, and the Connector might lose its place or stop capturing changes. Heartbeats ensure the Connector stays active and continues capturing changes. There are two layers of heartbeat protection:Layer 1: Connector heartbeats (enabled by default)
The Connector periodically emits heartbeat messages to an internal topic, even when no actual data changes are detected. This keeps offsets fresh and prevents staleness. No configuration is necessary for this layer; it is automatically enabled. We recommend keeping this layer enabled for all deployments.Layer 2: Source database heartbeats (recommended)
Why we recommend configuring Layer 2While Layer 2 is crucial for low-traffic or intermittent databases, we recommend configuring it for all deployments. It provides additional resilience and helps prevent issues during periods of inactivity.
- Read-write connections (when Read only is No during Streamkap Setup): The Connector updates the heartbeat table directly.
- Read-only connections (when Read only is Yes during Streamkap Setup): A scheduled job on the primary database updates the heartbeat table, and these changes replicate to the read replica for the Connector to consume.
pg_cron for PostgreSQL, event_scheduler for MySQL)—on your source database.
- Read-write connections
For read-write connections (when Read only is No during Streamkap Setup), the Connector writes to the heartbeat table directly.
Streamkap Setup
Follow these steps to configure your new connector:1. Create the Source
- Navigate to Add Connectors.
- Choose Oracle.
- Select Amazon RDS.
2. Connection Settings
- Name: Enter a name for your connector.
- Hostname: Specify the database endpoint.
-
Port: Default is
1521. -
Connect via SSH Tunnel: The Connector will connect to an SSH server in your network which has access to your database. This is necessary if the Connector cannot connect directly to your database.
- See SSH Tunnel for setup instructions.
-
Username (case sensitive): Username to access the database. By default, Streamkap scripts use
STREAMKAP_USER. - Password: Password to access the database.
- Database: The database name (single-tenant architecture).
-
Heartbeats:
- Heartbeat Table Schema: Streamkap will use a table in this schema to manage heartbeats. Usually this is the same as the Signal Table Schema. See Heartbeats for setup instructions.
3. Snapshot Settings
- Signal Table Schema: Streamkap will use a collection in this schema to manage snapshots. See Enable Snapshots for more information.
4. Advanced Parameters
- Represent binary data as: Specifies how the data for binary columns should be interpreted. Your destination for this data can impact which option you choose. Default is
bytes. - Capture Only Captured Databases DDL: Used to control whether the connector records schema structures from all databases defined in the server (the default) or only those databases for which you’ve explicitly configured the connector. Specify
trueto capture schema history only for the specific databases you’ve configured. This is particularly valuable when databases are large, to reduce the volume of DDL stored in the schema history topic. It also improves startup times when the connector restarts or recovers from failures. Default isfalse. See Schema History Optimization for details. - Capture Only Captured Tables DDL: Used to control whether the connector records the schema structure for all tables in the configured databases (the default) or only the tables whose changes the connector captures. Specify
trueto capture schema history only for the specific tables you’ve configured. This is particularly valuable when tables are large, to reduce the volume of DDL statements stored in the schema history topic. It also improves startup times when the connector restarts or recovers from failures. Default isfalse. See Schema History Optimization for details.
5. Schema and Table Capture
- Add Schemas/Tables: Specify the schema(s) and table(s) for capture.
- You can bulk upload here. The format is a simple list of schemas and tables, with each entry on a new row. Save as a
.csvfile without a header.
- You can bulk upload here. The format is a simple list of schemas and tables, with each entry on a new row. Save as a
Have questions? See the Oracle Source FAQ for answers to common questions about Oracle sources, AWS RDS specifics, troubleshooting, and best practices.