Oracle 触发器 CDC 方案
说明:
同 SqlServer 很类似 基本都是触发器实现即可
一 创建 Demo表
-
源表
create table TEST_STR ( id VARCHAR2(200) not null )
-
捕获数据存取表
create table CDC_TEST_STR
(
id VARCHAR2(200) not null,
operation VARCHAR2(200) not null,
operation_time DATE default sysdate
)
二 触发器
-
====================== 插入触发器 ==========================
create or replace trigger cdc_insert_test_str after insert on test_str for each row begin INSERT INTO cdc_test_str( id, operation ) VALUES(:new.id,'I'); end cdc_insert_test_str;
-
====================== 删除触发器 ==========================
create or replace trigger cdc_delete_test_str before delete on test_str for each row begin INSERT INTO cdc_test_str( id, operation ) VALUES(:OLD.id,'D'); end cdc_insert_test_str;
-
====================== 更新触发器 ==========================
create or replace trigger cdc_update_test_str after update on test_str for each row begin INSERT INTO cdc_test_str( id, operation ) VALUES(:new.id,'U'); end cdc_insert_test_str;
三 测试
-- 源表
select * from test_str
-- 触发器 临时表
select * from CDC_test_str
-- 插入测试
insert into test_str values('tigger_ddddd');
-- 修改测试
update test_str set id = 'changed_ifff' where id = 'tigger_ddddd'
-- 删除测试
delete from test_str where id = 'changed_ifff'
-- 清空临时表
delete from CDC_test_str where 1= 1
附图:
oracle 安装
https://download.oracle.com/otn/nt/oracle19c/193000/WINDOWS.X64_193000_db_home.zip?AuthParam=1605752709_c48aa411bdbabc586d5c86404dadf9ef
运行安装程序
记得选择先安装软件,后安装数据库
如果安装失败
会有如下提示:
解决办法很简单,先关闭所有 Oracle 服务, 然后卸载所有 Oracle 服务, (我这里重启了一下电脑) ,然后修改一下 setup.exe 的父目录
/oracle11g --> oracle 10g
服务安装成功后, 打开 DBCA
修改红线处, 然后一路 next
Kettle + Oracle CDC 可以参考文章 SQLServer + Kettle CDC 方案
https://blog.youkuaiyun.com/cs261244787/article/details/109803976
架构图: SQL Server 改成 Oracle 就行了