一、logminer的用途.
日志文件中存放着所有进行数据库恢复的数据,记录了针对数据库结构的每一个变化,也就是对数据库操作的所有DML语句。logminer 工具即可以用来分析在线,也可以用来分析离线日志文件,即可以分析本身自己数据库的重作日志文件,也可以用来分析其他数据库的重作日志文件。总的说来,logminer工具的主要用途有:
1.跟踪数据库的变化:可以离线的跟踪数据库的变化,而不会影响在线系统的性能。
2. 回退数据库的变化:回退特定的变化数据,减少point-in-time recovery的执行。
3.优化和扩容计划:可通过分析日志文件中的数据以分析数据增长模式。
二、使用logminer进行日志分析
(1)无限制条件
SQL> exec dbms_logmnr.start_logmnr( dictfilename=>'/u01/app/oracle/oradata/orcl/arch/****.ora');
PL/SQL 过程已成功完成。
(2)有限制条件
通过对过程DBMS_ LOGMNR.START_LOGMNR中几个不同参数的设置(参数含义见表1),可以缩小要分析日志文件的范围。通过设置起始时间和终止时间参数我们可以限制只分析某一时间范围的日志。
如下面的例子,我们仅仅分析2004年9月18日的日志,:
SQL> EXECUTE dbms_logmnr.start_logmnrdictfilename => '/u01/app/oracle/oradata/orcl/arch/****.ora',starttime => to_date('2023-09-19 00:00:00','YYYY-MM-DD HH24:MI:SS'),endtime => to_date('2023-09-20 00:00:00','YYYY-MM-DD HH24:MI:SS '));
也可以通过设置起始SCN和截至SCN来限制要分析日志的范围:
SQL> EXECUTE dbms_logmnr.start_logmnr( dictfilename => '/u01/app/oracle/oradata/orcl/arch/****.ora', startscn => 112635, endscn => 112690);
观察分析结果
V$LOGMNR_DICTIONARY-------查询使用的数据字典文件
V$LOGMNR_PARAMETERS-------查询当前LogMiner设定的参数
V$LOGMNR_LOGS-------查询分析的日志文件
V$LOGMNR_CONTENTS-------日志文件的内容