debezium 采集oracle原理

Oracle的Logminer工具用于分析数据库日志,跟踪和回退数据库变化,优化扩容计划。它能离线分析在线和离线日志,支持跨数据库分析。通过步骤设置,如开启归档日志、生成归档文件、添加日志文件等,可以使用Logminer进行数据捕获。Oracle CDC利用Logminer解析SQL,实现实时数据变更捕获,常用于数据同步和监控。

logminer

logminer的用途日志文件中存放着所有进行数据库恢复的数据,记录了针对数据库结构的每一个变化,也就是对数据库操作的所有DML语句。logminer 工具即可以用来分析在线,也可以用来分析离线日志文件,即可以分析本身自己数据库的重作日志文件,也可以用来分析其他数据库的重作日志文件。总的说来,logminer工具的主要用途有:
 1.跟踪数据库的变化:可以离线的跟踪数据库的变化,而不会影响在线系统的性能。
 2. 回退数据库的变化:回退特定的变化数据,减少point-in-time recovery的执行。
 3.优化和扩容计划:可通过分析日志文件中的数据以分析数据增长模式。

logminer使用(利用logminer分析archive文件)

1.开启归档日志

alter system set db_recovery_file_dest_size = 10G;

alter system set db_recovery_file_dest = '/opt/oracle/oradata/recovery_area' scope=spfile; shutdown immediate;

startup mount;

alter database archivelog;

alter database open;

2.生成归档文件

BEGIN DBMS_LOGMNR_D.BUILD (options => DBMS_LOGMNR_D.STORE_IN_REDO_LOGS); END;

执行完成之后会在db_recovery_file_dest目录下生成一个arc文件

3.addlogfile

BEGIN sys.dbms_logmnr.add_logfile(LOGFILENAME => '/opt/oracle/oradata/recovery_area1/ORCL/archivelog/2021_10_09/o1_mf_1_4769_jp2hf24h_.arc', OPTIONS =>DBMS_LOGMNR.ADDFILE);END;

将生成的文件添加到logminer,可以通过sql查询:SELECT FILENAME AS NAME FROM V$LOGMNR_LOGS;

4.BEGIN sys.dbms_logmnr.start_logmnr();END; 启动logmnr

5.结束logminer: BEGIN SYS.DBMS_LOGMNR.END_LOGMNR(); END;

6.查询修改的表:

select * from v$logmnr_contents;表中的字段表示表的更改情况,会记录执行的sql,debezium就是利用v$logmnr_contents;的表解析sql获得cdc数据

oracle cdc 原理

1.kafka-connect会从connect-offsets中获取scn,然后根据scn获取archive和redo文件,然后根据logminer的原理加载数据到$Vcontain表中,通过jdbc读取contain表中的信息,最后根据表解析表中的信息获取redosql,通过redosql解析ddl,实现实时采集。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值