--dbms_logmnr日志挖掘器,分析数据库重做日志的工具
--可以分析在线重做日志,更适合归档重做日志文档。dbms_logmnr是oracle在oracle8i所提供的新package。它主要用于分析log file文件(包括online redo log file,archived log file),将log file中的信息转存到v$logmnr_contents中,从而获取对oracle数据库操作的历史信息。它不仅可以分析oracle8i的log file,也可以分析oracle8的log file。信息主要包括在你分析的时间限制内数据库数据作了些什么变更,执行了哪些语句。
1. 创建数据字典文件,以便更方便的阅读日志信息
使用前提:需要配置utl_file,需要执行dbms_logmnr_d的权限(缺省:execute_catalog_role有权限)
begin
sys.dbms_logmnr_d.build('oratom_dic.bat','e:/utl');
end;
/
2. 创建要分析的日志文件列表
begin
sys.dbms_logmnr.add_logfile('D:/oracle/oradata/oratom/REDO03.LOG',sys.dbms_logmnr.NEW);
end;
/
3. 使用LogMiner进行日志分析
参数 | 参数类型 | 默认值 | 含义 |
StartScn | 数字型(Number) | 0 | 分析重作日志中SCN≥StartScn日志文件部分 |
EndScn | 数字型(Number) | 0 | 分析重作日志中SCN≤EndScn日志文件部分 |
StartTime | 日期型(Date) | 1998-01-01 | 分析重作日志中时间戳≥StartTime的日志文件部分 |
EndTime | 日期型(Date) | 2988-01-01 | 分析重作日志中时间戳≤EndTime的日志文件部分 |
DictFileName | 字符型(VARCHAR2) | 字典文件,该文件包含一个数据库目录的快照。使用该文件可以使得到的分析结果是可以理解的文本形式,而非系统内部的16进制 |
Options BINARY_INTEGER 0 系统调试参数,实际很少使用
begin
sys.dbms_logmnr.start_logmnr(DictFileName=>'e:/utl/oratom_dic.bat');
end;
/
4. 观察分析结果(v$logmnr_contents)
select scn,sql_redo from v$logmnr_contents;
5. 终止日志分析事务,此时PGA内存区域被清除,分析结果也随之不再存在
execute sys.dbms_logmnr.end_logmnr;