浅谈LogMiner的使用方法
来源:asp之家 发布时间:2009-02-28 11:12:00
Logminer是每个Dba都应熟悉的工具,当一天由于用户的误操作你需要做不完全的恢复时,由于你无法确定这个操作是哪个时间做的,所以这对你的恢复就带来的很大的难度,丢失的数据也不能完全恢复回来。而LogMiner就可以帮你确定这个误操作的准确时间。
我的测试环境是Aix4.3.3的操作系统,Oracle9.2.0.3的测试库。
一、LogMiner的几点说明
1、LogMiner可以帮你确定在某段时间所发的各种DML,DDL操作的具体时间和SCN号,它所依据的是归档日志文件及联机日志文件。
2、它只能在Oracle8i及以后的版本中使用,不过它可以分析Oracle8的日志。
3、Oracle8i只能用于分析DML操作,到Oracle9i则可以分析DDL操作了。
4、LogMiner不支持索引组织表、Long、LOB及集合类型。
5、MTS的环境也不能使用LogMiner.
二、操作步骤
1、设定用于LogMiner分析的数据文件存放的位置
这是设定utl_file_dir参数的过程,我的示例:
a、在initctc.ora文件中加入如下一行
utl_file_dir=/u01/arch
b、得启数据库
oracle>sqlplus /nolog
sql>conn / as sysdba
sql>shutdown immediate
sql>statup
2、生成数据字典文件,是通过dbms_logmnr_d.build()来完成。
SQL> BEGIN
2 dbms_logmnr_d.build(
3 dictionary_filename => ’logminer_dict.dat’,
4 dictionary_location => ’/u01/arch’
5 );
6 END;
7 /
dictionary_location指的是Logminer数据字典文件存放的位置,它必须匹配utl_file_dir的设定。
其中的dictionary_filename指的是放于存放位置的字典文件的名字,名字可以任意取。
3、建立一个日志分析表
a、建立日志分析表数据库必须在mount或nomount状态,启动数据库到mount状态。
sqlplus /nolog
sql>conn / as sysdba
sql>shutdown immediate
sql>starup mount
b、建立日志分析表,使用dbms_logmnr.add_logfile()
SQL> BEGIN
2 dbms_logmnr.add_logfile(
3 options => dbms_logmnr.new,
4 logfilename => ’/u01/arch/arc_ctc_0503.arc’
5 );
6 END;
7 /
其中的options有三种取值,dbms_logmnr.new用于建一个日志分析表;dbms_logmnr.addfile用于加入用于分析的的日志文件;dbms_logmnr.removefile用于移出用于分析的日志文件。
4、添加用于分析的日志文件。
SQL> BEGIN
2 dbms_logmnr.add_logfile(
3 options => dbms_logmnr.addfile,
4 logfilename => ’/u01/arch/arc_ctc_0504.arc’
5 );
6 END;
7 /
使用则可以把这个文件从日志分析表中移除,从而不进行分析。
SQL> BEGIN
2 dbms_logmnr.add_logfile(
3 options => dbms_logmnr.removefile,
4 logfilename => ’/u01/arch/arc_ctc_0503.arc’
5 );
6 END;
7 /
5、启动LogMiner进行分析。
SQL> BEGIN
2 dbms_logmnr.start_logmnr(
3 dictfilename => ’/u01/arch/logminer_dict.dat’,
4 starttime => to_date(’20030501 12:15:00’,’yyyymmdd hh24:mi:ss’),
5 endtime => to_date(’20030501 15:40:30’,’yyyymmdd hh24:mi:ss’)
6 );
7 END;
8 /
即分析2003年5月1日这天12:15至15:40这段时间,并把分析结果放到数据字典中以用于查询。还有两个参数StartScn(起始scn号)及EndScn(终止Scn)号。
6、查看日志分析的结果,通过查询v$logmnr_contents可以查询到
a、查看DML操作,示例:
SELECT operation,
sql_redo,
sql_undo,
FROM V$logmnr_contents
WHERE seg_name = ’QIUYB’;
OPERATION SQL_REDO SQL_UNDO
---------- -------------------------- --------------------------
INSERT inser into qiuyb.qiuyb ... delete from qiuyb.qiuyb...
其中operation指的是操作,sql_redo指的是实际的操作,sql_undo指的是用于取消的相反的操作。
b、查看DDL操作,示例:
SELECT timstamp,
sql_redo
FROM v$logmnr_contents
WHERE upper(sql_redo) like ’%TRUNCATE%’;
7、结束LogMiner的分析。
SQL>BEGIN
2 dbms_logmnr.end_logmnr;
3 end;
4 /
三、与LogMiner相关的数据字典。
1、v$loglist 它用于显示历史日志文件的一些信息
2、v$logmnr_dictionary 因logmnr可以有多个字典文件,该视图用于显示这方面信息。
3、v$logmnr_parameters 它用于显示logmnr的参数
4、v$logmnr_logs 它用于显示用于分析的日志列表信息。


猜你喜欢
- 如下例data2[‘营业成本率'] = data2[‘营业成本本年累计']/data2[‘营业收入本年累计']*10
- 本文实例讲述了mysql事务管理操作。分享给大家供大家参考,具体如下:本文内容:什么是事务管理事务管理操作回滚点默认的事务管理首发日期:20
- Python 队列Queue和PriorityQueuePython的Queue模块适用于多线程编程的FIFO实现。它可用于在生产
- 我就废话不多说了,大家还是直接看代码吧~import numpy as np#从scipy库中导入插值需要的方法 interpolatefr
- 下表列出了所有Python语言支持的算术运算符。假设变量a持有10和变量b持有20,则: 例子:试试下面的例子就明白了所有的Pyt
- 本系列教程我们将使用python实现一些简单的测试工具,为了尽可能的简单,我们的工具以命令行工具为主。本系列教程使用的python版本是3.
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 4 - Functions函数和MooTools
- 0. 前言本文介绍Python Matplotlib库的入门求生级使用方法。为了方便以下举例说明,我们先导入需要的几个库。以下代码在Jupy
- 本文实例为大家分享了python实现俄罗斯方块的具体代码,供大家参考,具体内容如下# teris.py# A module for game
- 1. 程序背景之前做文件批量移动的时候不小心多加了一个pdf后缀,但问题不大,几行代码就可以搞定~2. 程序要求将以下目录中文件夹中的有问题
- 1 unittest框架unittest 是python 的单元测试框架,它主要有以下作用:提供用例组织与执行:当你的测试用例只有几条时,可
- Pandas提供了duplicated、Index.duplicated、drop_duplicates函数来标记及删除重复记录duplic
- 使用bootstrap界面美观,可预览,可拖拽上传,可配合ajax异步或同步上传,下面是效果图:前端代码:fileinput.html<
- python tkinter按钮Button的使用创建和设置窗口from tkinter import *#创建窗口对象root = Tk(
- 如何获取一个页面内所有URL链接?在Python中可以使用urllib对网页进行爬取,然后利用Beautiful Soup对爬取的页面进行解
- MySQL中的锁锁是为了解决并发环境下资源竞争的手段,其中乐观并发控制,悲观并发控制和多版本并发控制是数据库并发控制主要采用的技术手段(具体
- 本文实例分析了PHP中怎样防止SQL注入。分享给大家供大家参考。具体分析如下:一、问题描述:如果用户输入的数据在未经处理的情况下插入到一条S
- 学习前言神经网络的应用还有许多,目标检测就是其中之一,目标检测中有一个很重要的概念便是IOU什么是IOUIOU是一种评价目标检测器的一种指标
- 先给大家说下我的项目需求:用户扫一扫二维码会产生一个链接,该链接会向后端发送个请求,返回一个 apk 的下载地址,用户点击下载按钮可以下载此
- 在XML解析方面,Python贯彻了自己“开箱即用”(batteries included)的原则。在自带的标准库中,Python提供了大量