1、概述

作用:通过使用包DBMS_LOGMNR和DBMS_LOGMNR_D,可以分析重做日志和归档日志所记载的事务变化,最终确定误操作(例如DROP TABLE)的时间,跟踪用户事务操作,跟踪并还原表的DML操作.

2、包的组成

1)、dbms_logmnr.add_logfile
作用:用于为日志分析列表增加或删除日志文件,或者建立日志分析列表。
语法:dbms_logmnr.add_logfile(LogFileName in varchar2,Option in binary_integer default addfile);
其中LogFileName指定要增加或删除的日志文件名称,Option指定选项(dbms_logmnr.new建立日志分析列表,dbms_logmnr.addfile增加日志文件,dbms_logmnr.removefile删除文件)

2)、dbms_logmnr.start_logmnr
作用:用于启动logmnr会话
语法:dbms_logmnr.start_logmnr(startscn in number default o,endscn in number default 0,
starttime in date default '01-jan-1988',endtime in date default '01-jan-2988',
dictfilename in varchar2 default '',option in binary_integer default 0);
其中startscn指定日志分析的起始scn值,endscn指定日志分析的结束scn值,starttime指定日志分析的起始时间,endtime指定日志分析的结束时间,
dictfilename指定日志分析要使用的字典文件名,option指定logminer分析选项。

3)、dbms_logmnr.end_logmnr
作用:结束logminer会话
语法:dbms_logmnr.end_logmnr

4)、dbms_logmnr.mine_value
作用:用于返回要摘取的列信息,该函数在启动logminer之后调用。
语法:dbms_logmner.mine_value(sql_redo_undo in raw,column_name in varchar2 default '') return varchar2;
其中sql_redo_undo用于指定要摘取的数据(redo_value或undo_value),column_name用于指定要摘取的列(格式:schema.table.column);

5)、dbms_logmnr.column_present
作用:用于确定列是否出现在数据的redo部分或undo部分
语法:dbms_logmnr.column_present(sql_redo_undo in raw,column_name in varchar2 default '') return number;
其中如果列在redo或undo部分存在,则返回1,否则返回0。

6)、dbms_logmnr_d.build
作用:用于建立字典文件
语法:dbms_logmnr_d.build(dictionary_filename in varcahr2,dictionary_location in varchar2,options in number);
其中dictionary_filename指定字段文件名,dictionary_location指定文件所在位置,options指定字典要写入位置(store_in_flat_file:文本文件,store_in_redo_log2:重新日志)

7)、dbms_logmnr_d.set_tablespace
作用:用于改变logminer表所在的表空间
语法:dbms_logmnr_d.set_tablespace(new_tablespace in default varchar2,dict_tablespace in default varchar2,spill_tablespace in default varchar2);
其中new_tablespace指定logminer表所在的表空间,dict_tablespace指定字典表所在表空间,spill_tablespace指定溢出表所在表空间。

3、综合例子

首先建表temp,然后执行dml操作和日志切换操作,生产归档日志。

sqlplus /nolog
connect system/manager@test
create table temp(cola number,colb varchar2(10));
alter system swith logfile;
insert into temp values(9,'A');
update temp set cola=10;
commit;
alter system switch logfile;
delete from temp;
alter system switch logfile;

1)、建立字典文件
说明:字典文件用于存放表及对象ID号之间的对应关系。从9i开始,字典信息既可被摘取到字段文件中,也可被摘取到重做日志中。摘取字典信息到字典文件方法如下:
(1)、设置字典文件所在目录
alter system set utl_file_dir="g:\test"
scope=spfile;
(2)、重启Oracle Server
sqlplus /nolog
conn sys/test@test as sysdba
shutdown immediate
startup
(3)、摘取字典信息
begin
dbms_logmnr_d.build(dictionary_filename=>'dict.ora',dictionary_location=>'g:\test\logminer');
end;

2)、建立日志分析列表
(1)、停止Oracle Server并装载数据库
sqlplus /nolog
conn sys/test@test as sysdba
shutdown immediate
startup mount
(2)、建立日志分析列表
begin
dbms_logmnr.add_logfile(options=>dbms_logmnr.new,logfilename=>'g:\test\arc1\test1.arc');
end;
(3)、增加其他日志文件(可选)
begin
dbms_logmnr.add_logfile(option=>dbms_logmnr.addfile,logfilename=>'g:\test\arc1\test12.arc');
end;

3)、启动LogMiner分析
begin
dbms_logmnr.start_logmnr(dictfilename=>'g:\test\logminer\dict.ora',
starttime=>to_date('2004-04-03:10:10:00','YYYY-MM-DD:HH24:MI:SS'),
endtime=>to_date('2004-04-03:15:30:00','YYYY-MM-DD:HH24:MI:SS'));
end;

4)、查看日志分析结果
说明:日志分析结果只能在当前会话查看。
(1)、显示DML分析结果
select operation,sql_redo,sql_undo from v$logmnr_contents where seg_name='TEMP';
(2)、显示DDL分析结果
select to_cahr(timestamp,'yyyy-mm-dd hh23:mi:ss') time,sql_redo from v$logmnr_contents where sql_redo like '%create%' or sql_redo like '%create%';
(3)、显示在用字典文件
select db_name,filename from v$logmnr_dictionary;

5)、结束LogMiner
execute dbms_logmnr.end_logmnr;

转载于:https://www.cnblogs.com/champaign/p/9468610.html

十二、dbms_logmnr(分析重做日志和归档日志)相关推荐

  1. oracle11g 联机重做日志、归档日志、日志文件组以及日志文件操作

    文章目录 一.归档方式 1.1 联机重做日志.归档日志概念 1.2 工作模式 1.3 数据库恢复 1.4 归档模式 (1)启用 (2)查看归档文件被存放的路径以及存放文件的容量: (3)手动进行日志切 ...

  2. oracle的asmcmd获取归档日志,分析oracle的联机日志和归档日志

    logminer和配置 安装logminer 以sqlplus / as sysdba登录系统数据库系统,ORACLE默认安装logminer,如果没有安装,执行SQL脚本安装 --安装logmine ...

  3. oracle 查看日志组切换状态_Oracle 逻辑结构篇 之 重做日志和归档日志管理(一)...

    [关键术语] Redo log file 重做日志文件 Archive log file 归档日志文件 SCN(system change number)系统改变号 Checkpoint 检查点 Lo ...

  4. oracle 归档日志 重做日志,Oracle的重做日志和归档日志

    一. 重做日志文件把对数据文件的修改在写入数据文件之前记录下来.日志文件以一种循环的方式被写入信息.当一个日志组被写满时,回自动向另一个日志组写入.管理员可以手工切换当前日志组.alter syste ...

  5. mysql归档日志是什么意思_重做日志与归档日志有什么区别?

    重做日志redo log file是LGWR进程从Oracle实例中的redo log buffer写入的,是循环利用的.就是说一个redo log file(group) 写满后,才写下一个. 归档 ...

  6. oracle查看联机日志,oracle联机日志和归档日志

    联机日志文件又叫重做日志文件,记录了对数据库修改的信息,包括用户对数据修改和数据库管理员对数据库结构的修改,一个oracle实例有一组或多组联机日志,每组至少包含1个或者多个日志成员,这里要多个日志成 ...

  7. mysql 归档日志_归档日志管理

    数据环境: SQL select * from v$version; BANNER ---------------------------------------------------------- ...

  8. oracle连接满报错日志,Oracle归档日志满了导致Oracle连接(ORA-00257)报错处理

    最近一段时间,有收到一台Oracle服务器的连接告警, 刚刚开始还以为是Oracle的监听被关闭导致,结果连上服务器看下Oracle的监听进程正常,自己连接一次发现有报ORA-00257错,又去监控系 ...

  9. 2021年大数据ELK(二十二):采集Apache Web服务器日志

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 采集Apache Web服务器日志 一.需求 二.准备日志数据 三.使用Fil ...

最新文章

  1. NAPTR和SRV记录
  2. QML提供的JavaScript主机环境
  3. 部署 SAP UI5 应用到 SAP BTP 时遇到的 error retrieving MTA 错误消息
  4. oracle 查看用户状态,Oracle数据库查看用户状态
  5. Socket简单介绍(通过NSStream)
  6. cisco 增强型内部网关路由协议EIGRP笔记
  7. 的序号数据是什么_Excel技巧—一劳永逸制作自动更新序号
  8. 什么是波导的简并波,矩形波导和圆波导中的简并有何异同
  9. 无法找到脚本文件 C:/Windows/explorer.exe:574323188.vbs
  10. 记录es几个问题,增删改查,索引创建
  11. SpringBoot中级篇-打包-第三方jar包
  12. Java类权限和类成员权限举例解析
  13. 一键解决WPS中的VBA支持库安装问题
  14. Centos 远程桌面管理工具
  15. x光安检图像检测数据集(7500多张图像,VOC标签)
  16. Android设置沉浸式
  17. KY-RTI分布仿真技术:附录2 大联邦(构建1000个成员的HLA/RTI仿真系统)
  18. 2021-11-25 统计学-基于R(第四版)第八章课后习题记录及总结
  19. 第四篇、代理模式详解(三种)
  20. Windows11正版下载和Windows10正版下载安装教程

热门文章

  1. 设计过程中常见的 10 个小问题
  2. DRF (Django REST framework) 框架介绍(3)
  3. 元素随着滚动条滚动而滚动,但是到浏览器窗口顶部的距离是固定的功能代码...
  4. 使用CSS3线性渐变实现图片闪光划过效果
  5. JButton 做图片框
  6. cocos2d-x 消类游戏,类似Diamond dash 设计
  7. 查询方法android的CursorLoader用法小结
  8. 研发的那些事3--接口之本
  9. 「LibreOJ Round #6」花火
  10. Java并发基础02. 传统线程技术中的定时器技术