③ Reading Data Change Records

  • Last update: May 15, 2026
  • Overview

    You need to create an account that can access the data source, which will be used in pipeline tasks to access the data source for data extraction and writing.

    For details about account creation, see the official document.

    Scenario One: Operations Required for Non-PDBs

    iconNote:

    The operations in this section must be performed for Oracle databases of the following versions:

    1. 10g and 11g

    2. 12c, 18c, 19c, 21c, and Oracle RAC clusters: required for all non-PDB architectures

    Creating a User Account and Assigning Privileges

    iconNote:
    Refer to the corresponding section below for the operation based on your actual database version.

    10g and 11g

    Use the following command to create a user account and assign privileges:

    CREATE USER Username IDENTIFIED BY Password;
    GRANT create session, alter session, execute_catalog_role, select any dictionary, select any transaction, select any table, unlimited tablespace to Username;

    You can now use this user account to establish a data connection. For example, if the user Nora is created, the data connection configuration page is shown in the following figure.

    12c, 18c,  19c, and 21c Standard Edition

    Create a database user and grant necessary privileges.

    1. Log in to the database as the database admin.

    2. Create a common user.

    CREATE USER Username IDENTIFIED BY Password;
    GRANT create session, alter session, select any dictionary, select any transaction,select any table,logmining, execute_catalog_role TO Username;

    Depending on the required privileges for the table, repeat the last command to grant the SELECT privilege.

    Checking User Privileges

    iconNote:
    Oracle of 11g and earlier versions do not require the LOGMINING privilege, but they do require the DBMS_LOGMNR and DBMS_LOGMNR_D privileges. These two privileges are generally enabled by default. If you have previously disabled them, enable them manually.

    Use the following commands to check if the current user has the LOGMINER privilege:

    WITH required_sys_privileges AS (
        SELECT column_value AS PRIVILEGE
        FROM TABLE (
            sys.odcivarchar2list(
                    'SELECT ANY TRANSACTION',
                    'CREATE SESSION',
                    'SELECT ANY DICTIONARY',
                    'SELECT ANY TABLE',
                    'LOGMINING'
                )
            )
    ),
         required_role_privileges AS (
             SELECT column_value AS ROLE_NAME
             FROM TABLE (
                 sys.odcivarchar2list(
                         'EXECUTE_CATALOG_ROLE',
                         'RESOURCE'
                     )
                 )
         ),
         required_table_privileges AS (
             SELECT column_value AS PRIVILEGE
             FROM TABLE (
                 sys.odcivarchar2list(
                         'DBMS_LOGMNR',
                         'DBMS_LOGMNR_D'
                     )
                 )
         )
    SELECT r.PRIVILEGE,
           NVL2(p.USERNAME, 'OK', 'REQUIRED') AS PRIVILEGE_STATUS
    FROM required_sys_privileges r
             LEFT JOIN user_sys_privs p
                       ON r.PRIVILEGE = p.PRIVILEGE
    UNION
    SELECT r.ROLE_NAME,
           NVL2(p.USERNAME, 'OK', 'REQUIRED') AS PRIVILEGE_STATUS
    FROM required_role_privileges r
             LEFT JOIN user_role_privs p
                       ON r.ROLE_NAME = p.GRANTED_ROLE
    UNION
    SELECT r.PRIVILEGE,
           NVL2(p.GRANTEE, 'OK', 'REQUIRED') AS PRIVILEGE_STATUS
    FROM required_table_privileges r
             LEFT JOIN user_tab_privs p
                       ON r.PRIVILEGE = p.TABLE_NAME;

    If the returned result is Required, the LOGMINER privilege is not enabled. If it is OK, the privilege is enabled.

    For any privileges that are required but not yet granted, you must grant them.

    Scenario Two: Operations Required for PDBs

    If the source-end database is a PDB, you cannot directly read its redo log. You must read it through the CDB.

    iconNote:
    The following steps determine whether the user is a common user with the Set Container privilege.

    Starting All PDBs

    1. Use the command in SQL*Plus to check the current PDB status, as shown in the following figure.

    show pdbs;


    You can also use the following command on the database query page:

    SELECT name, open_mode
    FROM   v$pdbs
    ORDER BY name;

    2. Start PDBORCL and ORCLPDB using the following command if they are not started:

    iconNote:
    Modify the PDB names to the actual database names.

    Check the PDB status again to ensure all PDBs are open.

    Creating an Account

    iconNote:
    When a common user is created in the CDB, the same user will also be created in the PDBs. If you omit container=all in the GRANT command when granting privileges to the CDB user, the user only has the granted privileges on the CDB. For the user to access the PDB, you must switch to the PDB and grant the privileges. If container=all is included in the GRANT command, the user has the granted privileges on both the CDB and the PDB.

    1. Create a user account.

    CREATE USER C##Username IDENTIFIED BY Password CONTAINER=all;

    iconNote:

    1. In this example, the username and password are C##ROXY122 and 123, respectively. Modify them to actual values.

    2. When the Oracle database is in a multi-tenant mode, prefix the username with C##.

    2. Grant privileges.

    GRANT create session, alter session, select any dictionary, select any transaction,select any table,logmining, execute_catalog_role,set container TO C##Username container=all;

    This step only applies to the new account.

    ALTER USER C##Username QUOTA UNLIMITED ON "USERS";
    SELECT supplemental_log_data_min, supplemental_log_data_pk, supplemental_log_data_all FROM v$database;
    GRANT create session, alter session, select any dictionary, select any transaction,select any table,logmining, execute_catalog_role TO C##Username;

    Grant the V_$PDBS privilege to the user, as shown in the following figure.

    alter user C##Username set container_data=all for sys.v_$pdbs container = current;

    Check the privileges of the new account:

    SELECT USERNAME, OBJECT_NAME FROM CDB_CONTAINER_DATA WHERE USERNAME = C##Username AND OBJECT_NAME = 'V_$PDBS';

    You can view the corresponding V_$PDBS privilege, as shown in the following figure.

    Log in to the Oracle server remotely, switch to SQL*Plus mode, and execute the privilege-granting command:

    grant restricted session TO C##Username container=all;

    Execute the command to grant table creation privileges:

    GRANT CREATE TABLE TO Username CONTAINER=ALL;

    After execution, check if the table creation privilege is granted:

    SELECT PRIVILEGE FROM USER_SYS_PRIVS WHERE PRIVILEGE = 'CREATE TABLE';

    Now, the account can create tables normally.

    Subsequent Operations

    After you configure the database, you can configure the data source in FineDataLink.

    Configure the data connection to source and target databases in FineDataLink before configuring pipeline tasks for real-time synchronization. This will allow you to control synchronization tasks by selecting the data source name during the task configuration process. For details, see Data Source Creation and Management.

    iconNote:
    If the source-end database is a PDB, the database specified in the data connection configuration must be a PDB, as shown in the following figure.

    Configure pipeline task. For details, see Pipeline Task Configuration.

    Notes

    Note: Archived logs take up large disk space. Business operations may be impacted if the disk is full. Clean up expired archived logs regularly. For details, see Cleaning Oracle Archived Logs.

     


    附件列表


    主题: Real-Time Pipeline
    Previous
    Next
    • Helpful
    • Not helpful
    • Only read

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    10s後關閉

    Get
    Help
    Online Support
    Professional technical support is provided to quickly help you solve problems.
    Online support is available from 9:00-12:00 and 13:30-17:30 on weekdays.
    Page Feedback
    You can provide suggestions and feedback for the current web page.
    Pre-Sales Consultation
    Business Consultation
    Business: international@fanruan.com
    Support: support@fanruan.com
    Page Feedback
    *Problem Type
    Cannot be empty
    Problem Description
    0/1000
    Cannot be empty

    Submitted successfully

    Network busy