想了解FlinkX-Oracle Logminer?那就不要错过这篇文章
FlinkX-Oracle Logminer模块是FlinkX基于Logminer对Oracle重做日志进行实时采集分析,可对Oracle进行实时同步也可以通过指定SCN或者时间戳从某个节点进行同步,同时通过记录SCN号支持续跑功能。
一、Logminer介绍与使用
Logminer是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得Oracle重做日志文件(归档日志文件)中的具体内容,Logminer分析工具实际上是由一组PL/SQL包和一些动态视图组成,它作为Oracle数据库的一部分来发布,是Oracle公司提供的一个完全免费的工具。
Logminer读取重做日志文件的内容并加载到视图v$logmnr_contents中,可通过SQL对视图v$logmnr_contents 读取获取到实时数据。
1、Oracle重做日志
Oracle的重做日志分为在线重做日志和归档重做日志。
Online Redo log files--在线重做日志,又称联机重做日志,指Oracle以SQL脚本的形式实时记录数据库的数据更新,换句话说,实时保存已执行的SQL脚本到在线日志文件中(按特定的格式)。
Archive Redo log files--归档重做日志,简称归档日志,指当条件满足时,Oracle将在线重做日志以文件形式保存到硬盘(持久化)。
2、补充日志
补充日志不是独立的一种日志,为了性能考虑,在Update时,重做日志默认只记录更改字段的前后值,而开启了补充日志后,会将更新前后的所有字段的值记录。
3、Oracle重做日志写入流程
Oracle重做日志采用循环写入的方式,每一个Oracle实例至少拥有2组日志组。
Oracle重做日志一般由Oracle自动切换,重做日志文件在当LGWR进程停止写入并开始写入下一个日志组时发生切换,或在用户收到发出ALTER SYSTEM SWITCH LOGFILE时发生切换。如果Oracle数据库开启了归档功能,则在日志组发生切换的时候,上一个日志组的日志文件会被归档到归档目录里。
4、Logminer字典
Oracle数据字典记录当前所有表的信息,字段的信息等等。Logminer使用字典将内部对象标识符和数据类型转换为对象名称和外部数据格式。如果没有字典,Logminer将返回内部对象ID,并将数据显示为二进制数。
对于下面的Insert语句

没有设置字典显示的内容为:

Logminer提供了三种字典选项:
- Using the Online Catalog
- Extracting a Logminer Dictionary to the Redo Log Files
- Extracting the Logminer Dictionary to a Flat File
FlinkX使用的是Online Catalog
5、Logminer 使用步骤
第一步:为Logminer增加日志文件
第二步:开启Logminer
第三步:读取数据

查出的数据格式如下图所示:

二、FlinkX和Logminer集成
1、Logminer模块流程解析
Logminer模块主要分为三部分
- 日志文件查找:
查询在线日志与归档日志
- 日志文件加载及开启Logminer
将日志文件加载到Logminer中,Logminer会将日志文件内容转化到v$logmnr_contents视图里
- 数据查询与解析
根据过滤条件,查询v$logmnr_contents数据,获得数据,并对sql_redo字段内容进行解析

2、日志文件的查找
Logminer通过加载重做日志文件,将其中的内容根据字典转化到v$logmnr_contents中,因此第一步为Logminer找到需要加载的重做日志文件
Oracle 重做日志文件分为在线重做日志和归档重做日志,其中在线重做日志可以在v$log以及v$logfile中查询到,而归档重做日志可以在v$archived_log查找到,一般是通过scn号进行查询过滤。

3、日志文件的加载与开启
将日志文件加载到Logminer中,并开启Logminer
Logminer第一次添加日志
SYS.DBMS_LOGMNR.add_logfile(l_log_rec.name, SYS.DBMS_LOGMNR.new)
Logminer后续添加日志
SYS.DBMS_LOGMNR.add_logfile(l_log_rec.name)
开启Logminer


4、查找数据
Logminer会将加载的日志文件内容输出到视图v$logmnr_contents里,只需要按照一定的过滤条件查找到自己想要监听的数据即可。目前仅支持表名以及对应的动作(update/delete/insert)进行过滤。

三、Logminer实战示例
Logminer->hive脚本

本文作者:杨槐(花名:渡劫)袋鼠云大数据开发工程师,负责FLinkx的开发与维护。
本文首发于:数栈研习社
我们在github上还有关于FlinkX的开源项目,欢迎大家给我们点个star~
想了解FlinkX-Oracle Logminer?那就不要错过这篇文章的更多相关文章
- 想让安卓app不再卡顿?看这篇文章就够了
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由likunhuang发表于云+社区专栏 实现背景 应用的使用流畅度,是衡量用户体验的重要标准之一.Android 由于机型配置和系统的 ...
- 想从事IT行业的你,一定看看这篇文章
很多想从事IT行业的小伙伴都会问: 我该如何学习技术? 我应该选择什么样的方向来深入学习并以此来就业? 如何证明自己的技术很牛? 什么是程序员的核心竞争力? 如何成为一名优秀的工程师? 对于这些疑问, ...
- 1、图解Oracle Logminer配置使用
LogMiner配置使用手册 1 Logminer简介 1.1 LogMiner介绍 Oracle LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻 ...
- 总结:基于Oracle Logminer数据同步
第 1 页 共 20 页 出自石山园主,博客地址:http://www.cnblogs.com/shishanyuan LogMiner 配置使用手册 1 Logminer 简介 1.1 LogMin ...
- 4、总结:基于Oracle Logminer数据同步
最近开发Oracle数据同步功能,做了些调研和验证,这个工作过去有段时间,怕时间长了忘记,故用博客共享出来.在这系列中共写了三篇文章,第一篇是写LogMiner配置及使用,第二篇是测试了LogMine ...
- 3、使用Oracle Logminer同步Demo
使用Oracle Logminer同步Demo 1 Demo介绍 1.1 Demo设想 前面介绍了Oracle LogMiner配置使用以及使用LogMiner进行解析日志文件性能,在这篇文章中将利用 ...
- 2、Oracle Logminer性能测试
Oracle Logminer性能测试 1 测试介绍 1.1 测试目的 通过模拟不同环境下LogMiner解析联机/归档日志文件运行情况,通过测试所获取的数据分析,通过对以下两点的验证来确定通过Log ...
- Oracle logminer 分析redo log(TOAD与PLSQL)
Oracle logminer 分析redo log Oracle 11g r2 RAC centos 6.5 设置时间格式 select to_char(sysdate,'yyyy-mm-dd hh ...
- 使用Oracle Logminer同步Demo
使用Oracle Logminer同步Demo 1 Demo介绍 1.1 Demo设想 前面介绍了Oracle LogMiner配置使用以及使用LogMiner进行解析日志文件性能,在这篇文章中将利用 ...
随机推荐
- Roman Numerals All In One
Roman Numerals All In One 罗马数字 refs https://www.mathsisfun.com/roman-numerals.html https://www.maths ...
- React Native & Fast Refresh
React Native & Fast Refresh 0.61 https://reactnative.dev/blog/2019/09/18/version-0.61/ Fast Refr ...
- JavaScript Learning Paths(ES5/ES6/ES-Next)
JavaScript Learning Paths(ES5/ES6/ES-Next) JavaScript Expert refs https://developer.mozilla.org/en-U ...
- js repeatify & no for loop
js repeatify & no for loop js repeatify https://www.sitepoint.com/5-typical-javascript-interview ...
- NGK.IO的智能合约是炒作还是未来商业的主流?
随着NGK主网的上线,NGK市场也备受关注.目前,NGK代币价格已经由初始价格0.0215美元涨到现在的0.86美元,代币价格上涨40倍!数字货币市场也已经将重点目光放到了NGK代币上,相信在不久的将 ...
- Go之Casbin简介,安装,模型,存储,函数
简介 Casbin是一个强大的,高效的开源访问控制框架,其权限管理机制支持多种访问控制模型 支持编程语言 不同语言中支持的特性 我们一直致力于让 Casbin 在不同的编程语言中拥有相同的特性. 但是 ...
- vue最好的ssr服务器渲染框架
vue和angular js.react三大框架非常好用,现在大部分人都使用了这三大框架进行开发. 但是vue这些框架到目前位置,大部分还是用来做管理后台,用来做移动端.而官网网站却很少用他们来开发. ...
- go-admin在线开发平台学习-4[细节解析]
紧接着上一期的内容,继续对go-admin的一些细节进行解析. 通用的增删改查方法 在go-admin/common/actions下封装了通用的增删改查方法.在对这些方法进行说明前,先移步到另一个文 ...
- JavaScript中判断对象是否属于Array类型的4种方法及其背后的原理与局限性
前言 毫无疑问,Array.isArray是现如今JavaScript中判断对象是否属于Array类型的首选,但是我认为了解本文其余的方法及其背后的原理与局限性也是很有必要的,因为在JavaScrip ...
- JUnit5学习之三:Assertions类
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...