首页 > Linux操作系统 > Linux操作系统 > logmnr使用方法
转载
一、安装LogMiner工具,以下两个脚本以SYSDBA身份运行:
@$ORACLE_HOME\rdbms\admin\dbmslm.sql;
@$ORACLE_HOME\rdbms\admin\dbmslmd.sql;
二、使用LogMiner工具
1、创建数据字典文件(data-dictionary)
1).首先在init.ora初始化参数文件中,指定数据字典文件的位置,也就是添加一个参数UTL_FILE_DIR,
该参数值为服务器中放置数据字典文件的目录。如:UTL_FILE_DIR = ($ORACLE_HOME\logs) ,重新启动数据库,使新加的参数生效.
alter system set utl_file_dir = 'c:\oracle\logs' scope=spfile
2).然后创建数据字典文件
SQL> connect /as sysdba
SQL> execute dbms_logmnr_d.build(dictionary_filename => 'dict.ora',dictionary_location => 'c:\oracle\logs');
(如果没找到utl_file_dir参数,可能是以SPFILE启动,用startup pfile='C:\oracle\product\10.1.0\db_1\database\INITorcl.ORA';)
2、创建要分析的日志文件列表
1).创建分析列表,即所要分析的日志
SQL> execute dbms_logmnr.add_logfile(LogFileName => 'C:\oracle\product\10.1.0\oradata\orcl\REDO01.LOG',Options => dbms_logmnr.new);
2).添加分析日志文件,一次添加1个为宜
SQL> execute dbms_logmnr.add_logfile(LogFileName => 'C:\oracle\product\10.1.0\oradata\orcl\REDO02.LOG',Options => dbms_logmnr.ADDFILE);
3、使用logMiner进行日志分析
1).无限制条件,即用数据字典文件对要分析的日志文件所有内容做分析
SQL> execute dbms_logmnr.start_logmnr(DictFileName => 'c:\oracle\logs\dict.ora');
2).带限制条件,可以用scn号或时间做限制条件,也可组合使用
SQL> execute dbms_logmnr.start_logmnr(startTime => to_date('20070228100000','yyyy-mm-dd hh24:mi:ss'),
endTime => to_date('20070228150000','yyyy-mm-dd hh24:mi:ss'),DictFileName => 'G:\oracle\logs\dict.ora');
4.根据指定的用户名、表名、操作进行分析
select scn,sql_redo from v$logmnr_contents where seg_owner='GAMETEST' and seg_name='ENDUSER' and upper(operation)='UPDATE';
select to_char(timestamp,'YYYY-MM-DD HH24:MI:SS') time,sql_redo from v$logmnr_contents where seg_owner='GAMETEST' and seg_name='ENDUSER' and upper(operation)='UPDATE';
5、分析后释放内存
SQL> execute dbms_logmnr.end_logmnr;
6.其它
1).删除日志分析文件
exec dbms_logmnr.add_logfile('C:\oracle\product\10.1.0\oradata\orcl\REDO02.LOG',dbms_logmnr.removefile);
三、查看LogMiner工具分析结果
SQL> select * from dict t where t.table_name like '%LOGMNR%';--看所有与logmnr相关的视图
分析结果在GV$LOGMNR_CONTENTS 视图中,可按以下语句查询:
select scn,timestamp,log_id,seg_owner,seg_type,table_space,data_blk#,data_obj#,data_objd#,
session#,serial#,username,session_info,sql_redo,sql_undo from logmnr3 t
where t.sql_redo like 'create%';
如果不能正常查询GV$LOGMNR_CONTENTS视图:
create table logmnr3 as select * from GV$LOGMNR_CONTENTS;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/658698/viewspace-254562/ ,如需转载,请注明出处,否则将追究法律责任。