浅谈Oracle日志分析工具LogMiner
深入分析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重构的是在实际情况下转化成元操作的多个单条语句。
用logminer分析redolog文件

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编制许能飞,谭丽审核吴劲松批准王剑虎上海宝信软件股份有限公司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的用途日志文件中存放着所有进行数据库恢复的数据,记录了针对数据库结构的每一个变化,也就是对数据库操作的所有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用法
摘要:
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技术简介

中图 分 类号 : 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在为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安装和使用

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所有的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工具中的应用目录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自动维护去累积递增的一个数字。
ORACLE日志分析logmnr使用

ORACLE日志v$logmnr_contents分析一、产生日志命令:分析日志脚本文件logmnr.sql如下:SQL> @c:\logmnr.sql===================================================================== ========rem ********************开始执行日志分析脚本********************** rem 设置环境参数set echo offset termout off --//显示脚本中的命令的执行结果,缺省为onset trimout on --//去除标准输出每行的拖尾空格,缺省为offset trimspool on --//去除重定向(spool)输出每行的拖尾空格,缺省为off set heading off --//输出域标题,缺省为onset pagesize 0 --//输出每页行数,缺省为24,为了避免分页,可设定为0。
set verify off --//可以关闭和打开提示确认信息old 1和new 1的显示. set linesize 800 --//输出一行字符个数,缺省为80rem 字典信息文件路径为:show parameter utlrem 创建Logminer包:@D:\oracle\ora92\rdbms\admin\dbmslmd.sqlrem 创建字典信息文件exec dbms_logmnr_d.build(dictionary_filename=>'dic.ora',dictionary_location =>'D:\oracle\oradata\zfmi');rem 增加数据库对应的重做日志文件:execdbms_logmnr.add_logfile( logfilename=>'D:\oracle\oradata\zfmi\redo01. log', options=>dbms_logmnr.new);execdbms_logmnr.add_logfile( logfilename=>'D:\oracle\oradata\zfmi\redo02. log', options=>dbms_logmnr.addfile);execdbms_logmnr.add_logfile( logfilename=>'D:\oracle\oradata\zfmi\redo03. log', options=>dbms_logmnr.addfile);select db_name,filename from v$logmnr_logs;rem 结合字典信息文件,开始分析重做日志文件execdbms_logmnr.start_logmnr(dictfilename=>'D:\oracle\oradata\zfmi\dic.or a',starttime => to_date('2008-05-06 10:00:00','YYYY-MM-DDHH24:MI:SS'),endtime => to_date('2008-05-06 20:00:00','YYYY-MM-DD HH24:MI:SS'));rem 开始保存分析结果:spool c:\zfmiLog08-05-06_10.00.00to08-05-06_20.00.00.txt;select to_char(TIMESTAMP,'YYYY-MM-DD HH24:MI:SS'), SQL_REDO fromv$logmnr_contents where USERNAME='ZFMI' order by TIMESTAMP ;spool offrem 关闭分析器Logminer!dbms_logmnr.end_logmnr;rem ********************日志分析脚本执行完毕**********************===================================================================== ===========二、视图v$logmnr_contents字段分析一下内容根据oracle官方文档部分翻译:SQL> desc v$logmnr_contents;名称类型---------------------------------------------------------------------TIMESTAMP DATE //SQL执行时间COMMIT_TIMESTAMP DATE //事务提交时间SEG_OWNER VARCHAR2(32) //被修改对象创建者SEG_NAME VARCHAR2(256) //被修改对象的名字,如表名SEG_TYPE NUMBER //被修改对象类型SEG_TYPE_NAME VARCHAR2(32) //被修改对象类型名TABLE_SPACE VARCHAR2(32) //被修改对象所属表空间ROW_ID VARCHAR2(19) //被修改行的ROWID,如果SESSION# NUMBER //执行修改的SESSION号SERIAL# NUMBER //执行修改的SESSION序号USERNAME VARCHAR2(30) //执行事务的用户名SESSION_INFO VARCHAR2(4000) //执行修改的SESSION信息,例如:login_username= client_info=OS_username=SYSTEM Machine_name=ZFMISERVER OS_terminal=ZFMISERVER OS_process_id=1812 OS_program name=ORACLE.EXETX_NAME VARCHAR2(256) //执行的事务名,当该事务被命名时ROLLBACK NUMBER //回滚标记OPERATION VARCHAR2(32) //操作类型INSERTUPDATEDELETEDDLSTARTCOMMITROLLBACKLOB_WRITELOB_TRIMLOB_ERASESELECT_FOR_UPDATESEL_LOB_LOCATORMISSING_SCNINTERNALUNSUPPORTEDOPERATION_CODE NUMBER //操作类型代码0 = INTERNAL1 = INSERT2 = DELETE3 = UPDATE5 = DDL6 = START7 = COMMIT9 = SELECT_LOB_LOCATOR10 = LOB_WRITE11 = LOB_TRIM25 = SELECT_FOR_UPDATE28 = LOB_ERASE34 = MISSING_SCN36 = ROLLBACK255 = UNSUPPORTEDSQL_REDO VARCHAR2(4000) //重做日志SQLSQL_UNDO VARCHAR2(4000) //相反操作SQLSEQUENCE# NUMBER //重做日志的序号。
Oracle LogMiner概述

Oracle LogMiner概述使用LogMiner工具可以对重做日志文件或归档重做日志文件进行分析,以便DBA对数据库用户的操作进行审计,或者撤销数据库中已经执行过的、指定的操作。
此外,DBA 还能够通过分析日志文件来追踪某个用户的所有操作,或者追踪某个数据库对象的变更过程,并且由引生成统计信息。
LogMiner工具由一系列内置DBMS包和动态视图组成。
在使用LogMiner的过程中,主要用到以下两个DBMS包:●DBMS_LOGMNR_D 在这个包中包含提取数据字典信息和创建LogMiner字典文件所必需的过程,即DBMS_LOGMNR_D.BUILD()过程。
●DBMS_LOGMNR 在这个包中包含有初始化和运行LogMiner所必需的过程。
它有三个过程:用来添加/删除用于分析的日志文件的过程ADD_LOGFILE();用来开启日志分析,同时确定分析的时间/SCN号以及确认是否使用提取出来的数据字典信息的过程START_LOGMNR();用来终止分析会话、回收LogMiner所占用内存的过程END_LOGMNR()。
DBMS包是随Oracle服务器软件一同提供的另一种类型的实用工具。
在DBMS包中包含了许多PL/SQL过程,利用这些过程能够完成许多数据库操作。
组成LogMiner的包均位于SYS模式中。
与LogMiner相关的数据字典包括:●v$logmnr_dictionary 包含LogMiner可能使用的数据字典信息,因logmnr可以有多个字典文件,该视图用于显示这方面信息。
●v$logmnr_parameters 当前LogMiner所设定的参数信息。
●v$logmnr_logs 当前用于分析的日志列表。
●v$logmnr_contents 日志分析结果。
在Oracle 11g中,还需要安装LogMiner工具。
在数据库安装目录下的rdbms\admin子目录中,可以找到两个SQL脚本文件:dbmslm.sql和dbmslmd.sql。
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日志分析工具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快速使⽤详解⽬录⼀、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的实时数据。
利用LogMiner进行Oracle数据恢复

- ◆
●
●
◆
- ●
I :◆
为和 10最接近的 2的幂应该是 18 2 2 。为此 , 我们需 要修正 wl
和h l的值 :
itw2 2 wl f 2w< w1 n = ;iw - w- )wl w2 ( = ; ith = l f 2h hh )h = 2 n 2 2 h :ih -< -1 l h ; (
GNED BYTE,BM .m Bi ,wl b t s ,hl , GL UNSI
_ _
图 2 纹理效果图
GL
_
UN GNE - Y ,pma e ; SI D B TE l g )
对 于 新 的 纹 理 图 像 pma e l g ,我 们 就 可 以 使 用 函 数 g e/ g2 指定为纹理 图像 。 l xmaeD0 T
如 果数据 库运 行在 非归档模式 下 , 数据库循 环使用 “ 线 在
重做 日志文件 ” , 时 会将原有的文件覆盖 ; 如果数据库运行在 归
1 L g n r 绍 o Mie 介
L g nr o Mie 是一个 日志分析 工具 ,用于分析 O al rc e归档 日
档模式 下 , 循环覆 盖“ 线重做 日志文件 ” 在 在 内容之 前 , 数据 库
B TE l g ) Y ,pma e;
d lei l g ; ee p ma e t q
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
D M O  ̄ R A D L F L ( ‘ :r d O . o ’, p i n = D B SL N. D O IE C \ e o 1 1 g o t o s > G G
B S LG N .E ) / M O M R N W / 添加第一个 要分析 的日志文件
D MS L MN AD B OG R. D
【 关键 词 】Orc ; 日志 ;分 析 工 具 ;L g l e al e o /i r vn 【 中图分类号】T 3 6 P 1 【 文献标识码 】A
【 章编号 】10 — 1 1 0 00 — 0 6 0 文 0 8 15 ( 1)6 0 3 — 1 2
E cu xe te
( )前言 一
在 O a l 数 据 库 的 几 类 重要 文件 中 ,重 做 日志 文 件 是 系 rce 统最重 要的文件之 一,它记录 了用户数 据的变化和数据字典 的变化等重要 的信息 ,无 论数据库运行 在归档或是非归档模 式 日志 文 件 中记 录 的更 新 操 作 对 数 据库 的 还 原 都起 到 了重 要 的作用 ,O a l 提供 了一个名为 L g i e 日志分析工具, rce o M n r的 数据库管理可 以使用该工具分析用户对数据库所做 的任何 更 新操作 ,不仅可 以撤销用户 已完成 的错误操作 ,还可 以对操 作密集 的数据对象进行优化 :从而维护一个安全 、高效 的数 据库平台。
… 盖 国强. 1 深入解析 Orc -- A入 门、 阶与诊 断案例f al - e DB 进 J .
北 京 : 民邮 电 出版 社 , 0 . 人 2 91 0 .
【】王海 亮, 精通 Orc O 2 等. al l g系统管理 【 . e M】 北京: 中国水利水
电 出版社 .0 4 20 .
选 项 ,如 :
Ex ut ec e
( )利用 工具数 据库 可获 取关键特 征 二
1 确定数据 库的逻辑损坏时间 。如果某个用户对重要数 . 据执行 了误操作,通过 L g i e 以准确定位 该操作执行 的 oM n r可 时 间和 S N值 ,管 理 员 可 以通 过基 于 时 问 的或 基 于 SN 的恢 C C 复将 数 据 库 还 原 。 2 确定事务级要执行 的精细逻辑恢 复操 作。假设某个用 . 户提交的更新操作存在错误 , 通过 L g ie 可 以获取用户的 oMnr 更新操作及相应 的 U D N O操作 ,执行 U D N O操作可 以取消用户 的更新操作。 3 执行后续 审计 。 . 数据库管理员利用 L g ie o M n r可以跟踪 Oa1 r c e数据 库 的所 有 更 新 操 作 ,从 而 取 得 这 些 操 作 的 执行 时 间 及 顺序 。
冯 军
( 新疆生产建设兵 团电视 台,新疆 乌鲁木齐 8 0 0 ) 302
【 摘
果。
要 】Orc al e的 日志 分析 工具 L g n r 供 给 数据 库 管理 员一 种 观 察 和 获 取 日志信 息 的视 角 ,L g l e o Mie 提 o/i r工具 的配 置 Vn
和使用需要按照一定 的操 作步骤 实施 ,实施过程 中可以配置参数 选项,帮助数据库 管理 员根据 自身需要生成相应的 日志分析结
( )利 用 L g ie 三 o M h r来分析 重做 E志 文件主要 步骤 l
步 骤 1提 取 L g ie 用 的 数据 字 典 : 使用 L g ie , o M nr使 当 oM nr 对重做 日志进 行分 析时必须要建立 自己使用的数据字典 ,以 便完整的将数据库 内部的对象标示和数据格式翻译成对象 的 名 称 和 外 部 数据 格 式 。有 以下 三 种 方 式 获取 数 据 字 典 方 法 : 1将 数 据 字 典 提 取 到 平 面 数据 字 典文 件 中 : 据 字 典 文 件 . 数 用 于 存 放 对 象 的信 息 , 需要 注 意 使 用 字 典 文件 分析 重做 日志 时,如果要分析新建 的数据对象 ,则 需要 重新 建立 字典问文 件 。建 立 平面 数 据 字 典 文 件 需 要 步骤 如 下 : ① 配 置 字 典文 件 所 在 目录 :修 改初 始 化 参 数 文 件 中 UL F L I 参 数 的 值 ,来 指 定 字 典 文件 存 放 路 径 T IEDR ②通过执行程序 包 D M — o [ . u i ( B S L g ̄R DB ld 文 件名 ’, , ‘ 文件路径 ’, p in=D Lg ̄ OEI LTFL) Otos>B oMRnS R NFA IE T 2 提取数据字 典到重做 日志:将 L g ie 字典提渠道重 . o M r n 做 日志文件要求源数据库 必须处于归档模 式,并且数据库处 于 打 开 状 态 , 需 执 行 命 令 :Eeue DM xct BsI DB ID .UL
— —
L G I E ‘ :r d O . o ’, p i n = D O F L ( c \ e o 1 1g o t o s >
BMS
—
L GER A D I E OI .DFL)
步骤 3 ,启动 L g i e :将 日志文件添加到 日志分析列 oM n r 表后 , 可 以启 动 L g ie 就 o M n r分析 重 做 日志 或 归 档 日志 了 , : 如
D M O M R S A T LG N (i t ie a e > 平 面 日 志 文 B S LG N >T R O M R D c F N m = ’ l 件 的路径 ’) ,使用该语句启动 日志分析时,可 以指定起始时 间和 结束 时间 , 也可 以指定起始 S N和结束 S N 如果不指定, C C。 则会分析 日志文件中所有事务操作 。 步骤 4 ,查看分析结果 :启动 日志分析后 ,分析 结果保存 在 V LG N o t n s视 图中,可 以通过查询该视 图取得分 ¥OMRcnet 析结果 ,注意 : 日志分 析结果只能在当前会话中查看,其他 会 话 不 能 查 看 日志 分析 结果 。 步骤 5 ,结束 L g ie :获得重做 日志和 归档 日志的事 oMnr 务 变 化 信 息 后 ,可 以结 束 L g i e , 同 时服 务 器 进 程 会 自动 oMnr 删 除与 L g ie 相关 的动态性 能视 图包含的事务变更 内容。 oMnr
21 0 0年 第 6期 ( 总第 1 0期 ) 3
大 众 科 技
DA ZHONG KE J
No 6, 0 0 . 2 1
( u l i l N .3 ) C mu t ey o1 0 av
浅谈 O c r I a e日志 分 析 工具 L g e o M i r n