ITPub博客

首页 > Linux操作系统 > Linux操作系统 > logmnr 使用

logmnr 使用

原创 Linux操作系统 作者:yellowlee 时间:2009-08-04 14:36:01 0 删除 编辑


--------------------------------
--logminer工具
--------------------------------
创建必须的包:
SQL> @ e:\oracle\ora92\rdbms\admin\dbmslm.sql;
 
Package created
 
Grant succeeded
 
SQL> @ e:\oracle\ora92\rdbms\admin\dbmslmd.sql;
 
Procedure created
No errors for PROCEDURE SYS.LOGMNR_CREATE_REPLACE_METADATA
 
Grant succeeded


PL/SQL procedure successfully completed
 
Package created

LogMiner分析重做日志文件的操作:
 1. 使用LogMiner存储过程创建一个外部数据字典文件
 2. 然后使用另一个存储过程创建一个被分析的重做文件的列表
 3. 最后执行另一个存储过程来启动LogMiner

LogMiner重要的过程和视图
 过程   
dbms_logmnr_d.build  创建一个数据字典文件
dbms_logmnr.add_logfile  在列表中增加日志文件以供分析
dbms_logmnr.start_logmnr 使用一个个可选的字典文件和前面确定要分析的日志文件来启动LogMiner
dbms_logmnr.end_logmnr  停止LogMiner分析

 视图
v$logmnr_dictionary  显示用来决定对象ID名称的字典文件的信息
v$logmnr_logs  在LogMiner启动时显示被分析的日志列表
v$logmnr_contents LogMiner启动后,可以使用这个视图在sql提示符下输入sql语句来查询重做日志的内容


----------
--参数设置
----------
SQL> alter system set  utl_file_dir='e:\oracle\ora92\database\archive';
alter system set  utl_file_dir='e:\oracle\ora92\database\archive'
                  *
ERROR 位于第 1 行:
ORA-02095: 无法修改指定的初始化参数


SQL> alter system set  utl_file_dir='e:\oracle\ora92\database\archive' scope=spf
ile;

系统已更改。

SQL> execute dbms_logmnr_d.build(dictionary_filename =>'dictionary',dictionary_l
ocation => 'e:\oracle\ora92\database\archive');
BEGIN dbms_logmnr_d.build(dictionary_filename =>'dictionary',dictionary_location
 => 'e:\oracle\ora92\database\archive'); END;

*
ERROR 位于第 1 行:
ORA-01308: 未设置初始化参数 utl_file_dir
ORA-06512: 在"SYS.DBMS_LOGMNR_D", line 923
ORA-06512: 在"SYS.DBMS_LOGMNR_D", line 1938
ORA-06512: 在line 1


SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> execute dbms_logmnr_d.build(dictionary_filename =>'dictionary',dictionary_l
ocation => 'e:\oracle\ora92\database\archive');

PL/SQL 过程已成功完成。

SQL> execute dbms_logmnr.add_logfile(options => dbms_logmnr.new,logfilename =>'E
:\oracle\ora92\rdbms\ARC00113.001');

PL/SQL 过程已成功完成。

SQL>


SQL> execute dbms_logmnr.start_logmnr(dictfilename => 'E:\oracle\ora92\database\
archive\dictionary');

PL/SQL 过程已成功完成。

9i 的一个bug:
select * from v$logmnr_callback;
*第 1 行出现错误:
ORA-03113: 通信通道的文件结束

字典表相关信息:
select a.TIMESTAMP,a.DB_ID,a.DB_NAME,a.FILENAME from v$logmnr_dictionary a;
TIMESTAMP     DB_ID    DB_NAME FILENAME
2009-8-4 11:06:58 1687992638 LIMM  E:\oracle\ora92\database\archive\dictionary.dct

日志文件相关信息
select a.LOG_ID,a.FILENAME,a.LOW_TIME,a.DB_ID,a.DB_NAME from v$logmnr_logfile a;
LOG_ID FILENAME              LOW_TIME DB_ID    DB_NAME
113   E:\oracle\ora92\rdbms\ARC00113.001 693672598 1687992638 LIMM

log相关信息:
select a.LOG_ID,a.FILENAME,a.LOW_TIME,a.HIGH_TIME,a.DB_ID,a.DB_NAME from v$logmnr_logs a;
LOG_ID FILENAME              LOW_TIME      HIGH_TIME     DB_ID    DB_NAME
113   E:\oracle\ora92\rdbms\ARC00113.001 2009-7-31 14:49:58 2009-8-1 15:11:52 1687992638 LIMM

主要视图:
v$logmnr_contents
基本信息:

select a.SCN,a.TIMESTAMP,a.LOG_ID,a.DATA_BLK#,a.SEG_OWNER,a.SEG_NAME,a.SEG_TYPE_NAME,a.TABLE_SPACE,
a.ROW_ID,a.SESSION#,a.USERNAME,a.SESSION_INFO,a.SQL_REDO,a.SQL_UNDO
 from v$logmnr_contents a where a.OPERATION = 'UPDATE';

结束:
begin
dbms_logmnr.end_logmnr();
end;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16179598/viewspace-611310/,如需转载,请注明出处,否则将追究法律责任。

上一篇: proc start
请登录后发表评论 登录
全部评论

注册时间:2008-12-27

  • 博文量
    316
  • 访问量
    656245