【YashanDB知识库】Flink CDC实时同步Oracle数据到崖山

概述

本文主要介绍通过flink cdc实现oracle数据实时同步到崖山,支持全量和增量,DML支持新增、修改和删除。

环境

JDK版本:11

Flink版本:1.18.1

flink-sql-connector-oracle-cdc版本:3.1.1

flink-connector-yashandb版本:1.18.1.1

Streampark版本:2.1.4

YMP版本:23.2.1.5

源Oracle版本:11.2.0.2.0

目标YashanDB版本:23.2.2.100

操作步骤

Oracle启用日志归档

Step1:以DBA权限登录Oracle数据库

sqlplus /nolog

CONNECT sys/system AS SYSDBA

Step2:启用日志归档

-- 确认归档日志是否已开启,未开启则需开启

archive log list;

-- 查看db_recovery_file_dest参数

show parameter db_recovery_file_dest;

-- 设置数据库恢复文件目标大小为10G

alter system set db_recovery_file_dest_size = 10G;

-- 设置数据库恢复文件目标路径

alter system set db_recovery_file_dest = '/u01/app/oracle/fast_recovery_area' scope=spfile;

-- 立即关闭数据库

shutdown immediate;

-- 以mount模式启动数据库

startup mount;

-- 启用数据库归档日志模式

alter database archivelog;

-- 打开数据库,允许用户访问

alter database open;

-- 再次确认归档日志是否已开启

archive log list;

用户赋权

Step1:创建表空间

-- 创建一个名为"logminer_tbs"的表空间

CREATE TABLESPACE logminer_tbs DATAFILE '/u01/app/oracle/oradata/XE/logminer_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

Step2:创建用户并赋予权限

-- 创建一个名为"flinkuser"的用户,密码为"flinkpw",将其默认表空间设置为"LOGMINER_TBS",并在

虽然提供的引用主要涉及Flink CDC同步MySQL数据到Doris,但可基于通用的Flink CDC同步思路来构建同步Oracle数据到Doris的解决方案。 ### 环境准备 首先需要部署好Doris和Flink环境。同时要获取必要的jar包,对于Oracle和Doris的连接,可能需要 `flink-sql-connector-oracle-cdc` 相关版本的jar包用于连接Oracle数据库获取实时变化数据,以及 `flink-doris-connector` 相关版本的jar包用于将数据写入Doris。例如可以参考类似的版本选择,可能需要使用如 `flink-sql-connector-oracle-cdc-3.0.0.jar` 和 `flink-doris-connector-1.19-1.6.0.jar` (具体版本需根据实际环境适配) [^1]。 ### 配置连接器 将上述获取的两个jar包放到Flink CDC的lib目录下,例如对于 `flink-cdc-3.0.0` ,把 `flink-sql-connector-oracle-cdc-3.0.0.jar` 和 `flink-doris-connector-1.19-1.6.0.jar` 放到 `flink-cdc-3.0.0/lib` 目录 [^1][^3]。 ### 编写Flink SQL 在Flink SQL中定义源表和目标表。 ```sql -- 定义Oracle源表 CREATE TABLE oracle_source_table ( -- 定义表中的字段,根据实际Oracle表结构来 id INT, name STRING, -- 其他字段... ) WITH ( 'connector' = 'oracle-cdc', 'hostname' = 'your_oracle_host', 'port' = 'your_oracle_port', 'username' = 'your_oracle_username', 'password' = 'your_oracle_password', 'database-name' = 'your_oracle_database', 'schema-name' = 'your_oracle_schema', 'table-name' = 'your_oracle_table' ); -- 定义Doris目标表 CREATE TABLE doris_sink_table ( id INT, name STRING, -- 其他字段... ) WITH ( 'connector' = 'doris', 'fenodes' = 'your_doris_fenodes', 'table.identifier' = 'your_doris_database.your_doris_table', 'username' = 'your_doris_username', 'password' = 'your_doris_password' ); -- 插入数据 INSERT INTO doris_sink_table SELECT * FROM oracle_source_table; ``` ### 提交任务 提交上述Flink SQL任务,确保在提交任务前,`flink-cdc` 对应版本的lib目录下有正确的连接器。例如如果是 `flink-cdc-3.1.0` ,要确保 `flink-cdc-3.1.0/lib` 目录下有对应的 `flink-cdc-pipeline-connector-oracle` 和 `flink-cdc-pipeline-connector-doris` 版本的jar包(版本需根据实际情况适配) [^2]。 ### 监控 对同步任务进行监控,观察是否有数据正常同步,以及是否有报错信息等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值