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,实现实时采集。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐