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?那就不要错过这篇文章的更多相关文章

  1. 想让安卓app不再卡顿?看这篇文章就够了

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由likunhuang发表于云+社区专栏 实现背景 应用的使用流畅度,是衡量用户体验的重要标准之一.Android 由于机型配置和系统的 ...

  2. 想从事IT行业的你,一定看看这篇文章

    很多想从事IT行业的小伙伴都会问: 我该如何学习技术? 我应该选择什么样的方向来深入学习并以此来就业? 如何证明自己的技术很牛? 什么是程序员的核心竞争力? 如何成为一名优秀的工程师? 对于这些疑问, ...

  3. 1、图解Oracle Logminer配置使用

    LogMiner配置使用手册 1 Logminer简介 1.1 LogMiner介绍 Oracle LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻 ...

  4. 总结:基于Oracle Logminer数据同步

    第 1 页 共 20 页 出自石山园主,博客地址:http://www.cnblogs.com/shishanyuan LogMiner 配置使用手册 1 Logminer 简介 1.1 LogMin ...

  5. 4、总结:基于Oracle Logminer数据同步

    最近开发Oracle数据同步功能,做了些调研和验证,这个工作过去有段时间,怕时间长了忘记,故用博客共享出来.在这系列中共写了三篇文章,第一篇是写LogMiner配置及使用,第二篇是测试了LogMine ...

  6. 3、使用Oracle Logminer同步Demo

    使用Oracle Logminer同步Demo 1 Demo介绍 1.1 Demo设想 前面介绍了Oracle LogMiner配置使用以及使用LogMiner进行解析日志文件性能,在这篇文章中将利用 ...

  7. 2、Oracle Logminer性能测试

    Oracle Logminer性能测试 1 测试介绍 1.1 测试目的 通过模拟不同环境下LogMiner解析联机/归档日志文件运行情况,通过测试所获取的数据分析,通过对以下两点的验证来确定通过Log ...

  8. 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 ...

  9. 使用Oracle Logminer同步Demo

    使用Oracle Logminer同步Demo 1 Demo介绍 1.1 Demo设想 前面介绍了Oracle LogMiner配置使用以及使用LogMiner进行解析日志文件性能,在这篇文章中将利用 ...

随机推荐

  1. how to convert Map to Object in js

    how to convert Map to Object in js Map to Object just using the ES6 ways Object.fromEntries const lo ...

  2. koa response image

    koa response image koa.js v1.x generator *function v2.x Async/Await koajs/examples https://github.co ...

  3. WEB 使用lazysizes延迟加载图像

    原文 Native lazy-loading for the web Example <style> div { height: 3000px; } </style> < ...

  4. PAUL ADAMS ARCHITECT:澳大利亚楼市保持涨势

    澳大利亚最新房价变化显示,住宅价格指数连续第10周上涨,包括五个主要首府城市的上涨了0.29%. 12月截至24日,布里斯班以1.03%涨幅领跑,五个首府城市平均涨幅0.78%. 在过去3个月里,悉尼 ...

  5. 07.k近邻算法kNN

    1.将数据分为测试数据和预测数据 2.数据分为data和target,data是矩阵,target是向量 3.将每条data(向量)绘制在坐标系中,就得到了一系列的点 4.根据每条data的targe ...

  6. Linux文件/proc/net/tcp分析

    本文转载自Linux文件/proc/net/tcp分析 导语 /proc/net/tcp文件提供了tcp的连接信息,是由net/ipv4/tcp_ipv4.c中的tcp4_seq_show()实现信息 ...

  7. 用一次就会爱上的cli工具开发

    本文转载自用一次就会爱上的cli工具开发 写在前面 最近接手任务--使用nodejs开发一个公司内部使用的cli工具,简而言之就是输入一行命令快速搭建好项目结构,也可以通过不同的命令引入不同的文件. ...

  8. 开源OA办公系统的“应用市场”,能够为协同办公开拓什么样的“前路”?

    在我们的日常生活中,应用市场这个词,总是与智能手机划上等号,不管使用的是iPhone还是安卓,总会接触到手机上的APP应用市场,我们可以在应用市场中,选择自己所需要的APP应用软件,下载使用后,可以让 ...

  9. 在 2021 年你需要掌握的 7 种关于 JavaScript 的数组方法

    在新的一年我们学习这些有用的方法 JavaScript 为我们提供了许多处理数组的不同方法.我们将在几分钟内为您介绍 7 个基本且常用的数据方法,以提高您的 JS 开发技能. 1. Array.map ...

  10. Linux进程管理工具Supervisor的安装配置

    目录 Linux进程管理工具Supervisor的安装配置 简介 安装Python包管理工具 安装Supervisor 配置 配置文件参数说明 配置进程管理 启动supervisor 控制进程 交互终 ...