iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Oracle Logminer快速使用详解
  • 405
分享到

Oracle Logminer快速使用详解

2024-04-02 19:04:59 405人浏览 薄情痞子
摘要

目录一、Logminer是什么?二、Logminer快速使用三、Logminer的具体使用 1.配置Logminer2.使用Logminer3.Logminer字典4.指定

一、Logminer是什么?

LogMiner 是oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得Oracle 重做日志文件(归档日志文件)中的具体内容,LogMiner分析工具实际上是由一组PL/sql包和一些动态视图组成,它作为Oracle数据库的一部分来发布,是oracle公司提供的一个完全免费的工具。

具体的说: 对用户数据或数据库字典所做的所有更改都记录在Oracle重做日志文件RedoLog中,Logminer就是一个解析RedoLog的工具,通过Logminer解析RedoLog可以得到对应的SQL数据。

Oracle 中的RedoLog写入流程: Oracle重做日志采用循环写入的方式,每一个Oracle实例至少拥有2组日志组。Oracle重做日志一般由Oracle自动切换,重做日志文件在当LGWR进程停止写入并开始写入下一个日志组时发生切换,或在用户收到发出ALTER SYSTEM SWITCH LOGFILE时发生切换。如果Oracle数据库开启了归档功能,则在日志组发生切换的时候,上一个日志组的日志文件会被归档到归档目录里。

从上面可知 Oracle里的RedoLog文件分为两种:

  • 当前写的日志组的文件,可通过v$logv$logfile得到
  • 归档的redoLog文件,可通过 v$arcHived_log 得到

通过循环查找到最新符合要求的RedoLog并让Logminer加载分析,分析的数据在视图 v$logmnr_contents 里,通过读取 v$logmnr_contents 就可以得到 Oracle的实时数据。

二、Logminer快速使用

配置Logminer请参考Oracle配置LogMiner文档。


#1、准备测试数据(test用户)
SQL> conn test/123456
SQL> CREATE TABLE test(id varchar2(100));   
INSERT INTO test (id) values  ('000001');  
INSERT INTO test (id) values  ('000011');
commit;

说明:一下步骤皆在logminer_test用户下执行
#2、查看数据库当前联机日志文件
SQL>SELECT group#, sequence#, status, first_change#, first_time FROM V$log ORDER BY first_change#;
#发现只有redo001是当前状态。

#3、将需要解析的在线日志文件加入
SQL>exec dbms_logmnr.add_logfile('/home/oracle/app/oracle/oradata/orcl11g/redo01.log', dbms_logmnr.new);

#4、启动Logminer
SQL>
begin
SYS.DBMS_LOGMNR.START_LOGMNR (
options => SYS.DBMS_LOGMNR.skip_corruption + 
SYS.DBMS_LOGMNR.no_sql_delimiter + 
SYS.DBMS_LOGMNR.no_rowid_in_stmt + 
SYS.DBMS_LOGMNR.dict_from_online_catalog + 
SYS.DBMS_LOGMNR.string_literals_in_stmt 
);
end;
 
#5、查询重做日志
SQL>select * from V$LOGMNR_CONTENTS;

#6、停止Logminer
SQL>exec dbms_logmnr.end_logmnr;

三、Logminer的具体使用

 1.配置Logminer

请参考Oracle配置LogMiner文档。

2.使用Logminer

1.指定LogMiner字典。
2.指定重做日志文件列表以进行分析。 使用 DBMS_LOGMNR.ADD_LOGFILE 过程,或指示LogMiner在启动LogMiner时自动创建要分析的日志文件列表(在步骤3中)。
3.启动LogMiner。 使用 DBMS_LOGMNR.START_LOGMNR 程序。
4.请求感兴趣的重做数据。 查询V$LOGMNR_CONTENTS视图。(您必须具有SELECT ANY TRANSACTION查询此视图的权限)
5.结束LogMiner会话。 使用 DBMS_LOGMNR.END_LOGMNR程序。

3.Logminer字典

LogMiner字典作用

Oracle数据字典记录当前所有表的信息,字段的信息等等。LogMiner使用字典将内部对象标识符和数据类型转换为对象名称和外部数据格式。如果没有字典,LogMiner将返回内部对象ID,并将数据显示为二进制数


INSERT INTO HR.JOBS(JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY)  VALUES('IT_WT','Technical Writer', 4000, 11000);

没有字典,LogMiner将显示:


insert into "UNKNOWN"."OBJ# 45522"("COL 1","COL 2","COL 3","COL 4") values
(HEXTORAW('45465f4748'),HEXTORAW('546563686e6963616c20577269746572'),
HEXTORAW('c229'),HEXTORAW('c3020b'));

Logminer字典选项

LogMiner字典的选项支持三种:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R2CA7hWc-1633660733574)(Http://note.youdao.com/yws/res/612/WEBRESOURCEb0b3ba1b987bc083fc09c6dae89c77e2)]

4.指定Logminer重做日志文件

要启动新的重做日志文件列表,需要使用 DBMS_LOGMNR.NEW 以表明这是新列表的开始


EXECUTE DBMS_LOGMNR.ADD_LOGFILE( 
   LOGFILENAME => '/oracle/logs/log1.dbf',
   OPTIONS => DBMS_LOGMNR.NEW);

可以使用下列语句额外再添加日志文件


EXECUTE DBMS_LOGMNR.ADD_LOGFILE( 
   LOGFILENAME => '/oracle/logs/log2.dbf', 
   OPTIONS => DBMS_LOGMNR.ADDFILE);

5.启动LogMiner

使用 DBMS_LOGMNR.START_LOGMN 启动Logminer。可以指定参数:

指定LogMiner如何过滤返回的数据(例如,通过开始和结束时间或SCN值)

指定用于格式化LogMiner返回的数据的选项

指定要使用的LogMiner词典

主要的参数有:


   OPTIONS参数说明:
     * DBMS_LOGMNR.SKIP_CORRUPTION - 跳过出错的redlog
     * DBMS_LOGMNR.NO_SQL_DELIMITER - 不使用 ';'分割redo sql
     * DBMS_LOGMNR.NO_ROWID_IN_STMT - 默认情况下,用于UPDATE和DELETE操作的SQL_REDO和SQL_UNDO语句在where子句中包含“ ROWID =”。
     *                                但是,这对于想要重新执行SQL语句的应用程序是不方便的。设置此选项后,“ ROWID”不会放置在重构语句的末尾
     * DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG - 使用在线字典
     * DBMS_LOGMNR.CONTINUOUS_MINE - 需要在生成重做日志的同一实例中使用日志
     * DBMS_LOGMNR.COMMITTED_DATA_ONLY - 指定此选项时,LogMiner将属于同一事务的所有DML操作分组在一起。事务按提交顺序返回。
     * DBMS_LOGMNR.STRING_LITERALS_IN_STMT - 默认情况下,格式化格式化的SQL语句时,SQL_REDO和SQL_UNDO语句会使用数据库会话的NLS设置
     *                                       例如NLS_DATE_FORMAT,NLS_NUMERIC_CHARACTERS等)。使用此选项,将使用ANSI / ISO字符串文字格式

示例


EXECUTE DBMS_LOGMNR.START_LOGMNR( 
   STARTTIME => '01-Jan-2003 08:30:00', 
   ENDTIME => '01-Jan-2003 08:45:00', 
   OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + 
   DBMS_LOGMNR.CONTINUOUS_MINE);

6 在V$LOGMNR_CONTENTS中查询感兴趣的重做数据

Logminer会解析redoLog里的日志加载到 v L O G M N R C O N T E N T S 视 图 里 , 我 们 只 需 要 使 用 s q l 查 询 即 可 获 取 对 应 数 据 v LOGMNR_CONTENTS 视图里,我们只需要使用 sql查询 即可获取对应数据 v LOGMNRC​ONTENTS视图里,我们只需要使用sql查询即可获取对应数据vLOGMNR_CONTENTS视图相关字段 https://docs.oracle.com/cd/B19306_01/server.102/b14237/dynviews_1154.htm

主要字段有:

数据类型 描述
SCN NUMBER oracle为每个已提交的事务分配唯一的scn
OPERATION VARCHAR2(32) INSERT UPDATE DELETE DDL COMMIT ROLLBACK…
SEG_OWNER VARCHAR2(32) schema
TABLE_NAME VARCHAR2(32) 表名
TIMESTAMP DATE 数据库变动时间戳
SQL_REDO VARCHAR2(4000) 重建的SQL语句,该语句等效于进行更改的原始SQL语句

示例


SELECT
    scn,
    timestamp,
    operation,
    seg_owner,
    table_name,
    sql_redo,
    row_id,
    csf
FROM
    v$logmnr_contents
WHERE
    scn > ?

查询出来的数据示例:

到此这篇关于Oracle Logminer使用的文章就介绍到这了,更多相关Oracle Logminer内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Oracle Logminer快速使用详解

本文链接: https://www.lsjlt.com/news/137566.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle Logminer快速使用详解
    目录一、Logminer是什么?二、Logminer快速使用三、Logminer的具体使用 1.配置Logminer2.使用Logminer3.Logminer字典4.指定...
    99+
    2022-11-12
  • Oracle 日志挖掘(LogMiner)使用详解
    Logminer依赖于2个包:DBMS_LOGMNR和DBMS_LOGMNR_D,Oracle 11g默认已安装 Logminer 基本使用步骤 <1>. Specify a LogMiner ...
    99+
    2022-10-18
  • LogMiner如何在Oracle中使用
    这篇文章给大家介绍LogMiner如何在Oracle中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。LogMiner介绍LogMiner 是Oracle公司从产品8i以后提供的一个...
    99+
    2022-10-18
  • 快速使用node.js进行web开发详解
    首先关于node.js的学习,这里推荐一本比较好的教程,nodejs web开发指南,该书通俗易懂地将node.js语言特性讲解完之后,又从一个项目角度带领读者使用node.js学习web开发。相信这是一个...
    99+
    2022-06-04
    详解 快速 js
  • SpringBoot快速入门详解
    Spring Boot是什么? Spring Boot并不是什么新的框架,它是对Spring的缺点进行了改善和优化,Spring Boot默认了很多的框架使用方式,像maven整合了...
    99+
    2022-11-12
  • android websocket快速上手使用和详细讲解
    1、快速使用 项目中的使用,以github的开源库org.java-websocket:Java-WebSocket:1.3.8为例,并且封装了...
    99+
    2022-06-06
    websocket Android
  • SpringBoot整合Apollo配置中心快速使用详解
    目录一、简介二、使用1. 测试项目搭建2. Apollo配置中心的配置3. 项目启动与测试4.常见整合问题附录一、简介 1.Apollo 是什么?Apollo(阿波罗)是携程框架部门...
    99+
    2022-11-12
  • 使用cache加快编译速度的命令详解
    目录Ubuntu 安装ccache使用libzmq测试ccacheUbuntu 安装ccache sudo apt-get install ccache安装完后确认安装执行which...
    99+
    2022-11-13
  • Spring Boot Admin 快速入门详解
    目录1、介绍2、服务端搭建2.1 引入依赖2.2 添加注解2.3 进行测试2.4 测试结果3、客户端搭建3.1 引入依赖3.2 编写配置3.3 进行测试4、安全性4.1 添加依赖4....
    99+
    2022-11-12
  • python快速入门题目详解
    目录九九乘法表列表元组(不可变序列)集合字符串总结九九乘法表 for i in range(1,10): for j in range(1,i + 1): ...
    99+
    2022-11-12
  • JDBC最详讲解(快速入门)
    作者简介:大家好我是小唐同学(๑>؂小唐同学(๑>؂...
    99+
    2023-09-04
    java 数据库 mysql
  • hibernate4快速入门实例详解
    Hibernate是什么Hibernate是一个轻量级的ORMapping框架ORMapping原理(Object RelationalMapping)ORMapping基本对应规则:类跟表相对应类的属性跟表的字段相对应类的实例与表中具体的...
    99+
    2023-05-31
    hibernate4 入门 te
  • 如何使用MybatisPlus快速进行增删改查详解
    目录前言:1.数据库建表2.新建一个springboot项目(1)、引入相应的jar包(2)、快速启动项目3.springboot结合mybatisplus(1)、引入mybatis...
    99+
    2022-11-13
    mybatisplus增删改查实例 mybatisplus增删改查方法 mybatis增删改查项目
  • Java实现快速幂算法详解
    目录前言1. 暴力算法(fail)2. 优化取模运算(accept)3. 优化时间复杂度(accept)4. 优化 位运算(accept)前言 此算法偶尔会出现在笔试以及面试中,特意...
    99+
    2022-11-13
    Java实现快速幂算法 Java快速幂算法 Java快速幂
  • 快速了解AndroidRoom使用细则
    目录1、前言2、添加依赖2、Entity3、DAO4、Database5、获取DAO实例6、调用DAO方法7、使用步骤8、事务(Transaction)9、数据库迁移10、视图(Vi...
    99+
    2023-03-02
    Android Room使用 Android Room
  • 使用LogMiner分析oracle的redo日志和归档
      Oracle LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得Oracle 在线/归档日志文件中的具体内容,特别是该工具可以分析出所有...
    99+
    2022-10-18
  • 图文详解JAVA实现快速排序
    高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。 假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个...
    99+
    2022-11-12
  • 详解Java双轴快速排序算法
    目录一、前言二、回顾单轴快排三、双轴快排分析3.1、总体情况分析3.2、k交换过程3.3、收尾工作四、双轴快排代码一、前言 首选,双轴快排也是一种快排的优化方案,在JDK的Array...
    99+
    2022-11-12
  • java实现快速排序图文详解
    目录高快省的排序算法排序算法显神威总结高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。 假设我们现在对“6 1 ...
    99+
    2022-11-12
  • MybatisX 快速开发插件过程详解
    目录简介基础功能 1.xml跳转2.代码生成3.JPA提示和生成语句简介 MybatisX 是一款基于 IDEA 的快速开发插件,方便在使用mybatis以及mybatis...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作