oracle10g的rat模拟,Oracle 10g Logminer 研究及测试

LogMiner提供了一个处理重做日志文件并将其内容翻译成代表对数据库的逻辑操作的SQL语句的过程。LogMiner运行在Oracle版本8.1或者更高版本中。

一,如何使用Logminer:

先要安装logminer的两个包;以SYS用户运行下面两个脚本,其中第一个脚本dbmslm.sql用来创建DBMS_LOGMNR包,该包用来分析日志文件。第二个脚本dbmslmd.sql用来创建DBMS_LOGMNR_D包,该包用来创建数据字典文件。

D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN>sqlplus /nolog

SQL*Plus: Release 10.2.0.4.0 - Production on星期五4月10 17:49:02 2009

Copyright (c) 1982, 2007, Oracle.All Rights Reserved.

SQL> connsys/oracle as sysdba

已连接。

SQL>

SQL> @dbmslm.sql

程序包已创建。

授权成功。

SQL>

SQL> @dbmslmd.sql

程序包已创建。

二,创建数据字典文件

数据字典文件是一个文本文件,使用包DBMS_LOGMNR_D来创建,如果我们要分析的数据库中的表有变化(比如表结构有变化等),影响到库的数据字典也发生变化。另外一种情况是在分析另外一个数据库文件的重做日志时,也必须要重新生成一遍被分析数据库的数据字典文件。

首先需要修改参数UTL_FILE_DIR ,该参数值为服务器中放置数据字典文件的目录,10g中我们通过动态修改参数的方式来修改,然后重新启动数据库生效。其中logs_utl_file目录先期建立好。

SQL> alter system set UTL_FILE_DIR='d:\oracle\product\10.2.0\oradata\test\logs_utl_file'scope=spfile;系统已更改。

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE例程已经关闭。

SQL>

SQL> startup

ORACLE例程已经启动。

Total System Global Area167772160 bytes

Fixed Size1295608 bytes

Variable Size125831944 bytes

Database Buffers33554432 bytes

Redo Buffers7090176 bytes

数据库装载完毕。

数据库已经打开。

SQL>

SQL> show parameter UTL_FILE

NAMETYPE

------------------------------------ -------------

VALUE

------------------------------

utl_file_dirstring

d:\oracle\product\10.2.0\orada

ta\test\logs_utl_file

SQL>

然后创建数据字典文件:

BEGIN

dbms_logmnr_d.build(

dictionary_filename => ' logminer_dict.ora',

dictionary_location => ' D:\oracle\product\10.2.0\oradata\test\logs_utl_file');

END;

/

OK ,可以看到在logs_ult_file中已经生成了logminer_dict.ora数据字典文件。数据字典文件是可以打开的文本文件。有兴趣可以打开看看。

创建数据字典是让logminer引用实际到内部数据字典中的部分是使用对象的名称,而不是系统内部的16进制的ID.

三,创建要分析的日志文件(在线日志或归档日志)的列表

(1)分析在线的重做日志

A。建立列表

SQL> execute dbms_logmnr.add_logfile(LogFileName=>'d:\oracle\product\10.2.0\orad

ata\test\redo01.log', ptions=>dbms_logmnr.new);

PL/SQL过程已成功完成。

B。添加其他日至文件到列表

SQL> execute dbms_logmnr.add_logfile(LogFileName=>'d:\oracle\product\10.2.0\orad

ata\test\redo02.log', ptions=>dbms_logmnr.addfile);

PL/SQL过程已成功完成。

SQL> execute dbms_logmnr.add_logfile(LogFileName=>'d:\oracle\product\10.2.0\orad

ata\test\redo03.log', ptions=>dbms_logmnr.addfile);

PL/SQL过程已成功完成。

(2)分析归档的重做日志

A。建立列表

SQL> execute dbms_logmnr.add_logfile(LogFileName=>'d:\oracle\product\10.2.0\orad

ata\archive\ARC00052_0684166863.001', ptions=>dbms_logmnr.new);

PL/SQL过程已成功完成。

B。添加其他日志文件到列表

SQL> execute dbms_logmnr.add_logfile(LogFileName=>'d:\oracle\product\10.2.0\orad

ata\archive\ARC00053_0684166863.001', ptions=>dbms_logmnr.addfile);

PL/SQL过程已成功完成。

如果你觉得不需要分析已经在列表中的在线或归档日志,可以通过removefile命令删除:

SQL> execute dbms_logmnr.add_logfile(LogFileName=>'d:\oracle\product\10.2.0\orad

ata\archive\ARC00053_0684166863.001', ptions=>dbms_logmnr.removefile);

PL/SQL过程已成功完成。

四,使用Logminer进行日志分析

无限制条件:

SQL> execute dbms_logmnr.start_logmnr(DictFileName=> 'D:\oracle\product\10.2.0\o

radata\test\logs_utl_file\logminer_dict.ora') ;

PL/SQL过程已成功完成。

有限制条件:

通过对过程DBMS_LOGMNR.START_LOGMNR中的时间或者SCN参数的设置,可以缩小分析日志文件的范围:

如我们仅仅分析2009年2月23日到2005年7月26日的日志:

SQL> execute dbms_logmnr.start_logmnr(

DictFileName => ' D:\oracle\product\10.2.0\o

radata\test\logs_utl_file\logminer_dict.ora ',

StartTime => to_date('2009-2-23 00:00:00','YYYY-MM-DD HH24:MI:SS')

EndTime => to_date(''2009-2-26 23:59:59','YYYY-MM-DD HH24:MI:SS '));

相关的参数如下:

参数参数类型默认值含义

StartScn数字型0分析重作日志中SCN≥StartScn日志文件部分

EndScn数字型0分析重作日志中SCN≤EndScn日志文件部分

StartTime日期型1998-01-01分析重作日志中时间戳≥StartTime的日志文件部分

EndTime日期型2988-01-01分析重作日志中时间戳≤EndTime的日志文件部分

DictFileName字符型字典文件该文件包含一个数据库目录的快照。

使用该文件可以使得到的分析结果是可以理解的文本形式,

而非系统内部的16进制

Options BINARY_INTEGER 0系统调试参数,实际很少使用

五,得到分析结果:

到现在为止,我们已经分析得到了重作日志文件中的内容。动态性能视图v$logmnr_contents包含LogMiner分析得到的所有的信息。

SELECT sql_redo FROM v$logmnr_contents;

如果我们仅仅想知道某个用户对于某张表的操作,可以通过下面的SQL查询得到,该查询可以得到用户TONY对表R_WIP_TST所作的一切工作。

SQL>; SELECT sql_redo FROM v$logmnr_contents WHERE username='TONY' AND tablename='R_WIP_TST';

需要强调一点的是,视图v$logmnr_contents中的分析结果仅在我们运行过程'dbms_logmrn.start_logmnr'这个会话的生命期中存在(如果执行了DBMS_LOGMNR.END_LOGMNR分析结果将消失)。这是因为所有的LogMiner存储都在PGA内存中,所有其他的进程是看不到它的,同时随着进程的结束,分析结果也随之消失。

如果需要,可以通过removefile命令删除日志分析文件。

SQL> execute dbms_logmnr.add_logfile(LogFileName=>'d:\oracle\product\10.2.0\oradata\archive\ARC00052_0684166863.001', ptions=>dbms_logmnr.removefile);

六,使用DBMS_LOGMNR.END_LOGMNR结束日志分析过程,释放内存。

最后,使用过程DBMS_LOGMNR.END_LOGMNR终止日志分析事务,此时PGA内存区域被清除,分析结果也随之不再存在。

SQL> execute dbms_logmnr.end_logmnr;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/369473.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaEE概念简介

这篇文章旨在澄清J2EE范例中使用的首字母缩写词和概念。 J2EE代表Java to Platform,Entreprise Edition。 它使创建模块化Java应用程序成为可能,并将其部署在应用程序服务器上。 它依赖于Java SE,Java SE是一组Java库的核心,所有J…

编程新手的疑惑:代码循环如何画出一个简单的三角形

对一个编程新手来说,最先知道了解的莫过于代码执行的三种结构,顺序结构、循环结构和选择结构。 其中个人认为相对难以理解的是循环结构,而针对循环结构的练习题最多的就是循环画出一种简单图形,比如三角形。 当初我在学习写三角形…

解析PHP跳出循环的方法以及continue、break、exit的区别介绍

PHP中的循环结构大致有for循环&#xff0c;while循环&#xff0c;do{} while 循环以及foreach循环几种&#xff0c;不管哪种循环中&#xff0c;在PHP中跳出循环大致有这么几种方式&#xff1a; 代码&#xff1a; <?php$i 1;while (true) { // 这里看上去这个循环会一直执行…

js php 数据类型判断,【js基础】变量类型判断

类型判断方法比较&#xff1a;如果需要想详细了解&#xff0c;请看下文:注&#xff1a;原封不动复制备份&#xff0c;防止删帖在JavaScript中&#xff0c;有5种基本数据类型和1种复杂数据类型&#xff0c;基本数据类型有&#xff1a;Undefined, Null, Boolean, Number和String&…

HTML阻止iframe跳转页面并使用iframe在页面内嵌微信网页版

昨天看到这篇文章[置顶]开源组件NanUI一周年 - 使用HTML/CSS/JS来构建.Net Winform应用程序界面 就想弄一个winform结合html5的一个小东西&#xff0c;突有兴致&#xff0c;想在里面嵌套一个微信网页版。 好了&#xff0c;想法一出来&#xff0c;就行动吧&#xff0c;最终效果…

使用Spring Data Redis进行缓存

在下面的示例中&#xff0c;我将向您展示如何使用Spring Data – Redis项目作为Spring 3.1中引入的Spring Cache Abstraction的缓存提供程序。 我对如何使用Spring的基于Java的配置有很多疑问&#xff0c;因此我将同时提供基于XML和Java的配置供您查看。 依存关系 在此示例中使…

标准模板库(STL)学习指南之set集合

set是关联容器。其键值就是实值&#xff0c;实值就是键值&#xff0c;不可以有重复&#xff0c;所以我们不能通过set的迭代器来改变set的元素的值&#xff0c;set拥有和list相同的特性&#xff1a;当对他进行插入和删除操作的时候&#xff0c;操作之前的迭代器依然有效。当然删…

搜狗语料库数据整编

1 #!/bin/bash2 if [ -z "$1" ] ; then3 echo "请指定输入目录"4 exit 15 elif [ ! -d $1 ] ; then6 echo "[$1]不是一个合法的输入路径"7 exit 18 fi9 if [ -z "$2" ] ; then 10 echo "请指定输出目录" 11 exi…

linux oracle swd.oui,centos7安装oracle11g报错,请问怎么解?

centos7安装oracle11g报错&#xff0c;请问怎么解&#xff1f;在centos7下安装oracle11g到85%时报错提示Error in invoking target install of makefile ins_ctxm.mk查了log提示如下INFO: Start output from spawned process:INFO: ----------------------------------INFO:INF…

CSS布局技巧之——各种居中

居中是我们使用css来布局时常遇到的情况。使用css来进行居中时&#xff0c;有时一个属性就能搞定&#xff0c;有时则需要一定的技巧才能兼容到所有浏览器&#xff0c;本文就居中的一些常用方法做个简单的介绍。 注&#xff1a;本文所讲方法除了特别说明外&#xff0c;都是兼容…

OpenJPA:内存泄漏案例研究

本文将提供完整的根本原因分析详细信息以及解决影响Oracle Weblogic Server 10.0生产环境的Java堆内存泄漏&#xff08;Apache OpenJPA泄漏&#xff09;的方法。 这篇文章还将演示在管理javax.persistence.EntityManagerFactory生命周期时遵循Java Persistence API最佳实践的重…

了解真实的rem手机屏幕适配

rem 作为一个低调的长度单位&#xff0c;由于手机端网页的兴起&#xff0c;在屏幕适配中得到重用。使用 rem 前端开发者可以很方便的在各种屏幕尺寸下&#xff0c;通过等比缩放的方式达到设计图要求的效果。 rem 的官方定义『The font size of the root element.』&#xff0c;…

JDBC查询Oracle全部表名称,如何使用JDBC API从Oracle数据库中的现有表中检索记录?...

您可以使用UPDATE查询来更新/修改表中记录的现有内容。使用此功能&#xff0c;您可以更新表的所有记录或特定记录。语法UPDATE table_nameSET column1 value1, column2 value2...., columnN valueNWHERE [condition];要使用JDBC API更新表中记录的内容&#xff0c;您需要-注…

JUnit与EasyMock合作

开发人员始终需要注意所产生的代码。 在实施新功能或修复某些错误之后&#xff0c;应确保它们能够正常工作。 至少可以借助单元测试来实现。 由于此博客致力于Java编程语言&#xff0c;因此今天我将撰写有关JUnit 4.1和EasyMock 3. 1框架的文章。 这些框架的主要目的是简化单元…

nodejs获取当前url和url参数值

//需要使用的模块 http url 当前url http://localhost:8888/select?aa001&bb002 var http require(http); var URL require(url); http.createServer(function(req, res){var arg url.parse(req.url).query; //方法一arg > aa001&bb002var arg url.parse(…

以A表中的值快速更新B表中记录的方法

1、问题描述 有两张表&#xff0c;A表记录了某些实体的新属性&#xff0c;B表记录了每个实体的旧属性&#xff0c;现在打算用A中的属性值去更新B中相同实体的旧属性&#xff0c;如下图所示&#xff1a; 类似这样的需求&#xff0c;怎样做比较高效呢&#xff1f; 2、制作模拟数…

linux日志文件备份,LINUX 自动备份程序日志(shell)

定期备份脚本案列用tar压缩7天前日志删除7天压缩完日志删除压缩完356天前日志#&#xff01;/bin/bash#delete expire log#script name drop_log#script default remove 7 day log and remove remove archived a year ago#make date 2015/06/15result_clientfind /orafile/app/s…

HTML 网页创建

最简单的方式就是创建一个文本文档&#xff0c;然后将.txt后缀改为.html或者htm。 完成上面的步骤会创建一个完全空白的网页&#xff0c;下面填充一点内容&#xff0c;代码实例如下: <!DOCTYPE html> <html> <head> <meta charset" utf-8">…

Hadoop赠品–综述

各位极客&#xff0c; Packt Publishing关于Apache Hadoop 的书籍赠品已经结束。 您可以在此处找到比赛的原始帖子。 获奖者 将会获得这本书奖的6位幸运获奖者是&#xff08;姓名出现在他们的电子邮件中&#xff09;&#xff1a; Hadoop真实世界解决方案手册 Sellamuthu&…

企业级应用与互联网应用的区别

企业级应用&#xff1a;商业组织、大型企业而创建并部署的解决方案及应用。涉及的外部资源众多、事务密集、数据量大、用户众多、同时必须有较强的安全性考虑。 企业应用和互联网应用从根本来说是相同的&#xff0c;都是基于因特网、HTTP、浏览器的一种应用&#xff0c;但面向的…