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

被折叠的 条评论
为什么被折叠?



