使用logminer分析oracle日志文件
一,介绍logminer
日志文件中存放着所有进行数据库恢复的数据,记录了针对数据库结构的每一个变化,也就是对数据库操作的所有DML语句。
logminer 工具即可以用来分析在线,也可以用来分析离线日志文件,即可以分析本身自己数据库的重作日志文件,也可以用来分析其他数据库的重作日志文件。
二,应用场景
1,查看数据库的操作记录
2,对用户的操作进行回退,特别是在没有备份的情况下
三,相关过程和视图
logmnr包含两个PL/SQL包和几个视图
dbms_logmnr_d包:用于提取字典信息到外部平面文件或者是联机日志中去
dbms_logmnr包,主要包括三个过程
1, add_logfile:主要用来添加、删除用于分析的日志文件
2,start_logmnr:用来开启日志分析
3,end_logmnr:用来关闭日志分析,它将回收logminer所占的内存
执行以上的包必须有sys权限
相关的数据字典:
v$logmnr_dictionary: Logminer可能使用的数据字典信息
v$logmnr_parameters:当前logminer所设的参数信息
v$logmnr_contents:日志分析结果
这些数据字典是和session相关的,只能在当前session看到。如果想保存结果,可以使用create table a as select * from v$logmnr_contents的方式来保存
四,分析过程:
1, 执行脚本
运行下面这样两个脚本,
l、 $ORACLE_HOME/rdbms/admin/dbmslm.sql
2 、$ORACLE_HOME/rdbms/admin/dbmslmd.sql
3、 $ORACLE_HOME/rdbms/admin/dbmslms.sql
2,设置参数UTL_FILE_DIR
alter system set UTL_FILE_DIR ='/oracle/logminer' scope=spfile;,然后重新启动机器
3,生成dict文件
execute DBMS_LOGMNR_D.BUILD(dictionary_filename => 'dictionary.ora',dictionary_location
=> '/usr/tmp');
4, 添加log文件
begin dbms_logmnr.add_logfile(options=>dbms_logmnr.new,logfilename=>'/oracle/product/9.2.0/dbs/arch/1_17.arc');end;
5, 查询添加结果
select low_time,high_time,low_scn,next_scn from v$logmnr_logs;
6, 开始生成
begin dbms_logmnr.start_logmnr(dictfilename=>'/oracle/dictionary.ora');end;
/
7,查看log内容
select * from v$v$logmnr_contents;
更详细的步骤可以参照http://oracle.chinaitlab.com/induction/725752.html