Chinaunix首页 | 论坛 | 博客
  • 博客访问: 569217
  • 博文数量: 126
  • 博客积分: 8010
  • 博客等级: 中将
  • 技术积分: 1112
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-22 11:41
文章分类
文章存档

2010年(1)

2009年(5)

2008年(66)

2007年(54)

我的朋友

分类: Oracle

2008-02-18 21:51:09

action: 使用logminer 工具 分析数据库归档日志,挖掘日志信息,便于查找问题
======================================================================================================
提示: 请使用sys用户 进行操作
1.  conn as sysdba
创建DBMS_LOGMNR包,该包用来分析日志文件
创建DBMS_LOGMNR_D包,该包用来创建数据字典文件。
@e:\oracle\ora92\RDBMS\ADMIN\dbmslm.sql
@e:\oracle\ora92\RDBMS\ADMIN\dbmslmd.sql
2.
在ORACLE8I的时候,首先在init.ora初始化参数文件中,指定数据字典文件的位置,
也就是添加一个参数UTL_FILE_DIR,该参数值为服务器中放置数据字典文件的目录。如:
UTL_FILE_DIR = (e:\Oracle\logs)
ORACLE9I后,推荐使用SPFILE启动,可以动态调整参数;
修改初始化参数UTL_FILE_DIR,指定分析数据的存放处(9i)
alter system set utl_file_dir='e:\oracle\logs' 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 => 'e:\oracle\logs');
END;
/
4.创建要分析的日志文件列表
execute dbms_logmnr.add_logfile(options =>dbms_logmnr.new,logfilename =>'E:\oracle\oradata\catalog\archived\ARC23.001');

添加另外的日志文件到列表
execute dbms_logmnr.add_logfile(options =>dbms_logmnr.addfile,logfilename=>'E:\oracle\oradata\catalog\archived\ARC23.001');
5.删除
execute dbms_logmnr.add_logfile(options =>dbms_logmnr.removefile,logfilename =>'E:\oracle\oradata\catalog\archived\ARC23.001');

6.启动LogMiner进行分析
BEGIN
dbms_logmnr.start_logmnr(
dictfilename => 'e:\oracle\logs\logminer_dict.dat');
END;
/
7.观察分析结果(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;
8.结束分析
 execute dbms_logmnr.end_logmnr;
一旦结束视图v$logmnr_contents中的分析结果也随之不再存在。
如果再重新进入的话就需要重新加入日志文件并进行分析。
====================================================================================================
====================================================================================================
补充提示内容:
BEGIN
EXECUTE dbms_logmnr.start_logmnr(DictFileName => 'e:\oracle\logs\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;
阅读(2117) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~