暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle日志挖掘logminer

在路上 2024-11-28
84

1.开启补充日志

select name ,supplemental_log_data_min from v$database;

alter database add supplemental log data; 不用重启

2.指定logminer字典(三选一)

logminer数据字典是logminer使用字典将内部对象标识符(ID)和数据类型转换为可读数据。如果没有字典,logminer分析的结果会显示为二进制数据

使用在线目录,必须在源数据库执行
EXECUTE DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
抽取字典到redo日志文件中
EXECUTE DBMS_LOGMNR_D.BUILD( OPTIONS=> DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);
抽取字典到(操作系统)平面文件中(需要设置utl_file_dir参数,重启数据库,不推荐)
EXECUTE DBMS_LOGMNR_D.BUILD('dictionary.ora', '/oracle/database/', DBMS_LOGMNR_D.STORE_IN_FLAT_FILE);
复制

3.使用源数据库数据字典online catalog分析dml操作

1)先进行dml和ddl操作,以便下面分析

select * from scott.dept; insert into scott.dept values ('80','Dave','AnQing'); commit; delete from scott.dept where deptno=40; commit; alter table scott.dept add(phone varchar2(32)); insert into scott.dept values(50,'David','Dai','13888888888'); commit; alter table scott.dept add(address varchar2(300));
复制

2)把在线日志变为归档日志,就可以分析归档日志了

alter system switch logfile;

3)添加要分析的日志文件

execute dbms_logmnr.add_logfile(logfilename=>'/u01/app/oracle/arch/1_6_1170430581.dbf',options=>dbms_logmnr.new);
select filename from V$LOGMNR_LOGS;查看添加的日志列表
复制

4)启动logminer

execute dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);

5)查看分析结果

 set linesize 900
 set pagesize 900
 col username format a8
 col sql_redo format a50
 alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
 select username,scn,timestamp,sql_redo from v$logmnr_contents where seg_name='DEPT';
复制

6)结束logminer

execute dbms_logmnr.end_logmnr;

4.用摘取logminer字典到字典文件分析ddl操作

1)进行ddl操作,以便分析

create table emp as select * from scott.dept; create table dept as select * from scott.dept; drop table emp; drop table dept; alter system switch logfile;

复制

2)使用字典文件,查看是否配置utl_file_dir,这个参数是字典文件的目录,需要重启

show parameter utl_file_dir;
mkdir /u01/app/oracle/logminer
alter system set utl_file_dir='/u01/app/oracle/logminer' scope=spfile;
shutdown immediate;
startup 
复制

3)建立字典文件

execute dbms_logmnr_d.build ('dict.ora','/u01/app/oracle/logminer',dbms_logmnr_d.store_in_flat_file);


4)建立日志分析列表

execute dbms_logmnr.add_logfile(logfilename=>'/u01/app/oracle/arch/1_7_1170430581.dbf',options=>dbms_logmnr.new); --追加日志后面加参数 options=>dbms_logmnr.addfile select * from v$logmnr_logs;
复制

5)启动logminer执行分析

execute dbms_logmnr.start_logmnr(dictfilename=>'/u01/app/oracle/logminer/dict.ora',options=>dbms_logmnr.ddl_dict_tracking); 提取特定时间的日志 execute dbms_logmnr.start_logmnr(dictfilename=>'/u01/app/oracle/logminer/dict.ora',starttime=>to_date('2009-06-24 09:30:00','YYYY-MM-DD HH24:MI:SS'),endtime=>to_date('2009-06-24 12:00:59','YYYY-MM-DD HH24:MI:SS'),options=>dbms_logmnr.ddl_dict_tracking);
复制

6)查询分析结果

select username,scn,timestamp,sql_redo from v$logmnr_contents where lower(sql_redo) like '%table%'; select username,scn,timestamp,sql_redo from v$logmnr_contents where username='SYS';
复制

7)结束分析

execute dbms_logmnr.end_logmnr;









「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论