- Setting up Oracle for streaming may require a database restart, depending on the archive log configuration.
- Streaming has been tested against a multitenancy configuration with a container database, and for non-CDB database sources. If you need any additional advice and guidance, contact support.
Prerequisites
To complete the steps detailed in this guide, you’ll need:- Access to the
SYSDBAaccount. Many of the steps require administrator privileges. - An understanding of which database and schemas you will be targeting for streaming.
- A list of tables that you want to monitor and capture changes for.
Configuring your Oracle database for streaming
First confirm the state of theDatabase log mode. This mode can be viewed by running the following command:
Database log mode is No Archive Mode and the Automatic archival is disabled, you will need to adjust these settings to enable archiving of logs, as follows.
-
Enable the database archive log by running the SQL statements below:
-
To adjust the size of the recovery file destination or the path to this destination, run the following SQL statements:
-
Enable
SUPPLEMENTALlogging for any tables you would like to monitor and consume changes from, using the following commands:To enable supplemental logging for your selected tables, you may need to log in with a different user who has access to the correct schemas and tables.LogMiner requires table or column names that are 30 characters or less. The LogMiner utility (DBMS_LOGMNR) doesn’t support long table or column names when supplemental logging is enabled. For more information, read the Oracle documentation related to your database version. -
Create a new
TABLESPACEwith these specific size and auto extend settings:
Setting up permissions
Create a common user account in the database. This user account will be used by the for the monitoring and consumption of changes as they occur within the database. To continue with the setup, a user account withSYSDBA administrative privilege is required.
- If you follow this method of setting up permissions, it assumes the use of a multitenancy configuration with a container database, and at least one connectable database. If you don’t intend to use a multitenancy configuration, refer to Setting up permissions - Non-CDB environment.
- Common user accounts are created in
cdb$rootand must use the convention:c##<name>orC##<name>. The userc##cdcuseris used throughout in this guide.
-
Create a new user following the recommended naming convention:
-
A number of permissions will need to be granted to this user to enable correct monitoring of the archive logs. These are detailed below:
Setting up permissions in a non-CDB environment
First, create a local user account within the non-CDB database. This user account will be used by the for the monitoring and consumption of changes as they occur in the database. To continue with the set up, a user account withSYSDBA administrative privilege will be required.
The local user
cdcuser is used throughout this guide.-
Create a new user following the recommended naming convention:
-
A number of permissions will need to be granted to this user to enable correct monitoring of the archive logs. These are detailed below:
In Oracle Database 19c (19.1), the
continuous_mine option for the dbms_logmnr.start_logmnr package has been deprecated and is no longer available. However, it’s important to note that Matillion’s streaming offering does not rely on the continuous_mine functionality of LogMiner. Therefore, Matillion’s streaming solution remains unaffected by this deprecation.