百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

oracle日志分析介绍(oracle日志文件在哪)

sinye56 2024-09-16 14:28 6 浏览 0 评论

Oracle 重作日志文件(归档日志文件)中的具体内容,特别是,该

工具可以分析出所有对于数据库操作的DML(insert、update、delete等)语句,9i 后可以分

析DDL语句,另外还可分析得到一些必要的回滚SQL语句。其中一个最重要的用途就是不

用全部恢复数据库就可以恢复数据库的某个变化。该工具特别适用于调试、审计或者回退某

个特定的事务。

LogMiner 工具即可以用来分析在线,也可以用来分析离线日志文件,即可以分析本身

自己数据库的重作日志文件,也可以用来分析其他数据库的重作日志文件。

总的说来,LogMiner 工具的主要用途有:

1. 跟踪数据库的变化:可以离线的跟踪数据库的变化,而不会影响在线系统的性能。

2. 回退数据库的变化:回退特定的变化数据,减少point-in-time recovery的执行。

3. 优化和扩容计划:可通过分析日志文件中的数据以分析数据增长模式。

4. 确定数据库的逻辑损坏时间:准确定位操作执行的时间和SCN ==> 基于时间和

SCN 的恢复

5. 确定事务级要执行的精细逻辑恢复操作 //取得相应的UNDO 操作

6. 执行后续审计 //DML DDL DCL 执行时间、用户

注意事项:

1. LogMiner 可以帮你确定在某段时间所发的各种DML,DDL操作的具体时间和SCN

号,它所依据的是归档日志文件及联机日志文件。

2. 它只能在Oracle8i及以后的版本中使用,不过它可以分析Oracle8 的日志。

3. Oracle8i只能用于分析DML操作,到Oracle9i 则可以分析DDL操作了。

4. LogMiner 不支持索引组织表、Long、LOB及集合类型。

5. 不支持MTS的环境

6. LogMiner 必须使用被分析数据库实例产生的字典文件,而不是安装LogMiner 的数

据库产生的字典文件,另外必须保证安装LogMiner 数据库的字符集和被分析数据库的

字符集相同。

7. 源数据库(Source Database)平台必须和分析数据库(Mining Database)平台一样

6.2安装LogMiner

要安装LogMiner 工具,必须首先要运行下面这样两个脚本:

l. $ORACLE_HOME/rdbms/admin/dbmslm.sql

2. $ORACLE_HOME/rdbms/admin/dbmslmd.sql

这两个脚本必须均以SYS 用户身份运行。其中第一个脚本用来创建

DBMS_LOGMNR 包,该包用来分析日志文件。第二个脚本用来创建

DBMS_LOGMNR_D 包,该包用来创建数据字典文件。

6.3基本对象

Source Database: 日志所属的数据库

Mining Database: 执行LogMiner 操作要使用的数据库,相同硬件平台,相同字符集,

版本不低于Source Database

LogMiner字典: 将内部对象ID 号和数据类型转换为对象名和外部数据格式,在Source

Database上生成,有三种方式:

1. 使用源数据库数据字典

// 表结构无变化 S-DB必须OPEN,只能跟踪DML不能为DDL

SQL> exec DBMS_LOGMNR.START_LOGMNR(

OPTIONS=>DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG );

2. 摘取LogMiner 字典到重做日志

// Source-DB 必须OPEN, Archivelog模式

SQL> exec DBMS_LOGMNR_D.BUILD(

OPTIONS=>DBMS_LOGMNR_D.STORE_IN_REDO_LOGS );

3. 摘取LogMiner 字典到字典文件

配置字典文件所在目录: 静态参数: UTL_FILE_DIR

建立字典文件:

SQL> exec dbms_logmnr_d.build (

dictionary_filename => 'logminer.dat',

dictionary_location => 'F:\0_WorkSpace\1_Database\1_Oracle\Log_Miner' );

SQL> exec dbms_logmnr_d.build ('dict.ora', '/xxx',

OPTIONS=>DBMS_LOGMNR_D.STORE_IN_FLAT_FILE);

与LogMiner相关的数据字典:

v$loghist 显示历史日志文件的一些信息

v$logmnr_dictionary 因logmnr 可以有多个字典文件,显示字典文件信息

v$logmnr_parameters 显示logmnr 的参数

v$logmnr_logs 显示用于分析的日志列表信息

v$logmnr_contents LogMiner结果

6.4使用LogMiner 进行分析

6.4.1 设定用于LogMiner分析的日志文件存放的位置

设置 UTL_FILE_DIR,需要重启数据库。

设置 utl_file_dir=* 表示你能操作任何目录

在initsid.ora文件中加入utl_file_dir 参数或者:

SQL> alter system set utl_file_dir='d:' scope=spfile;

SQL> shutdown immediate

SQL> starup

6.4.2 生成数据字典文件

SQL> BEGIN

dbms_logmnr_d.build(

dictionary_filename => 'logminer_dict.dat',

dictionary_location => 'd:'

);

END;

/

dictionary_location 指的是Logminer 数据字典文件存放的位置,它必须匹配utl_file_dir 的

设定。

dictionary_filename 指的是放于存放位置的字典文件的名字,名字可以任意取。

6.4.3 建立日志分析表

建立日志分析表数据库必须在mount或nomount状态

建立日志分析表,使用dbms_logmnr.add_logfile()

SQL> BEGIN

dbms_logmnr.add_logfile(

ptions => dbms_logmnr.new,

logfilename => 'D:\oracle\product\10.1.0\flash_recovery_area\ORCL\ARCHIVELOG\2008_07_10\O1_MF_1_2055_47BT0W2G_.ARC'

);

END;

/

其中的options有三种取值,

dbms_logmnr.new 用于建一个日志分析表

dbms_logmnr.addfile 用于加入用于分析的的日志文件

dbms_logmnr.removefile用于移出用于分析的日志文件

6.4.4 添加用于分析的日志文件

SQL> BEGIN

2 dbms_logmnr.add_logfile(

3 ptions => dbms_logmnr.addfile,

4 logfilename => '/u01/arch/arc_ctc_0504.arc'

5 );

6 END;

7 /

6.4.5 启动LogMiner进行分析

SQL> BEGIN

dbms_logmnr.start_logmnr(

dictfilename => 'd:/logminer_dict.dat',

starttime => to_date('20080710 09:15:00','yyyymmdd hh24:mi:ss'),

endtime => to_date('20080710 10:00:00','yyyymmdd hh24:mi:ss')

);

END;

/

即分析2003 年5 月1 日这天12:15 至15:40 这段时间,并把分析结果放到数据字典中

以用于查询。

还有两个参数startscn (起始SCN号) 及endscn (终止SCN) 号。

6.4.6 查看日志分析的结果

查看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指的是用于取消的相

反的操作。

查看DDL操作:

SELECT timstamp, sql_redo FROM v$logmnr_contents

WHERE upper(sql_redo) like '%TRUNCATE%';

6.4.7结束LogMiner的分析

SQL>BEGIN

2 dbms_logmnr.end_logmnr();

3 end;

4 /

相关推荐

Linux在线安装JDK1.8

首先在服务器pingwww.baidu.com查看是否可以连网然后就可以在线下载一、下载安装JDK1.81、在下载安装的同时做好一些准备工作...

Linux安装JDK,超详细

1、了解RPMRPM是Red-HatPackageManager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux...

Linux安装jdk1.8(超级详细)

前言最近刚购买了一台阿里云的服务器准备要搭建一个网站,正好将网站的一个完整搭建过程分享给大家!#一、下载jdk1.8首先我们需要去下载linux版本的jdk1.8安装包,我们有两种方式去下载安装...

Linux系统安装JDK教程

下载jdk-8u151-linux-x64.tar.gz下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.ht...

干货|JDK下载安装与环境变量配置图文教程「超详细」

1.JDK介绍1.1什么是JDK?SUN公司提供了一套Java开发环境,简称JDK(JavaDevelopmentKit),它是整个Java的核心,其中包括Java编译器、Java运行工具、Jav...

Linux下安装jdk1.8

一、安装环境操作系统:CentOSLinuxrelease7.6.1810(Core)JDK版本:1.8二、安装步骤1.下载安装包...

Linux上安装JDK

以CentOS为例。检查是否已安装过jdk。yumlist--installed|grepjdk或者...

Linux系统的一些常用目录以及介绍

根目录(/):“/”目录也称为根目录,位于Linux文件系统目录结构的顶层。在很多系统中,“/”目录是系统中的唯一分区。如果还有其他分区,必须挂载到“/”目录下某个位置。整个目录结构呈树形结构,因此也...

Linux系统目录结构

一、系统目录结构几乎所有的计算机操作系统都是使用目录结构组织文件。具体来说就是在一个目录中存放子目录和文件,而在子目录中又会进一步存放子目录和文件,以此类推形成一个树状的文件结构,由于其结构很像一棵树...

Linux文件查找

在Linux下通常find不很常用的,因为速度慢(find是直接查找硬盘),通常我们都是先使用whereis或者是locate来检查,如果真的找不到了,才以find来搜寻。为什么...

嵌入式linux基本操作之查找文件

对于很多初学者来说都习惯用windows操作系统,对于这个系统来说查找一个文件简直不在话下。而学习嵌入式开发行业之后,发现所用到的是嵌入式Linux操作系统,本想着跟windows类似,结果在操作的时...

linux系统查看软件安装目录的方法

linux系统下怎么查看软件安装的目录?方法1:whereis软件名以查询nginx为例子...

Linux下如何对目录中的文件进行统计

统计目录中的文件数量...

Linux常见文件目录管理命令

touch用于创建空白文件touch文件名称mkdir用于创建空白目录还可以通过参数-p创建递归的目录...

Linux常用查找文件方法总结

一、前言Linux系统提供了多种查找文件的命令,而且每种查找命令都具有其独特的优势,下面详细总结一下常用的几个Linux查找命令。二、which命令查找类型:二进制文件;...

取消回复欢迎 发表评论: