flink cdc 同步oracle 19c 数据库,fink-connector-oracle-cdc 是2.4.0?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据知识库信息,flink-connector-oracle-cdc
的版本为 2.4.0 是可以支持同步 Oracle 19c 数据库的。但需要注意以下几点: - CDC 连接器的版本与 Flink 引擎版本的对应关系:确保使用的 flink-connector-oracle-cdc
版本与 Flink 引擎版本兼容。例如,VVR(Ververica Runtime)版本与社区版 CDC 的对应关系需要匹配。 - 如果您使用的是阿里云实时计算 Flink 版,建议优先使用内置的 Oracle CDC 连接器,而不是社区版连接器,以避免兼容性问题。
在同步 Oracle 19c 数据库之前,需要对数据库进行必要的配置: - 启用归档日志模式:确保 Oracle 数据库启用了归档日志模式(Archivelog Mode),这是 CDC 同步的基础。 - 启用补充日志记录:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
补充日志记录是 Oracle CDC 连接器捕获数据变更的前提条件。 - 创建高权限用户:确保用于同步的 Oracle 用户具有以下权限: - SELECT ANY TRANSACTION
- LOGMINING
- SELECT_CATALOG_ROLE
- 对目标表的 SELECT
权限 - 配置 LogMiner:确保 LogMiner 已正确配置,并且能够读取归档日志和在线重做日志。
以下是使用 flink-connector-oracle-cdc
2.4.0 同步 Oracle 19c 数据库的配置步骤:
以下是一个示例 SQL 配置,用于同步 Oracle 19c 数据库中的表到目标存储(如 SelectDB):
CREATE TABLE oracle_source (
id INT,
name STRING,
update_time TIMESTAMP(3),
PRIMARY KEY (id) NOT ENFORCED
) WITH (
'connector' = 'oracle-cdc',
'hostname' = '<your-oracle-host>',
'port' = '1521',
'username' = '<your-oracle-username>',
'password' = '<your-oracle-password>',
'database-name' = '<your-database-name>',
'schema-name' = '<your-schema-name>',
'table-name' = '<your-table-name>',
'debezium.snapshot.mode' = 'initial'
);
CREATE TABLE selectdb_sink (
id INT,
name STRING,
update_time TIMESTAMP(3),
PRIMARY KEY (id) NOT ENFORCED
) WITH (
'connector' = 'selectdb',
'fenodes' = '<your-selectdb-fenodes>',
'username' = '<your-selectdb-username>',
'password' = '<your-selectdb-password>',
'table.identifier' = '<your-target-table>'
);
INSERT INTO selectdb_sink
SELECT * FROM oracle_source;
hostname
:Oracle 数据库的主机地址。port
:Oracle 数据库的监听端口,默认为 1521
。username
和 password
:具有必要权限的 Oracle 用户名和密码。database-name
:Oracle 数据库名称。schema-name
:目标表所在的 Schema 名称。table-name
:需要同步的目标表名称。debezium.snapshot.mode
:快照模式,推荐使用 initial
,表示首次全量同步后切换为增量同步。fenodes
:SelectDB 的前端节点地址。username
和 password
:SelectDB 的用户名和密码。table.identifier
:目标表的标识符。通过 Flink CLI 或阿里云实时计算控制台提交作业。以下是一个示例命令:
<FLINK_HOME>/bin/flink run \
-Dexecution.checkpointing.interval=10s \
-Dparallelism.default=1 \
-c org.apache.doris.flink.tools.cdc.CdcTools \
lib/flink-doris-connector-1.16-1.5.2.jar \
oracle-sync-database \
-database test_db \
-oracle-conf hostname=127.0.0.1 \
-oracle-conf port=1521 \
-oracle-conf username=admin \
-oracle-conf password="password" \
-oracle-conf database-name=XE \
-oracle-conf schema-name=ADMIN \
-including-tables "tbl1|test.*" \
-sink-conf fenodes=selectdb-cn-****.selectdbfe.rds.aliyuncs.com:8080 \
-sink-conf username=admin \
-sink-conf password=****
flink-connector-oracle-cdc
的版本与 Flink 引擎版本匹配,避免因版本不一致导致的问题。通过以上步骤,您可以成功使用 flink-connector-oracle-cdc
2.4.0 实现 Oracle 19c 数据库的数据同步。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。