Oracle数据库日志查看工具LogMiner的使用详解

合集下载

深入分析Oracle数据库日志文件

深入分析Oracle数据库日志文件

作为Oracle DBA,我们有时候需要追踪数据误删除或用户的恶意操作情况,此时我们不仅需要查出执行这些操作的数据库账号,还需要知道操作是由哪台客户端(IP地址等)发出的。

针对这些问题,一个最有效实用而又低成本的方法就是分析Oracle数据库的日志文件。

本文将就Oracle日志分析技术做深入探讨。

一、如何分析即LogMiner解释从目前来看,分析Oracle日志的唯一方法就是使用Oracle公司提供的LogMiner来进行,Oracle数据库的所有更改都记录在日志中,但是原始的日志信息我们根本无法看懂,而LogMiner就是让我们看懂日志信息的工具。

从这一点上看,它和tkprof差不多,一个是用来分析日志信息,一个则是格式化跟踪文件。

通过对日志的分析我们可以实现下面的目的:1、查明数据库的逻辑更改;2、侦察并更正用户的误操作;3、执行事后审计;4、执行变化分析。

不仅如此,日志中记录的信息还包括:数据库的更改历史、更改类型(INSERT、UPDATE、DELETE、DDL等)、更改对应的SCN号、以及执行这些操作的用户信息等,LogMiner在分析日志时,将重构等价的SQL语句和UNDO语句(分别记录在V$LOGMNR_CONTENTS视图的SQL_REDO和SQL_UNDO中)。

这里需要注意的是等价语句,而并非原始SQL语句,例如:我们最初执行的是“delete a where c1 <>'cyx';”,而LogMiner重构的是等价的6条DELETE语句。

所以我们应该意识到V$LOGMNR_CONTENTS视图中显示的并非是原版的现实,从数据库角度来讲这是很容易理解的,它记录的是元操作,因为同样是“delete a where c1 <>'cyx';”语句,在不同的环境中,实际删除的记录数可能各不相同,因此记录这样的语句实际上并没有什么实际意义,LogMiner重构的是在实际情况下转化成元操作的多个单条语句。

oracle裸日志解析

oracle裸日志解析

oracle裸日志解析Oracle数据库的裸日志是一种二进制格式的日志文件,记录着数据库的各种操作和事件。

对于数据库管理员和开发人员来说,解析裸日志是非常重要的,因为它可以帮助我们了解数据库中发生的变化和事件。

裸日志包含了许多不同类型的记录,比如DDL操作、DML操作、错误信息、事务信息等等。

解析裸日志可以帮助我们详细了解数据库的运行情况,以及诊断和解决一些数据库问题。

一种常见的解析裸日志的方法是使用Oracle的LogMiner工具。

LogMiner是Oracle提供的一种用于解析和查看裸日志的工具。

使用LogMiner,我们可以将裸日志加载到数据库中,并使用SQL查询来分析和提取我们需要的信息。

以下是使用LogMiner解析裸日志的一般步骤:1. 创建LogMiner会话:使用SQL命令创建一个LogMiner 会话,指定我们要解析的裸日志文件的路径和名称。

2. 添加日志文件:将裸日志文件添加到LogMiner会话中,以便进行解析。

3. 开始会话:开始LogMiner会话,这将使LogMiner准备好解析和查看日志文件。

4. 查询日志:使用SQL查询在LogMiner会话中查询裸日志,以获取所需的信息。

可以使用各种过滤条件,比如时间范围、表名称等。

5. 结束会话:当完成对裸日志的解析和查询后,可以结束LogMiner会话。

除了使用LogMiner,还可以使用第三方的工具和脚本来解析裸日志。

这些工具和脚本通常提供更多的功能和灵活性,使裸日志的解析更加容易和高效。

解析Oracle的裸日志对于了解数据库的操作和事件非常重要。

LogMiner是一种常见的解析裸日志的工具,但也可以使用其他工具和脚本来实现。

无论采用哪种方法,合理利用裸日志的信息可以帮助数据库管理员和开发人员更好地管理和优化数据库。

用logminer分析redolog文件

用logminer分析redolog文件
SESSION_INFO: 操作sql语句的会话信息
OPERATION: 操作类型,如:INSERT,UPDATE, DELETE...
SQL_REDO: 记录在redo中的sql语句详细信息
注意:1、 oracle参数disk_asynch_io设置为faulse
2、oracle环境参数要更改:
$ulimit -a
sql> EXECUTE DBMS_LOGMNR_D.BUILD(dictionary_filename=>'dictionary.ora',dictionary_location=>'e:\zwm');
example:
sql> EXECUTE DBMS_LOGMNR_D.BUILD(dictionary_filename=>'kxb.ora',dictionary_location=>'/oracle/ssn');
SQL_UNDO: 记录在redo中sql语句的反向详细信息
五. 查询redo日志文件内容
1. 查询redo日志文件中,有那些用户在操作这些sql语句
SQL> SELECT MIN(USERNAME),MIN(SEG_OWNER) FROM V$LOGMNR_CONTENTS GROUP BY USERNAME,SEG_OWNER;
2. 分别查询这些用户在redo日志文件中的工作量
A. 检查用户在redo日志文件中INSERT操作的工作量
SQL> SELECT OPERATION,MIN(DATA_BLK#)
FROM V$LOGMNR_CONTENTS

ORACLE数据库LOGMINER步骤及DROP后的表如何LOGMINER

ORACLE数据库LOGMINER步骤及DROP后的表如何LOGMINER

ORACLE LOGMINER 步骤及DROP后的表如何LOGMINER编制许能飞,谭丽审核吴劲松批准王剑虎上海宝信软件股份有限公司2006年06月01日文档控制修改历史:日期作者或修改人版本号版本描述(修改记录)2005-04-04 许能飞,谭丽V1.0 没有前期版本2006-05-25 许能飞2006-06-01 许能飞分发记录:拷贝号姓名部门目录一、数据库LOGMINER分析步骤 (2)二、补充DROP 后的表如何LOGMINER (3)一、数据库LOGMINER分析步骤最近一钢开发数据库发现有相互之间改数据,但又不知道是谁的事情,为此ORACLE提供LOGMINER 可供分析,具体步骤为:1.set UTL_FILE_DIR = /oracle/logminer in initfile //* 或者设得和ARCIVE LOG的目录一样也可以2.build dictionary.ora file:EXECUTE DBMS_LOGMNR_D.BUILD( DICTIONARY_FILENAME =>'dictionary.ora', DICTIONARY_LOCATION => '/oracle/logminer');// *已经做了;记得RAC 要以单机板开起BUILD3.COPY 要分析的ARCHIVE LOG 到/ORACLE/LOGMINER 目录4.加进去要分析的LOG:EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME => '/oracle/logminer/LOG_242_T1.arc',OPTIONS => DBMS_LOGMNR.NEW); //first oneEXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME => '/oracle/logminer/LOG_242_T1.arc',OPTIONS => DBMS_LOGMNR.addfile); //add from second log file5.开始分析:EXECUTE DBMS_LOGMNR.START_LOGMNR(DICTFILENAME => '/oracle/logminer/dictionary.ora',STARTTIME => TO_DATE('25-Jun-2003 9:10:00', 'DD-MON-YYYY HH24:MI:SS'),ENDTIME => TO_DATE('30-Jun-2003 10:55:00', 'DD-MON-YYYY HH24:MI:SS'));OR:Execute DBMS_LOGMNR.START_LOGMNR(DICTFILENAME =>'/oracle/logminer/dictionary.ora');6.从分析结果读取你感兴趣的内容:如:select username ,to_char(timestamp,'dd-mon-yyyyhh24:mi:ss'),operation,sql_UNdo,sql_redo from SYS.V$LOGMNR_CONTENTSwhere seg_name='DTWPC1';注: STEP 4,STEP5,STEP6 要在同一个SESSION里.平时只要做STEP3,STEP4,STEP5,STEP6,STEP1、2 只要做一次。

LogMiner工具使用说明

LogMiner工具使用说明

LogMiner工具使用说明一、logminer的用途日志文件中存放着所有进行数据库恢复的数据,记录了针对数据库结构的每一个变化,也就是对数据库操作的所有DML语句.logminer工具即可以用来分析在线,也可以用来分析离线日志文件,即可以分析本身自己数据库的重作日志文件,也可以用来分析其他数据库的重作日志文件。

总的说来,logminer工具的主要用途有:1. 跟踪数据库的变化:可以离线的跟踪数据库的变化,而不会影响在线系统的性能。

2。

回退数据库的变化:回退特定的变化数据,减少point—in—time recovery的执行。

3。

优化和扩容计划:可通过分析日志文件中的数据以分析数据增长模式。

二、安装logminer要安装logminer工具,必须首先要运行下面这样两个脚本,l、$ORACLE_HOME/rdbms/admin/dbmslm。

sql2、$ORACLE_HOME/rdbms/admin/dbmslmd.sql3、$ORACLE_HOME/rdbms/admin/dbmslms.sql这两个脚本必须均以SYS用户身份运行。

其中第一个脚本用来创建DBMS_LOGMNR 包,该包用来分析日志文件。

第二个脚本用来创建DBMS_LOGMNR_D包,该包用来创建数据字典文件。

三、使用logminer工具下面将详细介绍如何使用logminer工具.1、创建数据字典文件(data—dictionary)前面已经谈到,logminer工具实际上是由两个新的PL/SQL内建包(DBMS_LOGMNR和DBMS_ LOGMNR_D)和四个V$动态性能视图(视图是在利用过程DBMS_LOGMNR.START_LOGMNR启动logminer时创建)组成.在使用logminer工具分析redo log文件之前,必须使用DBMS_LOGMNR_D 包将数据字典导出为一个文本文件。

该字典文件是可选的,但是如果没有它,logminer解释出来的语句中关于数据字典中的部分(如表名、列名等)和数值都将是16进制的形式,我们是无法直接理解的。

logminer用法

logminer用法

logminer用法
摘要:
1.logminer 简介
2.logminer 的基本用法
3.logminer 的高级用法
4.logminer 的示例
正文:
【1.logminer 简介】
logminer 是一个开源的日志分析工具,可以帮助用户对日志文件进行高效的分析和处理。

它支持多种常见的日志格式,如syslog、rsyslog、log4j 等,并提供了丰富的配置选项,使得用户可以灵活地定制分析规则。

【2.logminer 的基本用法】
logminer 的基本用法主要包括以下几个步骤:
(1)安装logminer:用户可以根据自己的操作系统选择相应的安装包进行安装。

(2)配置logminer:安装完成后,用户需要创建一个配置文件,指定日志文件的路径、日志格式以及分析规则等。

(3)运行logminer:用户可以通过命令行或图形界面启动logminer,开始对日志文件进行分析。

【3.logminer 的高级用法】
除了基本的分析功能外,logminer 还提供了一些高级用法,如:
(1)自定义分析规则:用户可以根据自己的需求,编写自定义的分析规则,以满足不同的分析需求。

(2)实时监控:logminer 可以实时监控日志文件的变化,并及时进行分析。

(3)日志导出:logminer 支持将分析结果导出为常见的数据格式,如CSV、Excel 等。

Oracle DBA的后悔药——Logminer技术简介

Oracle DBA的后悔药——Logminer技术简介
关键词 : 据库 ; 数 日志挖 掘 : 据 恢复 数
中图 分 类号 : P 1 T 31
文献标识码: A
文章 编 号 :0 9 3 4 (0 10 — 5 7 0 1 0 - 0 42 1 )7 10 — 4
随着 信 息 技 术 的发 展 , 信息 量 也 出 现 了爆 炸 式 的 增 长 。 这 些 信 息 的 组 织 、 储 就 变 得 越 来 越 重要 了 。在 过 去 的 几 十 年 , 存 甲骨 文 (rc ) 司 的数 据 库产 品 , O al 公 e 占据 了最 大 的 市场 份 额 , 为 各 行 各 业 信 息存 储 最 常 用 的 数 据 库 。 就 笔者 所 在 的 电信 企 业 来 讲 , 核 心 成 从 数 据库 到 边 缘 数据 库 , rc O al 品 的 占有 率 达 到 8%以 上 。 e产 0 O al 数 据 库 是 一个 功 能 强 大 的产 品 。 rc e 由于 数 据库 产 品本 身 就 是 为所 有 相 关 人员 提 供 信 息 的 一个 产 品 , 因此 很 多人 都会 有 各 种 权 限 的数 据库 账 户 。权 限管 理 的任 何 漏 洞 、 何人 为 的操 作 失 误 , 有 可 能会 对 数 据 库 内 信息 造 成 不 可恢 复 的损 失 。 为保 障 O al 任 都 rc e 数 据 库 内数 据 的安 全 , 甲骨 文 公 司 在 设 计 O al 数 据 库 时 。 提供 了很 多机 制 , rce 就 比如 审 计 、 粒 度 审 计 、 回 ( 闪 回查 询 、 回表 、 细 闪 含 闪 闪 回数 据 库 等 ) 日志 挖 掘工 具 (om nr等 。 这其 中 ,om nr 历 史 最 悠 久 的功 能 强 大 、 活 的操 作 历 史 记 录查 看 工 具 , 称 O - 、 L g ie) L g ie 是 灵 堪 r al c e数据 库 的“ 悔 药 ” 后 。 ‘

Oracle 启动LogMiner

Oracle  启动LogMiner

Oracle 启动LogMiner在为LogMiner创建了字典文件,并且指定了要分析的重做日志文件列表后,就可以启动LogMiner开始分析日志文件了。

执行DBMS_LOGMNR.START_LOGMNR过程将启动LogMiner。

启动LogMiner非常方便,只需要执行DBMS_LOGMNR.START_LOGMNR过程即可。

在执行该过程时,需要为参数DICTFILENAME中指定一个已经建立的字典文件。

例如,下面的语句在执行DBMS_LOGMNR.START_LOGMNR过程时,指定了前面所创建的字典文件e:\orcldata\logminer\sqltrace.ora:SQL> execute dbms_logmnr.start_logmnr(dictfilename=>'e:\orcldata\logminer\sqltrace.ora');PL/SQL 过程已成功完成。

如果不指定字典文件,那么生成的分析结果中将使用Oracle内部的对象标识和数据格式,这些数据的可读性非常差。

指定字典文件后,Oracle会将内部对象标识和数据类型转换为用户可读的对象名称和外部数据格式。

另外,如果在执行DBMS_LOGMNR.START_LOGMNR过程时没有指定其他参数,则在分析的结果中将包含重做日志文件的所有内容。

因此,DBA可以在启动LogMiner时,为其限定要分析的范围。

DBMS_LOGMNR.START_LOGMNR过程提供了基于分析日志时间和SCN号的参数,它们分别是:表示分析的起始/结束SCN号的STARTSCN/ENDSCN;表示分析的起始/结束时间的STARTTIME/ENDTIME。

例如,下面的语句在执行DBMS_LOGMNR.START_LOGMNR过程时,将过滤2008年5月1日以前的数据。

execute dbms_logmnr.start_logmnr(dictfilename=>'e:\orcldata\logminer\sqltrace.ora',starttime=>to_date('2008/05/01 01:00:00','yyyy/mm/dd hh:mi:ss'),endtime=>to_date('2008/05/10 10:30:00',' yyyy/mm/dd hh:mi:ss '));在使用SCN号了限定分析范围时,必须明确地知道事务的SCN范围,这通常可以从重做日志的基本信息中获取。

ORACLE日志LOGMINER安装和使用

ORACLE日志LOGMINER安装和使用

Connected to Oracle Database10g Enterprise Edition Release10.1.0.2.0 Connected as SYS一、如何使用logminer首先安装logminer的两个包:以sys用户运行这两个脚本:dbmslm.sql、dbmslmd.sql,第一个脚本用来创建dbms_logmnr包,第二个用来创建dbms_logmnr_d包,该包用来创建数据字典文件。

SQL>conn sys/tdt as sysdbaConnected to Oracle Database10g Enterprise Edition Release10.1.0.2.0 Connected as SYSSQL>conn sys/tdt as sysdba;Connected to Oracle Database10g Enterprise Edition Release10.1.0.2.0 Connected as SYSSQL>@dbmslm.sql;Error reading fileSQL>@D:\oracle\product\10.1.0\Db_2\RDBMS\ADMIN\dbmslm.sqlPackage createdGrant succeededSQL>@D:\oracle\product\10.1.0\Db_2\RDBMS\ADMIN\dbmslmd.sqlSession alteredPL/SQL procedure successfully completedSession alteredPackage created[在Oracle安装目录上搜索“dbmslm.sql”,找到后将其完整的物理路径拷贝过来,果然执行成功。

可能oracle版本不一样,文件所在的目录也不大一样,仿照网上的资料,还要学会变通啊,哈哈!]SQL>alter database add supplemental log data;Database altered二、创建数据字典文件数据字典文件是一个文本文件,由dbms_logmnr_d来创建。

浅谈Oracle日志分析工具LogMiner

浅谈Oracle日志分析工具LogMiner

3 . 6
D M O M R S A T L  ̄I B S L G N . T R O R(” , ’, p i n = D M O G ’ o t o s >B S LG
MRDC RMOLN AAO) N , I T F O N IE C T L G 需要注意,此操作要求数据 库必须处于打 开状态 ,并且该方法只 能用户跟踪 D L操作 , M
(” , ’’,pin=D 1 ot0s>B 0 DSOE I EOLG) .TR NRD OS
( )总 结 四
利用 L g ie 工 具对 日志文件进行分析,能帮助数据库 oMnr 管理 员实时掌握用户对数据库的更新操作 ,一旦用户操作出 现错误 ,管理员能够执行用户操作 的反操作 ,从而将数据库 还 原 到 修 改 前 的 状态 。 【 考文献】 参
3 使用源数据库数据字典:为 了使 LG i e . O M n r使h ma K t 著 . al i 0 编程 艺术【 . 3 ]T o s ye Or e &1g c9 M】 北京: 民邮电 人
出版 社 .0 6 1 2 0 ..
【 收稿 日期 】2 1— 3 1 00 0— 2 【 作者简介 】冯军 ( 96 ) 17 一 ,男,江 苏人 ,供 职于新疆 生产建设兵 团电视 台,研 究方向为数据库技术及应 用。
不 能 跟踪 D L操 作 。 D
步骤 2 建立 日志分析列表 :日志分析列表用于指定要分 , 析的重做 日志文件或归档 日志文件 ,需要注意 ,将第一个 日 志文 件添加到 日志分析 列表 时,必须使用 d m — o  ̄ rN I b s l gn . Er 选项 ;当增加其他 日志文件时 ,使用 D M _ o  ̄ R AI IE B S L g N .D) L F

oracle日志查看工具logminer

oracle日志查看工具logminer

Oracle所有的DDL,DML操作都会记录到日志文件中,日志文件直接打开我们是不能够看懂的,oracle提供了logminer来查看日志下面我们来配置logminer1、首先要知道日志文件的位置Select * from v$logfile; ------查看日志路径和名字如果使用了ASM自动存储管理,查询类似如下SQL> select member from v$logfile;MEMBER--------------------------------------------------------------------------------+DA TA/tim/onlinelog/group_3.263.742828937+DA TA/tim/onlinelog/group_2.262.742828935+DA TA/tim/onlinelog/group_1.261.742828935如果没有使用ASM自动存储管理SQL > select member from v$logfile;2、指定utl_file_dirSQL> alter system set utl_file_dir=’/opt/oracle/logs’scope=spfile;其中/opt/oracle/logs目录的用户和属组必须是oracle通过chown root:root /opt/oracle/logs命令来修改3、重启一下oracleShutdown immediate;startup4、查看一下spfile参数文件中是否已经有utl_file_dir查看参数文件位置SQL >Show parameter spfile;NAME TYPE V ALUE------------------------------------ ----------- ------------------------------spfile string /opt/oracle/product/10.2.0/db_1/dbs/spfiletim.ora Spfile参数文件是二进制文件,不能使用vi编译,但是可以通过cat 查看Cat /opt/oracle/product/10.2.0/db_1/dbs/spfiletim.ora5、创建数据字段文件executedbms_logmnr_d.build(dictionary_filename=>’dict.dat’,dictionary_location=>’/opt/oracle/logs’);其中dictionary_location参数就是指定的utl_file_dir的值6、添加日志列表把日志文件加入到logmnr中Executedbms_logmnr.add_logfile(options=>dbms_logmnr.new,logfilename=>’/opt/oracle/redo01.log’);Executedbms_logmnr.add_logfile(options=>dbms_logmnr.new,logfilename=>’/opt/oracle/redo02.log’);Executedbms_logmnr.add_logfile(options=>dbms_logmnr.new,logfilename=>’/opt/oracle/redo03.log’);添加日志文件每次加一个,Logfilename参数就是最上面用v$logfile查询获得的7、启动logminer分析方法一、无条件限制EXECUTE dbms_logmnr.start_logmnr(DictFileName=>'/opt/oracle/logs/dict.dat ');方法二:条件限制SQL> EXECUTE dbms_logmnr.start_logmnr(DictFileName => ' /data1/oracle/logs/ v816dict.ora ',StartTime => to_date('2007-9-18 00:00:00','YYYY-MM-DD HH24:MI:SS')EndTime => to_date(''2007-9-18 23:59:59','YYYY-MM-DD HH24:MI:SS '));通过设置起始时间和终止时间参数我们可以限制只分析某一时间范围的日志8、查看分析结果Logminer的分析结果都保存到v$logmnr_contents动态性能视图中Select * from v$logmnr_contents;需要强调一点的是,视图v$logmnr_contents中的分析结果仅在我们运行过程'dbms_logmrn.start_logmnr'这个会话的生命期中存在。

LogMiner介绍及在CDC中的应用.x

LogMiner介绍及在CDC中的应用.x

LogMiner简介及在CDC工具中的应用目录LogMiner简介及在CDC工具中的应用 (1)1. 什么是LogMiner (2)2. LogMiner的主要用途 (2)3. 使用LogMiner需要数据库开启归档模式 (2)3.1. 以dba身份登录 (2)3.2. 查询当前日志归档状态 (3)3.3. 关闭运行的数据库实例 (3)3.4. 启动数据库实例到mount 状态,但不要打开 (3)3.5. 设置数据库为归档日志模式 (3)3.6. 打开数据库 (3)3.7. 确认数据库是否处于日志归档模式 (4)3.8. 打开附加日志 (4)4. LogMiner用到的过程和视图 (4)4.1. 过程 (4)5. 分析日志过程 (5)5.1. 测试数据准备 (5)5.2. 使用LogMiner进行分析 (5)5.3. 观察分析的结果 (6)5.4. 调用停止分析的存储过程 (8)6. 在CDC工具中的使用 (8)6.1. LogMiner是在CDC中的运用模块(生产引擎) (8)6.2. 如何确定挖掘的区间 (9)6.3. 挖掘结果查询如何过滤 (9)6.4. 向MQ发送的消息的消息内容是什么 (9)1.什么是LogMinerOracle LogMiner是Oracle公司在8i之后推出的日志(在线日志和归档日志)的分析工具,该工具可以分析出所有对数据库操作的DML和DDL语句。

2.LogMiner的主要用途2.1.跟踪数据库的变化:可以离线的跟踪数据库的变化,而不会影响在线系统的性能。

2.2.回退数据库的变化:回退特定的变化数据,减少point-in-time recovery的执行。

2.3.优化和扩容计划:可通过分析日志文件中的数据以分析数据增长模式。

3.使用LogMiner需要数据库开启归档模式3.1.以dba身份登录sqlplus sys/sys as sysdba3.2.查询当前日志归档状态archive log list;3.3.关闭运行的数据库实例shutdown immediate3.4.启动数据库实例到mount 状态,但不要打开startup mount3.5.设置数据库为归档日志模式alter database archivelog;3.6.打开数据库alter database open;3.7.确认数据库是否处于日志归档模式archive log list;3.8.打开附加日志alter database add supplemental log data;alter database add supplemental log data (primary key,unique index) columns;4.LogMiner用到的过程和视图4.1.过程dbms_logmnr_d.build:创建一个数据字典文件dbms_logmnr.add_logfile:在类表中增加日志文件以供分析dbms_logmnr.start_logmnr:启动LogMiner分析dbms_logmnr.end_logmnr:停止LogMiner分析4.2视图:v$logmnr_dictionary:显示用来决定对象ID名称的字典文件的信息v$logmnr_logs:在LogMiner启动时显示分析的日志列表v$logmnr_contents:LogMiner启动后,可以使用该视图在SQL提示符下输入SQL语句来查询重做日志的内容5.分析日志过程5.1.测试数据准备SCN:(System Change Number 简称 SCN)是当Oracle数据库更新后,由DBMS自动维护去累积递增的一个数字。

logminer的原理

logminer的原理

logminer的原理LogMiner是Oracle数据库提供的一个工具,用于分析和恢复数据库的事务日志(Redo Log)信息。

它的原理可以从多个角度来解释。

首先,可以从日志文件的角度来解释LogMiner的原理。

Oracle数据库在执行事务时,会将对数据库的更改操作记录在Redo Log文件中。

LogMiner通过读取这些Redo Log文件,并解析其中的日志记录,来获取数据库的历史变更信息。

它会解析日志文件中的事务操作,包括插入、更新、删除等,以及相关的事务元数据,如事务开始和结束时间、事务提交或回滚等信息。

其次,可以从数据恢复的角度来解释LogMiner的原理。

当数据库发生故障或需要进行数据恢复时,LogMiner可以帮助恢复丢失的数据。

通过分析Redo Log文件中的日志记录,LogMiner可以重建丢失的数据,将其还原到故障发生之前的状态。

它可以解析事务的日志记录,找到受影响的数据块和行,然后根据日志中的操作信息,进行相应的数据恢复操作。

此外,LogMiner还可以从数据审计和数据分析的角度来解释其原理。

通过分析Redo Log文件中的日志记录,LogMiner可以提供详细的数据库操作历史记录,包括对哪些表进行了何种操作,由谁执行的等信息。

这对于数据库审计和安全监控非常有用。

同时,LogMiner还可以用于数据分析,通过分析数据库操作的历史记录,可以获取数据库的变化趋势、数据访问模式等信息,为业务决策提供支持。

综上所述,LogMiner的原理主要包括解析Redo Log文件中的日志记录,获取数据库的历史变更信息;通过解析日志记录进行数据恢复,将数据库还原到故障发生之前的状态;提供数据库操作历史记录,支持数据审计和安全监控;以及用于数据分析,获取数据库的变化趋势和访问模式等信息。

这些角度的解释可以全面理解LogMiner的原理。

oracle日志查看

oracle日志查看
SQL> SELECT sql_redo FROM v$logmnr_contents WHERE username=’DB_ZGXT’ AND tablename=’SB_DJJL’;
需要强调一点的是,视图v$logmnr_contents中的分析结果仅在我们运行过程’dbms_logmrn.start_logmnr’这个会话的生命期中存在。这是因为所有的LogMiner存储都在PGA内存中,所有其他的进程是看不到它的,同时随着进程的结束,分析结果也随之消失。
V$LOGMNR_CALLBACK Synonym for V_$LOGMNR_CALLBACK
V$LOGMNR_CONTENTS Synonym for V_$LOGMNR_CONTENTS
V$LOGMNR_DICTIONARY Synonym for V_$LOGMNR_DICTIONARY
PL/SQL procedure successfully completed
2、创建要分析的日志文件列表
1).创建分析列表,即所要分析的日志
SQL>execute dbms logmnr.add logfile(LogFileName => ‘/data1/oracle/oradata/akazamdb/redo01.log’,Options => dbms_logmnr.new);
GV$LOGMNR_DICTIONARY Synonym for GV_$LOGMNR_DICTIONARY
GV$LOGMNR_LOGFILE Synonym for GV_$LOGMNR_LOGFILE
GV$LOGMNR_LOGS Synonym for GV_$LOGMNR_LOGS

logminer用法

logminer用法

LogMiner用法一、概述LogMiner是由Oracle提供的一款用于分析和恢复数据库中的事务日志的工具。

它能够解析数据库的归档日志和在线日志,并提供对事务数据的查询和分析功能。

本文将介绍LogMiner的使用方法以及一些常见的应用场景。

二、LogMiner的安装与配置1. 安装Oracle数据库并确保数据库启用了归档功能。

2. 配置LogMiner的参数,包括指定归档日志和在线日志的存储位置以及日志文件的格式等。

3. 在数据库中创建适当的目录对象,用于存储LogMiner的相关文件。

三、LogMiner的基本用法1. 启动LogMiner$ sqlplus / as sysdbaSQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);2. 加载需要分析的日志文件SQL> EXECUTEDBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME =>'/path/to/archived_log_file1', OPTIONS => DBMS_LOGMNR.NEW);SQL> EXECUTEDBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME =>'/path/to/archived_log_file2', OPTIONS => DBMS_LOGMNR.ADDFILE);3. 执行数据查询SQL> SELECT username, operation, table_name, sql_redo FROMv$logmnr_contents;四、LogMiner的应用场景1. 数据恢复当数据库发生故障或误操作导致数据丢失时,可以使用LogMiner 分析事务日志,找回被删除或修改的数据。

oracle 11g r2 LogMiner(讲解)

oracle 11g r2 LogMiner(讲解)

oracle日志分析工具LogMiner使用1.设置日期格式alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile;startup force ; 重启后你的日志文件记录的时间格式:yyyy-mm-dd hh24:mi:ssselect to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual ;2.添加补充日志Redo log files are generally used for instance recovery and media recovery. The data needed for such operations is automatically recorded in the redo log files. However, a redo-based application may require that additional columns be logged in the redo log files. The process of logging these additional columns is called supplemental logging.By default, Oracle Database does not provide any supplemental logging, which means that by default LogMiner is not usable. Therefore, you must enable at least minimal supplemental logging before generating log files which will be analyzed by LogMiner.如果数据库需要使用logminer,就应该添加,只有添加这个日志之后的才能捕获DML查询了metalink,Oracle在文档Doc ID: Note:291574.1中对这个问题进行了详细说明,如果希望LOGMNR可以得到记录,应该设置SUPPLEMENTAL LOG DATA PRIMARY KEY和UNIQUE INDEX,这样Oracle才能确保LOGMNR可以获取SQL语句:SQL> SELECT SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI FROM V$DATABASE;SUP SUP--- ---NO NOSQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS;数据库已更改。

OracleLogminer快速使用详解

OracleLogminer快速使用详解

OracleLogminer快速使⽤详解⽬录⼀、Logminer是什么?⼆、Logminer快速使⽤三、Logminer的具体使⽤1.配置Logminer2.使⽤Logminer3.Logminer字典4.指定Logminer重做⽇志⽂件5.启动LogMiner⼀、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$log和v$logfile得到归档的redoLog⽂件,可通过v$archived_log得到通过循环查找到最新符合要求的RedoLog并让Logminer加载分析,分析的数据在视图v$logmnr_contents⾥,通过读取v$logmnr_contents就可以得到 Oracle的实时数据。

Oracle 创建LogMiner使用的字典文件

Oracle  创建LogMiner使用的字典文件

Oracle 创建LogMiner使用的字典文件LogMiner只要在实例起来的情况下才可以运行。

在使用LogMiner工具分析重做日志文件之前,可以使用DBMS_LOGMNR_D包将数据字典导出为一个文本文件。

该字典文件是可选的,LogMiner使用一个字典文件来实现Oracle内部对象名称的转换,如果没有这个字典文件,则直接显示内部对象编号,这部分内容是无法直接理解的。

创建字典文件的目的就是让LogMiner引用所涉及到内部数据字典,提供他们实际的名字,而不是系统内部的对象编号。

数据字典文件是一个文本文件,用于存放表及对象ID号之间的对应关系。

当使用字典文件时,它会在表名和对象ID号之间建立一一对应的关系。

如果要分析的数据库中的表有变化,则会影响到数据库的数据字典也发生变化,这时就需要重新创建该字典文件。

如果想要使用字典文件,数据库至少应该处于MOUNT状态。

然后执行DBMS_LOGMNR_D.BUILD过程将数据字典信息提取到一个外部文件中。

下面是具体步骤如下:(1)确认设置了初始化参数UTL_FILE_DIR,并确认Oracle对改目录拥有读写权限,然后启动实例。

SQL> show parameter utlNAME TYPE V ALUE------------------------------------ ----------- -------------create_stored_outlines stringutl_file_dir string参数UTL_FILE_DIR指定的目录主要用于存放DBMS_LOGMNR_D.BUILD过程所产生的字典信息文件。

如果未设置该参数,则可以通过如下的语句修改:SQL> alter system set utl_file_dir='e:\orcldata\logminer' scope=spfile;系统已更改。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、Oracle日志的路径登录:sqlplus "/as sysdba"查看路径:SQL> select * from v$logfile;SQL> select * from v$logfile;(#日志文件路径)二、Oracle日志文件包含哪些内容1.control01.ctl example01.dbf redo02.log sysaux01.dbf undotbs01.dbf2.control02.ctl redo03.log system01.dbf users01.dbf3.control03.ctl redo01.log SHTTEST.dbf temp01.dbf三、Oracle日志的查看方法SQL>select * from v$sql (#查看最近所作的操作)SQL>select * fromv $sqlarea(#查看最近所作的操作)Oracle 数据库的所有更改都记录在日志中,从目前来看,分析Oracle日志的唯一方法就是使用Oracle公司提供的LogMiner来进行,因为原始的日志信息我们根本无法看懂,Oracle8i后续版本中自带了LogMiner,而LogMiner就是让我们看懂日志信息的工具,通过这个工具可以:查明数据库的逻辑更改,侦察并更正用户的误操作,执行事后审计,执行变化分析。

四、LogMiner的使用1、创建数据字典文件(data-dictionary)1).首先在init.ora初始化参数文件中,添加一个参数UTL_FILE_DIR,该参数值为服务器中放置数据字典文件的目录。

如:UTL_FILE_DIR = ($ORACLE_HOME\logs) ,重新启动数据库,使新加的参数生效:SQL> shutdown;SQL>startup;2).然后创建数据字典文件1.SQL> connect /as sysdba2.SQL> execute dbms_logmnr_d.build(dictionary_filename => 'dict.ora',dictionary_location => '/data1/oracle/logs');3.PL/SQL procedure successfully completed2、创建要分析的日志文件列表1).创建分析列表,即所要分析的日志1.SQL>execute dbms logmnr.add logfile(LogFileName => '/data1/oracle/oradata/akazamdb/redo01.log',Options => dbms_logmnr.new);2.PL/SQL procedure successfully completeds2).添加分析日志文件,一次添加1个为宜1.SQL>execute dbms_ logmnr.add_ logfile(LogFileName => '/data1/oracle/oradata/akazamdb/redo01.log',Options => dbms_logmnr.ADDFILE);2.PL/SQL procedure successfully completed3、使用LogMiner进行日志分析(具体要查询什么内容可以自己修改)(1)无限制条件SQL> EXECUTE dbms_logmnr.start_logmnr(DictFileName=>'/data1/oracle/logs/v816dict.ora ');(2)有限制条件通过对过程DBMS_ LOGMNR.START_LOGMNR中几个不同参数的设置,可以缩小要分析日志文件的范围。

通过设置起始时间和终止时间参数我们可以限制只分析某一时间范围的日志。

如下面的例子,我们仅仅分析2007年9月18日的日志:1.SQL> EXECUTE dbms_logmnr.start_logmnr(2.DictFileName => ' /data1/oracle/logs/ v816dict.ora ',3.StartTime => to_date('2007-9-18 00:00:00','YYYY-MM-DD HH24:MI:SS')4.EndTime => to_date(''2007-9-18 23:59:59','YYYY-MM-DD HH24:MI:SS '));也可以通过设置起始SCN和截至SCN来限制要分析日志的范围:1.SQL> EXECUTE dbms_logmnr.start_logmnr(2.DictFileName => ' /data1/oracle/logs/ v816dict.ora ',3.StartScn => 20,4.EndScn => 50);4、观察分析结果(v$logmnr_contents)到现在为止,我们已经分析得到了重作日志文件中的内容。

动态性能视图v$logmnr_contents包含LogMiner分析得到的所有的信息。

SELECT sql_redo FROM v$logmnr_contents;如果我们仅仅想知道某个用户对于某张表的操作,可以通过下面的SQL查询得到,该查询可以得到用户DB_ZGXT对表SB_DJJL所作的一切工作。

SQL> SELECT sql_redo FROM v$logmnr_contents WHERE username='DB_ZGXT' AND tablename='SB_DJJL';需要强调一点的是,视图v$logmnr_contents中的分析结果仅在我们运行过程'dbms_logmrn.start_logmnr'这个会话的生命期中存在。

这是因为所有的LogMiner存储都在PGA内存中,所有其他的进程是看不到它的,同时随着进程的结束,分析结果也随之消失。

最后,使用过程DBMS_LOGMNR.END_LOGMNR终止日志分析事务,此时PGA内存区域被清除,分析结果也随之不再存在。

5、查看LogMiner工具分析结果1.SQL> select * from dict t where t.table_name like '%LOGMNR%';-看所有与logmnr相关的视图2.TABLE_NAME COMMENTS3.------------------------------ --------------------------------------------------------------------------------4.GV$LOGMNR_CALLBACK Synonym for GV_$LOGMNR_CALLBACK5.GV$LOGMNR_CONTENTS Synonym for GV_$LOGMNR_CONTENTS6.GV$LOGMNR_DICTIONARY Synonym for GV_$LOGMNR_DICTIONARY7.GV$LOGMNR_LOGFILE Synonym for GV_$LOGMNR_LOGFILE8.GV$LOGMNR_LOGS Synonym for GV_$LOGMNR_LOGS9.GV$LOGMNR_PARAMETERS Synonym for GV_$LOGMNR_PARAMETERS10.GV$LOGMNR_PROCESS Synonym for GV_$LOGMNR_PROCESS11.GV$LOGMNR_REGION Synonym for GV_$LOGMNR_REGION12.GV$LOGMNR_SESSION Synonym for GV_$LOGMNR_SESSION13.GV$LOGMNR_STATS Synonym for GV_$LOGMNR_STATS14.GV$LOGMNR_TRANSACTION Synonym for GV_$LOGMNR_TRANSACTION15.V$LOGMNR_CALLBACK Synonym for V_$LOGMNR_CALLBACK16.V$LOGMNR_CONTENTS Synonym for V_$LOGMNR_CONTENTS17.V$LOGMNR_DICTIONARY Synonym for V_$LOGMNR_DICTIONARY18.V$LOGMNR_LOGFILE Synonym for V_$LOGMNR_LOGFILE19.V$LOGMNR_LOGS Synonym for V_$LOGMNR_LOGS20.V$LOGMNR_PARAMETERS Synonym for V_$LOGMNR_PARAMETERS21.V$LOGMNR_PROCESS Synonym for V_$LOGMNR_PROCESS22.V$LOGMNR_REGION Synonym for V_$LOGMNR_REGION23.V$LOGMNR_SESSION Synonym for V_$LOGMNR_SESSION24.TABLE_NAME COMMENTS25.------------------------------ --------------------------------------------------------------------------------26.V$LOGMNR_STATS Synonym for V_$LOGMNR_STATS27.V$LOGMNR_TRANSACTION Synonym for V_$LOGMNR_TRANSACTIONGV$LOGMNR_LOGS 是分析日志列表视图,分析结果在GV$LOGMNR_CONTENTS 视图中,可按以下语句查询:1.select scn,timestamp,log_id,seg_owner,seg_type,table_space,data_blk#,2.data_obj#,data_objd#,session#,serial#,username,session_info,sql_redo,sql_undo3.from logmnr3 t where t.sql_redo like 'create%';如果不能正常查询GV$LOGMNR_CONTENTS视图,并报以下错误,ORA-01306: 在从 v$logmnr_contents 中选择之前必须调用 dbms_logmnr.start_logmnr() 。

相关文档
最新文档