登录  /  注册
Oracle 日志分析工具LogMiner的安装使用
php中文网
发布: 2016-06-07 17:03:41
原创
843人浏览过

logminer作为相关的日志分析工具集成与oracle中,我们可通过该工具清楚的分析重做相关日志和归档日志中的所有事物变化,并且可以

测试环境:

OS:RedHat 5.5

DB:Oracle11g

logminer作为相关的日志分析工具集成与oracle中,我们可通过该工具清楚的分析重做相关日志和归档日志中的所有事物变化,并且可以准确的确定各种DML和DDL操作的具体时间和SCN值。
通过logminer我们可以实现:

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

2,跟踪用户执行的事务变化操作

3,跟踪表的DML操作

如果我们要分析归档日志,我们首先修改oracle归档日志的模式,我们要把默认的归档路径改成我们自己的路径:

start mount;

alter database archivelog;

alter database open;

alter system set log_archive_dest_1='location=d:\oracle' scope=spfile;

alter system set log_archive_format='arch_%t_%s_%r.trc' scope=spfile;

查看我们修改过的归档路径:

archive log list;

查看归档日志:

select name,dest_id from v$archived_log;

如果查询的没有更改,我们需要重启一下数据库

安装logminer,安装logminer需要我们安装下面的几个包:

$ORACLE_HOME/rdbms/admin/dbmslm.sql

$ORACLE_HOME/rdbms/admin/dbmslmd.sql

$ORACLE_HOME/rdbms/admin/dbmslms.sql

这几个脚本必须是sys用户运行

@$ORACLE_HOME/rdbms/admin/dbmslm.sql

@$ORACLE_HOME/rdbms/admin/dbmslmd.sql

@$ORACLE_HOME/rdbms/admin/dbmslms.sql

添加数据字典,需要添加参数utl_file_dir,

alter system set utl_file_dir='/home/oracle/dir' scope=spfile;

添加supplement logging

首先查看

select name,supplemental_log_data_min from v$database;是否是yes

YES为打开状态,会记录session_info,username等信息
NO为关闭状态,不会记录sesion_info,username等信息

添加

alter database add supplemental log data;

关闭

alter database drop supplemental log data;

重启数据库,,这样我们刚才的两个参数就会生效;

查看数据字典:

show parameter utl;

添加数据字典:

SQL> begin
2 dbms_logmnr_d.build(
3 dictionary_filename=>'logminer_dict.dat',
4 dictionary_location=>'/home/oracle/logminer');
5 end;
6 /

PL/SQL procedure successfully completed.

或是:

execute dbms_logmnr_d.build(dictionary_filename=>'logminer_dict.dat',dictionary_location=>'/home/oracle/logminer');

创建登录触发器:
SQL> create or replace trigger on_logon_tigger
2 after logon on database
3 begin
4 dbms_application_info.set_client_info(sys_context('userenv','ip_address'));
5 end;
6 /

Trigger created.

我们就可以在V$SESSION视图的CLIENT_INFO列中看到新登录的客户端IP地址了。那么现在就可以在

添加要分析的归档日志文件

SQL> begin
2 dbms_logmnr.add_logfile(
3 logfilename=>'/home/oracle/arch/arch_6_758944049_1.trc',options=>dbms_logmnr.new);
4 end;
5 /

PL/SQL procedure successfully completed.


SQL> begin
2 dbms_logmnr.add_logfile(
3 logfilename=>'/home/oracle/arch/arch_7_758944049_1.trc',
4 options=>dbms_logmnr.addfile);
5 end;
6 /

PL/SQL procedure successfully completed.


切换归档日志:

alter system switch logfile;

开启分析:

execute dmbs_logmnr.start_logmnr(dictfilename='/home/oracle/logminer/logminer_dict.dat');

或是:

execute dbms_logmnr.start_logmnr;

查询归档日志:

SQL> select name from v$archived_log;

NAME
--------------------------------------------------------------------------------
/home/oracle/arch/arch_6_758944049_1.trc
/home/oracle/arch/arch_7_758944049_1.trc
/home/oracle/arch/arch_8_758944049_1.trc

为了节约pga的空间,当我们分析完日志后,移除不需要的日志:

SQL> begin
2 dbms_logmnr.add_logfile(
3 logfilename=>'/home/oracle/arch/arch_7_758944049_1.trc',
4 options=>dbms_logmnr.removefile);
5 end;
6 /

PL/SQL procedure successfully completed.


查询结果在v$logmnr_contents;

查询数据库上面的操作

select scn,sql_redo,timestamp from v$logmnr.contents;

关闭分析

execute dbms_logmnr.stop_logmnr;

查询的时候最好使用plsql查询。

linux

来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学