正在看
![](/icons/80958de.gif)
ORACLE教程是:理解和使用Oracle 8i分析工具LogMiner
![](/icons/80958dou2.gif)
Oracle LogMiner 是Oracle公司从产品8i以后提供
![](/icons/80958de.gif)
![](/icons/80958yi.gif)
个实际非常有用
![](/icons/80958de.gif)
分析工具
![](/icons/80958dou.gif)
使用该工具可以轻松获得Oracle 重作日志文件(归档日志文件)中
![](/icons/80958de.gif)
具体内容
![](/icons/80958dou.gif)
特别是
![](/icons/80958dou.gif)
该工具可以分析出所有对于数据库操作
![](/icons/80958de.gif)
DML(insert、update、delete等)语句
![](/icons/80958dou.gif)
另外还可分析得到
![](/icons/80958yi.gif)
些必要
![](/icons/80958de.gif)
回滚SQL语句
![](/icons/80958dou2.gif)
该工具特别适用于调试、审计或者回退某个特定
![](/icons/80958de.gif)
事务
LogMiner分析工具实际上是由
![](/icons/80958yi.gif)
组PL/SQL包和
![](/icons/80958yi.gif)
些动态视图(Oracle8i内置包
![](/icons/80958de.gif)
![](/icons/80958yi.gif)
部分)组成
![](/icons/80958dou.gif)
它作为Oracle数据库
![](/icons/80958de.gif)
![](/icons/80958yi.gif)
部分来发布
![](/icons/80958dou.gif)
是8i产品提供
![](/icons/80958de.gif)
![](/icons/80958yi.gif)
个完全免费
![](/icons/80958de.gif)
工具
![](/icons/80958dou2.gif)
但该工具和其他Oracle内建工具相比使用起来显得有些复杂
![](/icons/80958dou.gif)
主要原因是该工具没有提供任何
![](/icons/80958de.gif)
图形用户界面(GUI)
![](/icons/80958dou2.gif)
本文将详细介绍如何安装以及使用该工具
![](/icons/80958yi.gif)
、LogMiner
![](/icons/80958de.gif)
用途
日志文件中存放着所有进行数据库恢复
![](/icons/80958de.gif)
数据
![](/icons/80958dou.gif)
记录了针对数据库结构
![](/icons/80958de.gif)
每
![](/icons/80958yi.gif)
个变化
![](/icons/80958dou.gif)
也就是对数据库操作
![](/icons/80958de.gif)
所有DML语句
在Oracle 8i的前
![](/icons/80958dou.gif)
Oracle没有提供任何协助数据库管理员来读取和解释重作日志文件内容
![](/icons/80958de.gif)
工具
![](/icons/80958dou2.gif)
系统出现问题
![](/icons/80958dou.gif)
对于
![](/icons/80958yi.gif)
个普通
![](/icons/80958de.gif)
数据管理员来讲
![](/icons/80958dou.gif)
唯
![](/icons/80958yi.gif)
可以作
![](/icons/80958de.gif)
工作就是将所有
![](/icons/80958de.gif)
log文件打包
![](/icons/80958dou.gif)
然后发给Oracle公司
![](/icons/80958de.gif)
技术支持
![](/icons/80958dou.gif)
然后静静地等待Oracle 公司技术支持给我们最后
![](/icons/80958de.gif)
答案
![](/icons/80958dou2.gif)
然而从8i以后
![](/icons/80958dou.gif)
Oracle提供了这样
![](/icons/80958yi.gif)
个强有力
![](/icons/80958de.gif)
工具-LogMiner
LogMiner 工具即可以用来分析在线
![](/icons/80958dou.gif)
也可以用来分析离线日志文件
![](/icons/80958dou.gif)
即可以分析本身自己数据库
![](/icons/80958de.gif)
重作日志文件
![](/icons/80958dou.gif)
也可以用来分析其他数据库
![](/icons/80958de.gif)
重作日志文件
总
![](/icons/80958de.gif)
说来
![](/icons/80958dou.gif)
LogMiner工具
![](/icons/80958de.gif)
主要用途有:
1. 跟踪数据库
![](/icons/80958de.gif)
变化:可以离线
![](/icons/80958de.gif)
跟踪数据库
![](/icons/80958de.gif)
变化
![](/icons/80958dou.gif)
而不会影响在线系统
![](/icons/80958de.gif)
性能
2. 回退数据库
![](/icons/80958de.gif)
变化:回退特定
![](/icons/80958de.gif)
变化数据
![](/icons/80958dou.gif)
减少po
![](/icons/80958int.gif)
-in-time recovery
![](/icons/80958de.gif)
执行
3. 优化和扩容计划:可通过分析日志文件中
![](/icons/80958de.gif)
数据以分析数据增长模式
2、安装LogMiner
要安装LogMiner工具
![](/icons/80958dou.gif)
必须首先要运行下面这样两个脚本
l $ORACLE_HOME/rdbms/admin/dbmslsm.sql
2 $ORACLE_HOME/rdbms/admin/dbmslsmd.sql.
这两个脚本必须均以SYS用户身份运行
![](/icons/80958dou2.gif)
其中第
![](/icons/80958yi.gif)
个脚本用来创建DBMS_LOGMNR包
![](/icons/80958dou.gif)
该包用来分析日志文件
![](/icons/80958dou2.gif)
第 2个脚本用来创建DBMS_LOGMNR_D包
![](/icons/80958dou.gif)
该包用来创建数据字典文件
3、使用LogMiner工具
下面将详细介绍如何使用LogMiner工具
1、创建数据字典文件(data-dictionary)
前面已经谈到
![](/icons/80958dou.gif)
LogMiner工具实际上是由两个新
![](/icons/80958de.gif)
PL/SQL内建包((DBMS_LOGMNR 和 DBMS_ LOGMNR_D)和 4个V$动态性能视图(视图是在利用过程DBMS_LOGMNR.START_LOGMNR启动LogMiner时创建)组成
![](/icons/80958dou2.gif)
在使用LogMiner工具分析redo log文件的前
![](/icons/80958dou.gif)
可以使用DBMS_LOGMNR_D 包将数据字典导出为
![](/icons/80958yi.gif)
个文本文件
![](/icons/80958dou2.gif)
该字典文件是可选
![](/icons/80958de.gif)
![](/icons/80958dou.gif)
但是如果没有它
![](/icons/80958dou.gif)
LogMiner解释出来
![](/icons/80958de.gif)
语句中有关数据字典中
![](/icons/80958de.gif)
部分(如表名、列名等)和数值都将是16进制
![](/icons/80958de.gif)
形式
![](/icons/80958dou.gif)
我们是无法直接理解
![](/icons/80958de.gif)
![](/icons/80958dou2.gif)
例如
![](/icons/80958dou.gif)
下面
![](/icons/80958de.gif)
sql语句:
LogMiner解释出来
![](/icons/80958de.gif)
结果将是下面这个样子
创建数据字典
![](/icons/80958de.gif)
目
![](/icons/80958de.gif)
就是让LogMiner引用涉及到内部数据字典中
![](/icons/80958de.gif)
部分时为他们实际
![](/icons/80958de.gif)
名字
![](/icons/80958dou.gif)
而不是系统内部
![](/icons/80958de.gif)
16进制
![](/icons/80958dou2.gif)
数据字典文件是
![](/icons/80958yi.gif)
个文本文件
![](/icons/80958dou.gif)
使用包DBMS_LOGMNR_D来创建
![](/icons/80958dou2.gif)
如果我们要分析
![](/icons/80958de.gif)
数据库中
![](/icons/80958de.gif)
表有变化
![](/icons/80958dou.gif)
影响到库
![](/icons/80958de.gif)
数据字典也发生变化
![](/icons/80958dou.gif)
这时就需要重新创建该字典文件
![](/icons/80958dou2.gif)
另外
![](/icons/80958yi.gif)
种情况是在分析另外
![](/icons/80958yi.gif)
个数据库文件
![](/icons/80958de.gif)
重作日志时
![](/icons/80958dou.gif)
也必须要重新生成
![](/icons/80958yi.gif)
遍被分析数据库
![](/icons/80958de.gif)
数据字典文件
首先在init.ora
![](/icons/80958chushi.gif)
化参数文件中
![](/icons/80958dou.gif)
指定数据字典文件
![](/icons/80958de.gif)
位置
![](/icons/80958dou.gif)
也就是添加
![](/icons/80958yi.gif)
个参数UTL_FILE_DIR
![](/icons/80958dou.gif)
该参数值为服务器中放置数据字典文件
![](/icons/80958de.gif)
目录
![](/icons/80958dou2.gif)
如:
重新启动数据库
![](/icons/80958dou.gif)
使新加
![](/icons/80958de.gif)
参数生效
![](/icons/80958dou.gif)
然后创建数据字典文件:
[NextPage]
2、创建要分析
![](/icons/80958de.gif)
日志文件列表
Oracle
![](/icons/80958de.gif)
重作日志分为两种
![](/icons/80958dou.gif)
在线(online)和离线(offline)归档日志文件
![](/icons/80958dou.gif)
下面就分别来讨论这两种区别日志文件
![](/icons/80958de.gif)
列表创建
(1)分析在线重作日志文件
A. 创建列表
B. 添加其他日志文件到列表
(2)分析离线日志文件
A.创建列表
B.添加另外
![](/icons/80958de.gif)
日志文件到列表
有关这个日志文件列表中需要分析日志文件
![](/icons/80958de.gif)
个数完全由你自己决定
![](/icons/80958dou.gif)
但这里建议最好是每次只添加
![](/icons/80958yi.gif)
个需要分析
![](/icons/80958de.gif)
日志文件
![](/icons/80958dou.gif)
在对该文件分析完毕后
![](/icons/80958dou.gif)
再添加另外
![](/icons/80958de.gif)
文件
和添加日志分析列表相对应
![](/icons/80958dou.gif)
使用过程 'dbms_logmnr.removefile' 也可以从列表中移去
![](/icons/80958yi.gif)
个日志文件
![](/icons/80958dou2.gif)
下面
![](/icons/80958de.gif)
例子移去上面添加
![](/icons/80958de.gif)
日志文件e:\Oracle\oradata\sxf\redo02.log
创建了要分析
![](/icons/80958de.gif)
日志文件列表
![](/icons/80958dou.gif)
下面就可以对其进行分析了
3、使用LogMiner进行日志分析
(1)无限制条件
(2)有限制条件
通过对过程DBMS_ LOGMNR.START_LOGMNR中几个区别参数
![](/icons/80958de.gif)
设置(参数含义见表1)
![](/icons/80958dou.gif)
可以缩小要分析日志文件
![](/icons/80958de.gif)
范围
![](/icons/80958dou2.gif)
通过设置起始时间和终止时间参数我们可以限制只分析某
![](/icons/80958yi.gif)
时间范围
![](/icons/80958de.gif)
日志
![](/icons/80958dou2.gif)
如下面
![](/icons/80958de.gif)
例子
![](/icons/80958dou.gif)
我们仅仅分析2001年9月18日
![](/icons/80958de.gif)
日志
![](/icons/80958dou.gif)
:
也可以通过设置起始SCN和截至SCN来限制要分析日志
![](/icons/80958de.gif)
范围:
表1 DBMS_LOGMNR.START__LOGMNR过程参数含义
[NextPage]
4、观察分析结果(v$logmnr_contents)
到现在为止
![](/icons/80958dou.gif)
我们已经分析得到了重作日志文件中
![](/icons/80958de.gif)
内容
![](/icons/80958dou2.gif)
动态性能视图v$logmnr_contents包含LogMiner分析得到
![](/icons/80958de.gif)
所有
![](/icons/80958de.gif)
信息
如果我们仅仅想知道某个用户对于某张表
![](/icons/80958de.gif)
操作
![](/icons/80958dou.gif)
可以通过下面
![](/icons/80958de.gif)
SQL查询得到
![](/icons/80958dou.gif)
该查询可以得到用户DB_ZGXT对表SB_DJJL所作
![](/icons/80958de.gif)
![](/icons/80958yi.gif)
切工作
需要强调
![](/icons/80958yi.gif)
点
![](/icons/80958de.gif)
是
![](/icons/80958dou.gif)
视图v$logmnr_contents中
![](/icons/80958de.gif)
分析结果仅在我们运行过程'dbms_logmrn.start_logmnr'这个会话
![](/icons/80958de.gif)
生命期中存在
![](/icons/80958dou2.gif)
这是
![](/icons/80958yinwei.gif)
所有
![](/icons/80958de.gif)
LogMiner存储都在PGA内存中
![](/icons/80958dou.gif)
所有其他
![](/icons/80958de.gif)
进程是看不到它
![](/icons/80958de.gif)
![](/icons/80958dou.gif)
同时随着进程
![](/icons/80958de.gif)
结束
![](/icons/80958dou.gif)
分析结果也随的消失
最后
![](/icons/80958dou.gif)
使用过程DBMS_LOGMNR.END_LOGMNR终止日志分析事务
![](/icons/80958dou.gif)
此时PGA内存区域被清除
![](/icons/80958dou.gif)
分析结果也随的不再存在
4、其他注意事项
我们可以利用LogMiner日志分析工具来分析其他数据库例子产生
![](/icons/80958de.gif)
重作日志文件
![](/icons/80958dou.gif)
而不仅仅用来分析本身安装LogMiner
![](/icons/80958de.gif)
数据库例子
![](/icons/80958de.gif)
redo logs文件
![](/icons/80958dou2.gif)
使用LogMiner分析其他数据库例子时
![](/icons/80958dou.gif)
有几点需要注意:
1. LogMiner必须使用被分析数据库例子产生
![](/icons/80958de.gif)
字典文件
![](/icons/80958dou.gif)
而不是安装LogMiner
![](/icons/80958de.gif)
数据库产生
![](/icons/80958de.gif)
字典文件
![](/icons/80958dou.gif)
另外必须保证安装LogMiner数据库
![](/icons/80958de.gif)
![](/icons/80958zifu.gif)
集和被分析数据库
![](/icons/80958de.gif)
![](/icons/80958zifu.gif)
集相同
2. 被分析数据库平台必须和当前LogMiner所在数据库平台
![](/icons/80958yi.gif)
样
![](/icons/80958dou.gif)
也就是说如果我们要分析
![](/icons/80958de.gif)
文件是由运行在UNIX平台上
![](/icons/80958de.gif)
Oracle 8i产生
![](/icons/80958de.gif)
![](/icons/80958dou.gif)
那么也必须在
![](/icons/80958yi.gif)
个运行在UNIX平台上
![](/icons/80958de.gif)
Oracle例子上运行LogMiner
![](/icons/80958dou.gif)
而不能在其他如Microsoft NT上运行LogMiner
![](/icons/80958dou2.gif)
当然两者
![](/icons/80958de.gif)
硬件条件不
![](/icons/80958yi.gif)
定要求完全
![](/icons/80958yi.gif)
样
3. LogMiner日志分析工具仅能够分析Oracle 8以后
![](/icons/80958de.gif)
产品
![](/icons/80958dou.gif)
对于8以前
![](/icons/80958de.gif)
产品
![](/icons/80958dou.gif)
该工具也无能为力
5、结语
LogMiner对于数据库管理员(DB
[1] [2] 下
页 正在看
![](/icons/80958de.gif)
ORACLE教程是:理解和使用Oracle 8i分析工具LogMiner
![](/icons/80958dou2.gif)
A)来讲是个功能非常强大
![](/icons/80958de.gif)
工具
![](/icons/80958dou.gif)
也是在日常工作中经常要用到
![](/icons/80958de.gif)
![](/icons/80958yi.gif)
个工具
![](/icons/80958dou.gif)
借助于该工具
![](/icons/80958dou.gif)
可以得到大量
![](/icons/80958de.gif)
有关数据库活动
![](/icons/80958de.gif)
信息
![](/icons/80958dou2.gif)
其中
![](/icons/80958yi.gif)
个最重要
![](/icons/80958de.gif)
用途就是不用全部恢复数据库就可以恢复数据库
![](/icons/80958de.gif)
某个变化
![](/icons/80958dou2.gif)
另外
![](/icons/80958dou.gif)
该工具还可用来监视或者审计用户
![](/icons/80958de.gif)
活动
![](/icons/80958dou.gif)
如你可以利用LogMiner工具察看谁曾经修改了那些数据以及这些数据在修改前
![](/icons/80958de.gif)
状态
![](/icons/80958dou2.gif)
我们也可以借助于该工具分析任何Oracle 8及其以后版本产生
![](/icons/80958de.gif)
重作日志文件
![](/icons/80958dou2.gif)
另外该工具还有
![](/icons/80958yi.gif)
个非常重要
![](/icons/80958de.gif)
特点就是可以分析其他数据库
![](/icons/80958de.gif)
日志文件
![](/icons/80958dou2.gif)
总的
![](/icons/80958dou.gif)
该工具对于数据库管理员来讲
![](/icons/80958dou.gif)
是
![](/icons/80958yi.gif)
个非常有效
![](/icons/80958de.gif)
工具
![](/icons/80958dou.gif)
深刻理解及熟练掌握该工具
![](/icons/80958dou.gif)
对于每
![](/icons/80958yi.gif)
个数据库管理员
![](/icons/80958de.gif)
实际工作是非常有帮助
![](/icons/80958de.gif)
上
页
上
页 [1] [2]