log_miner操作(日志挖掘)

Oracle LogMiner是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得Oracle重做日志文件(归档日志文件)中的具体内容。LogMiner分析工具实际上是由一组PL/SQL包和一些动态视图(Oracle8i内置包的一部分)组成。

1、安装LogMiner
新建包(这两个脚本必须均以SYS管理员身份运行):
SQL> @E:oracleproduct10.2.0db_1RDBMSADMINdbmslm.sql;
SQL> @E:oracleproduct10.2.0db_1RDBMSADMINdbmslmd.sql;

2、 创建LogMiner所需的数据字典文件
该字典文件是可选的,但是如果没有它,LogMiner解释出来的语句中关于数据字典中的部分(如表名、列名等)和数值都将是16进制的形式,我们是无法直接理解的。
(1)、添加数据字典目录:
SQL> connect system/oracle as sysdba;
SQL> show parameter utl_file;
SQL> alter system set utl_file_dir=‘/u01/oracle/ora_log‘ scope=spfile;
SQL> shutdown immediate
SQL> startup
(2)、创建数据字典文件
SQL> EXECUTE dbms_logmnr_d.build(dictionary_filename => ‘redolog.log‘,dictionary_location => ‘/u01/oracle/ora_log‘)
创建数据字典的目:让LogMiner引用涉及到内部数据字典中的部分时为他们实际的名字,而不是系统内部的16进制。

3、添加日志文件
但这里建议最好是每次只添加一个需要分析的日志文件,在对该文件分析完毕后,再添加另外的文件。
EXECUTE dbms_logmnr.add_logfile(LogFileName=>‘/u01/oracle/oradata/test/redo01.log‘,Options=>dbms_logmnr.new);
EXECUTE dbms_logmnr.add_logfile(LogFileName=>‘/u01/oracle/oradata/test/redo01.log‘,Options=>dbms_logmnr.addfile);
EXECUTE dbms_logmnr.add_logfile(LogFileName=>‘/u01/oracle/oradata/testredo03.log‘,Options=>dbms_logmnr.addfile);
EXECUTE dbms_logmnr.add_logfile(LogFileName=>‘/u01/oracle/oradata/test/redo01.log‘,Options=>dbms_logmnr.removefile);

4、 分析日志
EXECUTE dbms_logmnr.start_logmnr(DictFileName=>‘/u01/oracle/ora_log/redolog.log‘);
--生成分析日志临时表,以便session断开时用其他用户也能查看
create table logmnr_contents as select * from v$logmnr_contents ;
--终止日志分析事务
execute dbms_logmnr.end_logmnr;
不完全分析举例:
--限制起始时间和终止时间参数:(注意时间参数要合理,否则会出ORA-01291错)
execute dbms_logmnr.start_logmnr( DictFileName => ‘E:oracleora_logredolog.log‘,StartTime => to_date(‘2009-12-1 15:10:00‘,‘YYYY-MM-DD HH24:MI:SS‘), EndTime => to_date(‘2010-02-8 15:16:59‘,‘YYYY-MM-DD HH24:MI:SS‘));
--限制起始SCN和截止SCN
exec dbms_logmnr.start_logmnr(DictFileName => ‘E:oracleora_logredolog.log‘,StartScn => 4140835823,EndScn => 4140836247);

5、查看分析结果
select timestamp, sql_redo
from sys.logmnr_contents
where upper(sql_redo) like ‘%CREATE%‘;
select session_info, sql_redo
from sys.logmnr_contents
where upper(operation) = ‘UPDATE‘
and upper(sql_redo) like ‘%SERVICE%‘;

6、v$logmnr_contents主要字段解释
SCN 特定数据变化的系统更改号,可用 select dbms_flashback.get_system_change_number from dual; 获得当前改变号。
TIMESTAMP 数据改变发生的时间
COMMIT_TIMESTAMP 数据改变提交的时间
SEG_OWNER 段的所有者名称
SEG_NAME 数据发生改变的段名称
SEG_TYPE 数据发生改变的段类型
SEG_TYPE_NAME 数据发生改变的段类型名称
TABLE_SPACE 变化段的表空间
ROW_ID 特定数据变化行的ID
SESSION_INFO 数据发生变化时用户进程信息,如login_username=WACOS client_info= OS_username=oracle Machine_name=ITDB 
OS_terminal= OS_process_id=2782 OS_program [email protected] (TNS V1-V3)
OPERATION 重做记录中记录的操作(如INSERT)
SQL_REDO 可以为重做记录重做指定行变化的SQL语句
SQL_UNDO 可以为重做记录回退或恢复指定行变化的SQL语句

  <转>http://blog.itpub.net/23463019/viewspace-1042565/

时间: 2024-10-11 22:03:05

log_miner操作(日志挖掘)的相关文章

日志挖掘针对DML语句

作用: 针对用户的误操作,比如更改数据错误,误删除表等,可以用日志挖掘的方式,跟踪哪个用户什么时候做的操作,并进行数据还原. 一.前期准备: 1.添加最小补充日志,能够记录到更详细的信息,为日志挖掘分析做准备: SQL> alter database add supplemental log data; Database altered. SQL> select supplemental_log_data_min from v$database; SUPPLEME--------YES 2.查

日志挖掘Logmnr

日志挖掘 9.1 日志中数据用途 所有对用户数据以及数据字典的改变全部被保存在联机日志中.当然nologging,insert/*+append+/情况比较特殊除外,因此归档日志可以用来做数据库的恢复.为了数据库中的日志含有用的信息,一般需要启用最小化的追加日志的属性(alter database add supplemental log data;) 以下列举了日志的常用功能: 1)  恢复数据库的逻辑灾难.比如,在增加员工工资时,应该增加10%,但是却增加了100%,这就需要进行基于时间点逻

跟我一起数据挖掘(20)&amp;mdash;&amp;mdash;网站日志挖掘

收集web日志的目的 Web日志挖掘是指采用数据挖掘技术,对站点用户访问Web服务器过程中产生的日志数据进行分析处理,从而发现Web用户的访问模式和兴趣爱好等,这些信息对站点建设潜在有用的可理解的未知信息和知识,用于分析站点的被访问情况,辅助站点管理和决策支持等. 1.以改进web站点设计为目标,通过挖掘用户聚类和用户的频繁访问路径,修改站点的页面之间的链接关系,以适应用户的访问习惯,并且同时为用户提供有针对性的电子商务活动和个性化的信息服务,应用信息推拉技术构建智能化Web站点. 2.以分析W

Oracle LogMiner日志挖掘技术_超越OCP精通Oracle视频课程培训21

oracle视频教程目标 Oracle视频教程,风哥本套oracle教程培训学习oracle数据库LogMiner相关概念及使用详解,LogMiner使用源数据库的数据字典分析,提取LogMiner字典到字典文件来分析,LogMiner如何查看日志分析结果,LogMiner日志挖掘案例-分析生产系统表数据丢失的原因,恢复DML误操作导致的表数据丢失,结合RMAN进行表空间时间点恢复 适用人群IT相关从业人员.Oracle数据库技术人员.想加工资的.想升职的都可以. 视频在线学习地址: http:

跟我一起数据挖掘(20)&mdash;&mdash;网站日志挖掘

收集web日志的目的 Web日志挖掘是指采用数据挖掘技术,对站点用户访问Web服务器过程中产生的日志数据进行分析处理,从而发现Web用户的访问模式和兴趣爱好等,这些信息对站点建设潜在有用的可理解的未知信息和知识,用于分析站点的被访问情况,辅助站点管理和决策支持等. 1.以改进web站点设计为目标,通过挖掘用户聚类和用户的频繁访问路径,修改站点的页面之间的链接关系,以适应用户的访问习惯,并且同时为用户提供有针对性的电子商务活动和个性化的信息服务,应用信息推拉技术构建智能化Web站点. 2.以分析W

跟我一起数据挖掘(20)——网站日志挖掘

收集web日志的目的 Web日志挖掘是指采用数据挖掘技术,对站点用户访问Web服务器过程中产生的日志数据进行分析处理,从而发现Web用户的访问模式和兴趣爱好等,这些信息对站点建设潜在有用的可理解的未知信息和知识,用于分析站点的被访问情况,辅助站点管理和决策支持等. 1.以改进web站点设计为目标,通过挖掘用户聚类和用户的频繁访问路径,修改站点的页面之间的链接关系,以适应用户的访问习惯,并且同时为用户提供有针对性的电子商务活动和个性化的信息服务,应用信息推拉技术构建智能化Web站点. 2.以分析W

[生产库实战] 如何合理的使用logmnr进行日志挖掘,并对生产库影响最小化

Oracle Logmnr这个工具怎么用这里就不详细说,可以查看官方文档,网上的文档也一大堆,自己找吧.我这里就直接上干货了. --创建Oracle目录 select * from dba_directories; create directory archivelog_dir as '/archivelog1/temp_archivelog/'; --grant read, write on directory archivelog_dir to zhanghui; --归档日志路径信息表(t

日志分析方法概述 &amp; Web日志挖掘分析的方法

日志在计算机系统中是一个非常广泛的概念,任何程序都有可能输出日志:操作系统内核.各种应用服务器等等.日志的内容.规模和用途也各不相同,很难一概而论. 本文讨论的日志处理方法中的日志,仅指Web日志.其实并没有精确的定义,可能包括但不限于各种前端Web服务器--apache.lighttpd.tomcat等产生的用户访问日志,以及各种Web应用程序自己输出的日志. 在Web日志中,每条日志通常代表着用户的一次访问行为,例如下面就是一条典型的apache日志: 211.87.152.44 – - [

Oracle数据库从RMAN备份集片段还原指定单个归档日志进行日志挖掘分析

起因:业务已知在之前某个时间点范围内发生了可疑异常操作,希望通过日志挖掘来审查SQL动作 现状:生产库在线归档已备份后删除,RMAN归档备份已经刷出超期的备份集文件 需求:通过RMAN还原归档到线上以进行日志挖掘 定位归档日志涉及范围: select * from v$archived_log l where to_date('2018-11-12 16:18:51','yyyy-mm-dd hh24:mi:ss') between L.FIRST_TIME and L.NEXT_TIME; 假

mongodb复制集里查看主从操作日志oplog

MongoDB的replica set架构是通过一个日志来存储写操作的,这个日志就叫做 oplog .oplog.rs 是一个固定长度的 Capped Collection,它存在于local数据库中,用于记录replicaSets操作日志.在默认情况下,对于64位的MongoDB,oplog是比较大的,可以达到5%的磁盘空间,oplog的大小是可以通过mongod的参数 “ -oplogSize”来改变oplog的日志大小. oplog内容样例: > use local > show col