My FAQ,最新最全的IT技术FAQ
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 未整理篇 | 技术讨论
  当前位置: > 程序开发 > 数据库开发 > Oracle
关于Logminer
作者:未知 时间:2005-09-13 23:41 出处:Blog.ChinaUnix.net 责编:My FAQ
              摘要:关于Logminer
Logminer能用来做什么?
LogMiner 提供了一个处理重做日志文件并将其内容翻译成代表对数据库的逻辑操作的SQL 语句的过程。
LogMiner 运行在Oracle 版本8.1 或者更高版本中。

如何使用Logminer:
1。先要安装logminer的两个包;以SYS用户运行下面两个sql:
$ORACLE_HOME/rdbms/admin/dbmslm.sql
$ORACLE_HOME/rdbms/admin/dbmslmd.sql


2。创建数据字典文件
在参数文件中,添加参数
UTL_FILE_DIR,该参数为放置数据字典文件的目录。
如:UTL_FILE_DIR = (e:\Oracle\logs)
重新启动数据库,使参数生效,然后创建数据字典文件:
EXECUTE dbms_logmnr_d.build(
dictionary_filename => ' v816dict.ora',
dictionary_location => 'e:\oracle\logs');
创建数据字典是让logminer引用实际到内部数据字典中的部分是使用对象的名称,而不是系统内部的16进制的ID.


3.创建要分析的日志文件的列表
(1)分析在线的重做日志
A。建立列表
EXECUTE dbms_logmnr.add_logfile(
LogFileName=>' e:\Oracle\oradata\sxf\redo01.log',
Options=>dbms_logmnr.new);
B。添加其他日至文件到列表
EXECUTE dbms_logmnr.add_logfile(
LogFileName=>' e:\Oracle\oradata\sxf\redo02.log',
Options=>dbms_logmnr.addfile);
(2)分析归档的重做日志
A。建立列表
EXECUTE dbms_logmnr.add_logfile(
LogFileName=>' E:\Oracle\oradata\sxf\archive\ARCARC09108.001',
Options=>dbms_logmnr.new);
B。添加其他日志文件到列表
EXECUTE dbms_logmnr.add_logfile(
LogFileName=>' E:\Oracle\oradata\sxf\archive\ARCARC09109.001',
Options=>dbms_logmnr.addfile);

在列表中删除文件
EXECUTE dbms_logmnr.add_logfile(
LogFileName=>' e:\Oracle\oradata\sxf\redo02.log',
Options=>dbms_logmnr. REMOVEFILE);


4.使用Logminer进行日志分析
无限制条件:
EXECUTE dbms_logmnr.start_logmnr(
DictFileName=>' e:\oracle\logs\ v816dict.ora ');
有限制条件:
通过对过程DBMS_LOGMNR.START_LOGMNR中的时间或者SCN参数的设置,可以缩小分析日志文件的范围:
如我们仅仅分析2005年7月23日到2005年7月26日的日志:
EXECUTE dbms_logmnr.start_logmnr(
DictFileName => ' e:\oracle\logs\ v816dict.ora ',
StartTime => to_date('2005-7-23 00:00:00','YYYY-MM-DD HH24:MI:SS')
EndTime => to_date(''2005-7-26 23:59:59','YYYY-MM-DD HH24:MI:SS '));

相关的参数如下:
参数 参数类型 默认值 含义
StartScn 数字型 0 分析重作日志中SCN≥StartScn日志文件部分
EndScn
数字型 0 分析重作日志中SCN≤EndScn日志文件部分
StartTime 日期型 1998-01-01 分析重作日志中时间戳≥StartTime的日志文件部分
EndTime 日期型 2988-01-01 分析重作日志中时间戳≤EndTime的日志文件部分
DictFileName 字符型 字典文件该文件包含一个数据库目录的快照。
使用该文件可以使得到的分析结果是可以理解的文本形式,
而非系统内部的16进制
Options BINARY_INTEGER 0 系统调试参数,实际很少使用
5。得到分析结果:
这时候可以对v$logmnr_contents查询来得到你想要得结果:
select sql_redo from v$logmnr_contents;
如果想知道某个用户对某张表的操作,比如查询用户symield对表bill所做的操作:
select sql_redo from v$logmnr_contents where username = 'symield' and seg_name = 'bill';

这个视图:v$logmnr_contents只在dbms_logmnr.start_logmnr这个会话的生存期内存在,
当过程终止后,此视图内容被清除。

6。使用DBMS_LOGMNR.END_LOGMNR结束日志分析过程。



reference:http://www.cer.net/article/20050422/3135281.shtml





 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有