Oracle实时同步

本文提供Oracle实时同步场景的实施思路、配置示例和验证方式,可作为实际项目配置参考。

实现在Oracle中结果表向目标表中实时同步数据

案例

Oracle中将cdc_source中的数据实时同步到cdc_target中

前提

  • 启用Oracle的logminer

解决方案

创建Flink SQL作业类型,添加以下依赖

20250113160944

CREATE TABLE from_table (
    USERNAME STRING,
    AGE INT,
    PRIMARY KEY(USERNAME) NOT ENFORCED
) WITH (
     'connector' = 'oracle-cdc',
     'hostname' = 'localhost',
     'port' = '15201',
     'username' = 'root',
     'password' = 'root123',
     'database-name' = 'helowin',
     'schema-name' = 'root',
     'table-name' = 'CDC_SOURCE',
     'scan.startup.mode' = 'latest-offset');

CREATE TABLE target_table(
    USERNAME STRING,
    AGE INT,
    PRIMARY KEY(USERNAME) NOT ENFORCED
) WITH (
    'connector'='jdbc',
    'url'='jdbc:oracle:thin:@localhost:15201:helowin',
    'driver'='oracle.jdbc.driver.OracleDriver',
    'table-name'='CDC_SINK',
    'username'='root',
    'password'='root123',
    'sink.buffer-flush.max-rows' = '0'); 

INSERT INTO target_table select * from from_table;
配置项说明
connector连接方式
uri数据库连接url
table-name表名
database-name库名****