提示: 请使用sys用户 进行操作
1. 执行脚本创建必要条件.
conn sys/catalog@catalog as sysdba |
创建dbms_logmnr包,该包用来分析日志文件
创建dbms_logmnr_d包,该包用来创建数据字典文件。
@?/ rdbms/admin/dbmslm.sql @?/rdbms/admin/dbmslmd.sql |
2. 概念解释
在oracle8i的时候,首先在init.ora初始化参数文件中,指定数据字典文件的位置,
也就是添加一个参数utl_file_dir,该参数值为服务器中放置数据字典文件的目录。如:
utl_file_dir = (e:\utl_file_dir)
oracle9i后,推荐使用spfile启动,可以动态调整参数;
修改初始化参数utl_file_dir,指定分析数据的存放处(9i)
alter system set utl_file_dir=utl_file_dir' scope=spfile;
创建数据字典文件(data-dictionary)
数据字典文件是一个文本文件,使用包dbms_logmnr_d来创建。
如果我们要分析的数据库中的表有变化,影响到库的数据字典也发生变化,
这时就需要重新创建该字典文件。
另外一种情况是在分析另外一个数据库文件的重作日志时,
也必须要重新生成一遍被分析数据库的数据字典文件。
3. 创建数据字典文件
@e:\oracle\dbms_logmnr_d.build.txt |
内容:
begin dbms_logmnr_d.build( dictionary_filename => 'logminer_dict.dat', dictionary_location => '/u01/app/oracle/utl_file_dir'); end; / |
4. 创建要分析的日志文件列表
execute dbms_logmnr.add_logfile(options =>dbms_logmnr.new,logfilename =>'/u01/app/oracle/fast_recovery_area/sztech1/archivelog/2015_04_23/o1_mf_1_22_bmjkodo2_.arc'); |
批量产生脚本
select 'execute dbms_logmnr.add_logfile(options =>dbms_logmnr.new,logfilename=>''' || name || ''');' from v$archived_log |
5. 添加另外的日志文件到列表
execute dbms_logmnr.add_logfile(options =>dbms_logmnr.addfile,logfilename=>'e:\oracle\oradata\catalog\archived\arc23.001'); |
批量添加
select 'execute dbms_logmnr.add_logfile(options =>dbms_logmnr.addfile,logfilename=>''' || name || ''');' from v$archived_log |
6. 删除日志文件到列表
execute dbms_logmnr.add_logfile(options =>dbms_logmnr.removefile,logfilename =>'e:\oracle\oradata\catalog\archived\arc23.001'); |
批量删除
select 'execute dbms_logmnr.add_logfile(options =>dbms_logmnr.removefile,logfilename=>''' || name || ''');' from v$archived_log |
7. 启动logminer进行分析
begin dbms_logmnr.start_logmnr( dictfilename => '/u01/app/oracle/utl_file_dir/logminer_dict.dat'); end; / |
8. 观察分析结果(v$logmnr_contents)
set linesize 160 col operation for a15 col sql_redo for a50 col username for a9 col sql_undo for a50 alter session set nls_date_format ='yyyy-mm-dd hh24:mi:ss'; select scn,timestamp, session# session_num, sql_redo ,username from v$logmnr_contents where username='a1' order by 1; |
9. 结束分析
execute dbms_logmnr.end_logmnr; |
一旦结束视图v$logmnr_contents中的分析结果也随之不再存在。
如果再重新进入的话就需要重新加入日志文件并进行分析。
附:A
begin execute dbms_logmnr.start_logmnr(dictfilename => 'e:\utl_file_dir\logminer_dict.dat',starttime => to_date('2008/01/17 00:00:00','yyyy/mm/dd hh24:mi:ss'), endtime => to_date('2008/01/17 23:59:59','yyyy/mm/dd hh24:mi:ss ')) end; / |
也可以通过设置起始scn和截至scn来限制要分析日志的范围:
execute dbms_logmnr.start_logmnr(dictfilename => 'e:\oracle\logs\logminer_dict.dat',startscn => 17,endscn =>20); |
dbms_logmnr.start__logmnr过程参数含义
参数 参数类型 默认值 含义
startscn 数字型(number) 0 分析重作日志中scn≥startscn日志文件部分
endscn 数字型(number) 0 分析重作日志中scn≤endscn日志文件部分
starttime 日期型(date) 1998-01-01 分析重作日志中时间戳≥starttime的日志文件部分
endtime 日期型(date) 2988-01-01 分析重作日志中时间戳≤endtime的日志文件部分
查询分析的日志文档包含的scn范围和日期范围
select low_time,high_time,low_scn, next_scn from v$logmnr_logs; |
附B:不重启数据库使用logminer
10. 创建相关的
创建dbms_logmnr包,该包用来分析日志文件
创建dbms_logmnr_d包,该包用来创建数据字典文件。
@?/ rdbms/admin/dbmslm.sql @?/rdbms/admin/dbmslmd.sql |
11. 创建要分析的日志文件列表
execute dbms_logmnr.add_logfile(options =>dbms_logmnr.new,logfilename =>'/u01/app/oracle/fast_recovery_area/sztech1/archivelog/2015_04_23/o1_mf_1_22_bmjkodo2_.arc'); |
批量添加
select 'execute dbms_logmnr.add_logfile(options =>dbms_logmnr.addfile,logfilename=>''' || name || ''');' from v$archived_log |
12. 添加另外的日志文件到列表
execute dbms_logmnr.add_logfile(options =>dbms_logmnr.addfile,logfilename=>'e:\oracle\oradata\catalog\archived\arc23.001'); |
13. 删除
execute dbms_logmnr.add_logfile(options =>dbms_logmnr.removefile,logfilename =>'e:\oracle\oradata\catalog\archived\arc23.001'); |
14. 启动logminer进行分析
begin dbms_logmnr.start_logmnr(); end; / |
15. 观察分析结果(v$logmnr_contents)
set linesize 160 col operation for a15 col sql_redo for a50 col username for a9 col sql_undo for a50 alter session set nls_date_format ='yyyy-mm-dd hh24:mi:ss'; select scn,timestamp, session# session_num, sql_redo ,username from v$logmnr_contents where username='a1' order by 1; |
16. 结束分析
execute dbms_logmnr.end_logmnr; |
一旦结束视图v$logmnr_contents中的分析结果也随之不再存在。
如果再重新进入的话就需要重新加入日志文件并进行分析。
附C:
execute dbms_logmnr_d.build(dictionary_filename=>'logminer_dict.dat',dictionary_location=>'/u01/app/oracle/fast_recovery_area/SZTECH1/archivelog/2015_04_23/'); |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16615244/viewspace-1870428/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16615244/viewspace-1870428/