赛迪网 > IT技术 数据库 > 精彩更新
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

讲解Oracle数据库LogMiner工具的使用方法

发布时间:2008.07.16 09:18     来源:赛迪网    作者:Alizze

【赛迪网-IT技术报道】Logminer(DBMS_LOGMNR和DBMS_LOGMNR_D)package,可以用来分析Oracle的重做日志文件。Logminer是oracle从8i开始提供的工具。

我们可以使用logminer分析其它instance(版本可不一致)的重做日志文件,但是必须遵循以下要求:

1.LogMiner日志分析工具仅能够分析Oracle 8以后的产品

2.LogMiner必须使用被分析数据库实例产生的字典文件,且安装LogMiner数据库的字符集必须和被分析数据库的字符集相同

3.被分析数据库平台必须和当前LogMiner所在数据库平台一样,且block size相同。

使用logminer

1.安装logminer:

要安装LogMiner工具,必须首先要运行下面这样两个脚本,

$ORACLE_HOME/rdbms/admin/dbmslm.sql

$ORACLE_HOME/rdbms/admin/dbmslmd.sql.

这两个脚本必须均以SYS用户身份运行。

2.创建数据字典文件

首先在init.ora初始化参数文件中,添加参数UTL_FILE_DIR,该参数值为服务器中放置数据字典文件的目录。如:

UTL_FILE_DIR = (D:\Oracle\logs)

重新启动数据库,使新加的参数生效,然后创建数据字典文件:

SQL> EXECUTE dbms_logmnr_d.build(

dictionary_filename => ' logmn_ora817.dat',

dictionary_location => ' D:\Oracle\logs ');

创建数据字典是让LogMiner引用涉及到内部数据字典中的部分时使用对象的名称,而不是系统内部的16进制的ID。如果我们要分析的数据库中的表有变化,影响到库的数据字典也发生变化,就需要重新创建该字典。

3.添加要分析的日志文件

Logminer可以用来分析在线的重做日志文件和归档日志文件,但是我们一般建议使用归档的日志文件。

a.添加新的日志文件:

SQL> EXECUTE dbms_logmnr.add_logfile(

LogFileName=>' D:\database\oracle\oradata\ora817\archive \ ARC01491.001 ', Options=>dbms_logmnr.new);

b.添加另外的日志文件到列表

SQL> EXECUTE dbms_logmnr.add_logfile(

LogFileName=>' D:\database\oracle\oradata\ora817\archive \ ARC01491.002', Options=>dbms_logmnr.addfile);

c. 移去一个日志文件

SQL> EXECUTE dbms_logmnr.add_logfile(

LogFileName=>' D:\database\oracle\oradata\ora817\archive \ ARC01491.002', Options=>dbms_logmnr. REMOVEFILE);

创建了要分析的日志文件,就可以对其进行分析。

4. 进行日志分析

SQL> EXECUTE dbms_logmnr.start_logmnr(

DictFileName=>' D:\Oracle\logs\ logmn_ora817.dat ');

可以使用相应的限制条件:

时间范围:对dbms_logmnr.start_logmnr使用StartTime和EndTime参数

SCN范围:对dbms_logmnr.start_logmnr使用StartScn和EndScn参数

5.观察结果:

主要是查询v$logmnr_contents:

SQL> desc v$logmnr_contents;

名称 空? 类型

----------------------------------------- -------- ----------------------

SCN NUMBER

TIMESTAMP DATE

THREAD# NUMBER

LOG_ID NUMBER

XIDUSN NUMBER

XIDSLT NUMBER

XIDSQN NUMBER

RBASQN NUMBER

RBABLK NUMBER

RBABYTE NUMBER

UBAFIL NUMBER

UBABLK NUMBER

UBAREC NUMBER

UBASQN NUMBER

ABS_FILE# NUMBER

REL_FILE# NUMBER

DATA_BLK# NUMBER

DATA_OBJ# NUMBER

DATA_OBJD# NUMBER

SEG_OWNER VARCHAR2(32)

SEG_NAME VARCHAR2(32)

SEG_TYPE NUMBER

SEG_TYPE_NAME VARCHAR2(32)

TABLE_SPACE VARCHAR2(32)

ROW_ID VARCHAR2(19)

SESSION# NUMBER

SERIAL# NUMBER

USERNAME VARCHAR2(32)

SESSION_INFO VARCHAR2(4000)

ROLLBACK NUMBER

OPERATION VARCHAR2(32)

SQL_REDO VARCHAR2(4000)

SQL_UNDO VARCHAR2(4000)

RS_ID VARCHAR2(32)

SSN NUMBER

CSF NUMBER

INFO VARCHAR2(32)

STATUS NUMBER

PH1_NAME VARCHAR2(32)

PH1_REDO VARCHAR2(2000)

PH1_UNDO VARCHAR2(2000)

PH2_NAME VARCHAR2(32)

PH2_REDO VARCHAR2(2000)

PH2_UNDO VARCHAR2(2000)

PH3_NAME VARCHAR2(32)

PH3_REDO VARCHAR2(2000)

PH3_UNDO VARCHAR2(2000)

PH4_NAME VARCHAR2(32)

PH4_REDO VARCHAR2(2000)

PH4_UNDO VARCHAR2(2000)

PH5_NAME VARCHAR2(32)

PH5_REDO VARCHAR2(2000)

PH5_UNDO VARCHAR2(2000)

通过字段sql_redo可以得到该日志文件中进行过的sql操作,通过sql_undo可以得到撤销的sql语句。

还可以用这样的sql对日志文件中的所有的操作分类统计:

select operation,count(*)from v$logmnr_contents group by operation;

视图v$logmnr_contents中的分析结果仅在我们运行过程'dbms_logmrn.start_logmnr'这个会话的生命期中存在。这是因为所有的LogMiner存储都在PGA内存中,所有其他的会话是看不到它的,同时随着会话的结束而清除分析结果。

最后,使用过程DBMS_LOGMNR.END_LOGMNR终止日志分析事务,PGA内存区域将被清除。

(责任编辑:卢兆林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· Oracle新手经常碰到的六个错误及解决方案 (07-15) · 讲解Oracle数据库ORA-00257故障的解决过程 (07-14)
· 讲解Oracle数据库ORA-00257故障的解决过程 (07-14) · 详细讲解Oracle数据库运行错误的解决方法 (07-10)
· Oracle数据库高性能秘密之数据高速缓存 (07-08) · Oracle数据库维护常用SQL语句集合(3) (07-02)
· Oracle数据库维护常用SQL语句集合(2) (07-01) · Caché与Oracle在数据仓库应用中的比较 (06-25)
· Oracle初级用户必须了解的ORA-01034错误 (06-24) · DBA:巧用ora2html收集Oracle数据库信息 (06-24)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 信息化市场百家争鸣 SaaS深陷争议“泥潭”
· 提高管理水平 "两栖"CIO应具备的六大能力
· 国产ITIL运维先行者 四大厂商角力BI市场
· 金融行业GSN专题解决方案 企业网解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统