Oracle LogMiner详细讲解

2023-12-07 05:08
文章标签 oracle 讲解 详细 logminer

本文主要是介绍Oracle LogMiner详细讲解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一:相关概念

1.Logminer是什么?

   LogMiner是Oracle数据库提供的一个工具,它用于分析重做日志和归档日志所记载的事务操作。

   Logminer是oracle从8i开始提供的用于分析重做日志信息的工具,它包括DBMS_LOGMNR和DBMS_LOGMNR_D两个package,后边的D是字典的意思。它既能分析redo log file,也能分析归档后的archive log file。在分析日志的过程中需要使用数据字典,一般先生成数据字典文件后使用,10g版本还可以使用在线数据字典

   Logminer也可以分析其它数据库的重做日志文件,但是必须使用重做日志所在数据库的数据字典,否则会出现无法识别的乱码。另外被分析数据库的操作系统平台最好和当前Logminer所在数据库的运行平台一样,且block size相同

2.LogMiner的功能:

  1)确定数据库的逻辑损坏时间

   通过LogMiner可以准确定位该误操作的执行时间和SCN值,然后通过基于时间恢复或者基于SCN恢复可以完全恢复该表数据。

   SQL>selectscn_to_timestamp(10135546249879) from dual;
   SQL>SELECTtimestamp_to_scn(to_timestamp('2013-3-27 6:06:06','yyyy-mm-ddhh24:mi:ss')) FROM dual;

  2)确定事务级要执行的精细逻辑恢复操作

   通过LogMiner可以取得任何用户的DML操作及相应的UNDO操作,通过执行UNDO操作可以取消用户的错误操作。

  3)执行后续审计

   通过LogMiner可以跟踪Oracle数据库的所有DML、DDL和DCL操作,从而取得执行这些操作的时间顺序、执行这些操作的用户等信息。

3.LogMiner的安装方法:

 

 (1)创建DBMS_LOGMNR:@D:\app\wangxianwei\product\11.2.0\dbhome_1\RDBMS\ADMIN\dbmslm.sql

       Oracle <wbr>LogMiner用法详解

 (2)创建DBMS_LOGMNR_D:@D:\app\wangxianwei\product\11.2.0\dbhome_1\RDBMS\ADMIN\dbmslmd.sql

      Oracle <wbr>LogMiner用法详解
4.LogMiner不支持的数据类型和表存储属性

   bfile;
   抽象数据类型;
   集合类型(嵌套表和varray);
   参照对象;
   xmltype;
   具有LOB列的索引组织表;
   使用compress特征的表。
   除以上类型外,基本上都是支持的,不再列举

5.LogMiner的配置要求

   (1)源数据库和分析数据库必须运行在相同硬件平台上;

   (2)分析数据库可以是独立数据库或源数据库;

   (3)分析数据库的版本不能低于源数据库的版本;

   (4)分析数据库与源数据库必须具有相同的字符集;

6.注意事项

   (1)LogMiner字典必须在源数据库中生成

  (2)当分析多个重做日志和归档日志时,它们必须是同一个源数据库的重做日志和归档日志

   (3)当分析多个重做日志和归档日志时,它们必须具有相同的resetlogsscn

  (4)当分析的重做日志和归档日志必须在Oracle8.0版本以上

7.什么是补充日志,补充日志的作用是什么?

  重做日志用于实现例程恢复和介质恢复,这些操作所需要的数据被自动记录在重做日志中。但是,重做应用可能还需要记载其他列信息到重做日志中,记录其他列的日志过程被称为补充日志

  默认情况下,Oracle数据库没有提供任何补充日志,从而导致默认情况下LogMiner无法支持以下特征:

  (1)索引簇、链行和迁移行;

  (2)直接路径插入;

  (3)摘取LogMiner字典到重做日志;

  (4)跟踪DDL;

  (5)生成键列的SQL_REDO和SQL_UNDO信息;

  (6)LONG和LOB数据类型。

因此,为了充分利用LogMiner提供的特征,必须激活补充日志。在数据库级激活补充日志的示例如下:

   SQL>alter database add supplemental log data;

       数据库已更改。

注意:激活不用重启数据库,数据库联机即可。

二、LogMiner两种使用类型,一种是使用源数据库的数据字典分析DML操作,别一种是摘取LogMiner数据字典到字典文件分析DDL操作。

1.1使用源数据库的数据字典(Onlinecatalog)来分析DML操作

    在做实验之前,检查下suppplemental logging:

    SQL> SELECT SUPPLEMENTAL_LOG_DATA_MIN FROMV$DATABASE;

         SUPPLEME

          --------

           YES

    如果是YES 或者IMPLICIT则表明已经生效了,否则需要启动:

    SQL> ALTER DATABASE ADD SUPPLEMENTAL LOGDATA;

         Database altered.

1.2、建立日志分析列表:

添加要分析的日志文件 

SQL> execute

    dbms_logmnr.add_logfile(logfilename=>'日志文件',options=>dbms_logmnr.new);

继续添加

SQL>execute

    dbms_logmnr.add_logfile(logfilename=>'日志文件',options=>dbms_logmnr.addfile);   

   需要特别注意的是,继续添加OPTIONS选项是ADDFILE

移除分析日志文件

SQL> execute

    dbms_logmnr.remove_logfile(logfilename=>'日志文件');   

1.3、启动LogMiner

SQL> execute

    dbms_logmnr.start_logmnr(Options =>DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG)

1.4、查看日志分析结果

SQL> selectusername,scn,timestamp,sql_redo from v$logmnr_contents

1.5、结束LogMiner

SQL>dbms_logminer.end_logmnr;

2.摘取LogMiner字典到字典文件分析DDL操作

2.1、使用字典文件,请查看数据库是否配置utl_file_dir这个参数为字典文件的目录。配置该参数后,需要重启数据库

SQL> show parameter utl;

    NAME                                TYPE       VALUE                         

    ------------------------------------ -----------------------

    create_stored_outlines              string                                    

    utl_file_dir                        string                          

SQL> alter system setutl_file_dir='D:/oracle/logminer' scope=spfile;

    System altered.

    需要特别注意的是:修改此参数后需要重启数据库,切记!!!!

2.2、建立字典文件:

SQL> execute

    dbms_logmnr_d.build('文件名.ora','文件位置',dbms_logmnr_d.store_in_flat_file);

2.3、建立日志分析列表:

添加要分析的日志文件 

SQL> execute

    dbms_logmnr.add_logfile(logfilename=>'日志文件',options=>dbms_logmnr.new);

继续添加

SQL> execute

    dbms_logmnr.add_logfile(logfilename=>'日志文件',options=>dbms_logmnr.addfile);   

   需要特别注意的是,继续添加OPTIONS选项是ADDFILE

移除分析日志文件

SQL> execute

    dbms_logmnr.remove_logfile(logfilename=>'日志文件');   

2.4、启动LogMiner

SQL> execute

    dbms_logmnr.start_logmnr(

                              dictfilename=>'D:文件',

                              options=>dbms_logmnr.ddl_dict_tracking

                             );

2.5、查询分析日志结果:

SQL> selectusername,scn,timestamp,sql_redo from v$logmnr_contents;

    需要特别注意的是v$logmnr_contents内容保存了日志的内容,只在当前会话有效,

2.6、结束LogMiner

SQL> execute dbms_logmnr.end_logmnr;

   友情提示:DBMS_LOGMINER包中的方法及参数详见两个创建SQL

这篇关于Oracle LogMiner详细讲解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/464581

相关文章

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

Oracle 数据库数据操作如何精通 INSERT, UPDATE, DELETE

《Oracle数据库数据操作如何精通INSERT,UPDATE,DELETE》在Oracle数据库中,对表内数据进行增加、修改和删除操作是通过数据操作语言来完成的,下面给大家介绍Oracle数... 目录思维导图一、插入数据 (INSERT)1.1 插入单行数据,指定所有列的值语法:1.2 插入单行数据,指

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w