要安装LogMiner工具,必须首先要运行下面这样两个脚本,
创建分析日志文件的DBMS_LOGMNR 包和创建数据库字典文件的DBMS_
LOGMNR_D 包
@C:\app\Administrator\product\11.1.0\db_1\RDBMS\ADMIN\dbmslm.sql
@C:\app\Administrator\product\11.1.0\db_1\RDBMS\ADMIN\dbmslmd.sql.
这两个脚本必须均以SYS用户身份运行。
1. 创建数据字典文件
首先添加参数UTL_FILE_DIR,该参数值为服务器中放置数据.
字典文件的目录: utl_file_dir=C:\app\Administrator\logs
用户:”SYS”
修改参数:
SQL>ALTER SYSTEM SET utl_file_dir=’C:\app\Administrator\logs’
scope=spfile;
查看参数:
SQL>SHOW PARAMETER UTL_FILE;
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
utl_file_dir string C:\app\Administrator\logs
重新启动数据库,使新加的参数生效,然后创建数据字典文件:
SQL> execute dbms_logmnr_d.build('LJN.ora','C:\app\Administrator\logs');
2. 添加要分析的日志文件
Logminer可以用来分析在线的重做日志文件和归档日志文件.
我当前已经是归档模式.
SQL>archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 150
下一个存档日志序列 152
当前日志序列 152
SQL>select member from v$logfile;
MEMBER
--------------------------------------------------
C:\APP\ADMINISTRATOR\ORADATA\CNEX\REDO03.LOG
C:\APP\ADMINISTRATOR\ORADATA\CNEX\REDO02.LOG
C:\APP\ADMINISTRATOR\ORADATA\CNEX\REDO01.LOG
(1)添加新的日志文件
execute dbms_logmnr.add_logfile ('C:\app\Administrator\oradata\CNEX\REDO01.LOG',dbms_logmnr.new);
execute dbms_logmnr.add_logfile ('C:\app\Administrator\oradata\CNEX\REDO02.LOG',dbms_logmnr.ADDFILE);
execute dbms_logmnr.add_logfile ('C:\app\Administrator\oradata\CNEX\REDO03.LOG',dbms_logmnr.ADDFILE);
注意:我这里把所有的日志文件全部加载进去了.这种做法是否有问题.还有没有其他加载日志的方法.
附加: select name,first_time,next_time from v$archived_log where first_time>=to_date('2007-01-19 08:00:00','yyyy-mm-dd hh24:mi:ss');
NAME FIRST_TIME NEXT_TIME
---------------------------------------- ------------------- -------------------
/oracle/oradata/DW/arc/arc_1_709_5969003 2007-01-19 09:28:41 2007-01-19 13:30:56
06.log
/oracle/oradata/DW/arc/arc_1_710_5969003 2007-01-19 13:30:56 2007-01-19 13:32:40
06.log
这个是我从网上查的,加载日志是这里面的
select group#,sequence#,archived,status,first_time from v$log;
GROUP# SEQUENCE# ARC STATUS FIRST_TIME
---------- ---------- --- ---------------- -------------------
1 710 YES INACTIVE 2007-01-19 13:30:56
2 711 NO CURRENT 2007-01-19 13:32:40
3 709 YES INACTIVE 2007-01-19 09:28:41
sys@DW> col member for a60
sys@DW> select member from v$logfile where group#=2;
MEMBER
------------------------------------------------------------
/oracle/oradata/DW/redo02a.log
/data1/oradata/DW/redo02b.log
创建了要分析的日志文件,就可以对其进行分析。
3. 进行日志分析
(1)无限制条件
SQL>execute dbms_logmnr.start_logmnr (DictFileName=>'C:\app\Administrator\logs\LJN.ora' );
(2)有限制条件
时间范围:对dbms_logmnr.start_logmnr使用StartTime和EndTime参数
SCN范围:对dbms_logmnr.start_logmnr使用StartScn和EndScn参数
4. logMiner进行日志分析
(1)无限制条件
SQL>execute dbms_logmnr.start_logmnr (DictFileName=>'C:\app\Administrator\logs\LJN.ora' );
查询结果:CREATE TABLE STU(ID INT ,NAME VARCHA2(10))
发现11g里面,竟然会捕捉不到DML的sql了,只有DDL的sql,晕死竟然会捕捉不到DML的sql了
在分析的时候,发现10g里面,竟然会捕捉不到DML的sql了,只有DDL的sql,晕死。谁偷走了我的余额??还是毫无头绪。。。
于是继续google,原来需要预先执行以下2句,来强制记录日志并且增强捕捉。
--alter database add supplemental log data(primary key,unique index)columns;
--alter database force logging;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17066567/viewspace-670974/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/17066567/viewspace-670974/