logminer使用

来源:互联网 发布:淘宝店铺常用推广方式 编辑:程序博客网 时间:2024/04/30 14:48

LogMiner工具的主要用途有:
1. 跟踪数据库的变化:可以离线的跟踪数据库的变化,而不会影响在线系统的性能。
2. 回退数据库的变化:回退特定的变化数据,减少point-in-time recovery的执行。
3. 优化和扩容计划:可通过分析日志文件中的数据以分析数据增长模式。

logminer数据字典生成方式:

Logmnr对源字典提供三种选择:

1数据库必须设置utl_file_dir

2,3数据库可以不用设置也就是说可以不用重启实例分析日志

1、提取数据字典到数据文件(extracting the dictionary to a flat file)

2、提取字典到日志文件(extracting the dictionary to the redo logs
EXECUTE DBMS_LOGMNR_D.BUILD(OPTIONS=>DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);

3、使用联机目录(using online catalog

EXECUTE DBMS_LOGMNR.START_LOGMNR (OPTIONS=>DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);


LogMiner安装要安装LogMiner工具,必须首先要运行下面这样两个脚本,
l $ORACLE_HOME/rdbms/admin/dbmslm.sql
2 $ORACLE_HOME/rdbms/admin/dbmslmd.sql
这两个脚本必须均以SYS用户身份运行。其中第一个脚本用来创建DBMS_LOGMNR包,该包用来分析日志文件。第二个脚本用来创建DBMS_LOGMNR_D包,该包用来创建数据字典文件。

alter system set utl_file_dir='F:\oracle\product\10.2.0\admin\log' scope=spfile; --设置数据字典路径

--数据库当前数据字典分析出来,生成数据字典文件

BEGIN
dbms_logmnr_d.build(dictionary_filename=>'dict.ora',
dictionary_location=>'F:\oracle\product\10.2.0\admin\log');
END;
/

--添加需要分析的日志文件可以是归档日志也可是在线日志添加多个就多执行几次只用修改logfilename路径就行了

BEGIN
dbms_logmnr.add_logfile(options=>dbms_logmnr.addfile,
logfilename=>'F:\oracle\product\10.2.0\db_1\flash_recovery_area\ORCL\ARCHIVELOG\2013_09_10\O1_MF_1_12_92WT9WY9_.ARC');
END;
/

--查看添加的需要分析日志文件

select filename from v$logmnr_logs;

 

--开始分析

BEGIN
dbms_logmnr.start_logmnr(
dictfilename => 'F:\oracle\product\10.2.0\admin\log\log.ora');
END;
/

--查询分析结果另存为dict.log
LogMiner相关的数据字典。
1、v$loglist 它用于显示历史日志文件的一些信息
2、v$logmnr_dictionary 因logmnr可以有多个字典文件,该视图用于显示这方面信息。
3、v$logmnr_parameters 它用于显示logmnr的参数
4、v$logmnr_logs 它用于显示用于分析的日志列表信息

spool dict.log
set echo off
set termout off
set lines 3000
select operation,sql_redo,sql_undo from v$logmnr_contents ; --sql可以自定义来查询自己需要的信息
spool off

--结束分析
execute dbms_logmnr.end_logmnr;

 

注意:在使用挖掘日志过程中每分析需要重新生成数据字典信息,重头做起,不然就挖掘不到完整的日志信息

对应dml语句可以找到对应的undo语句,ddl只能查找到做操作的人

原创粉丝点击