Oracle LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得Oracle 重作日志文件(归档日志文件)中的具体内容,特别是,该工具可以分析出所有对于数据库操作的DML(insert、update、delete等)语句, 另外还可分析得到一些必要的回滚SQL语句。
数据的变化过程基本上都在日志里面,在日常问题跟踪,数据恢复等等都可能用到,所以Logminer是每个DBA都应熟悉的工具。
下面是logminer的使用步骤,具体的分析还需要根据各自的情况灵活应用。
step 1安装logmnr包
C:\\Documents and Settings\\Administrator>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 3月 26 09:35:56 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> @?/rdbms/admin/dbmslm.sql
程序包已创建。
授权成功。
SQL> @?/rdbms/admin/dbmslmd.sql
程序包已创建。
SQL> @?/rdbms/admin/dbmslms.sql
程序包已创建。
没有错误。
授权成功。
step2 设置utl_file_dir参数
SQL> alter system set utl_file_dir='C:\\oracle\\product\\10.2.0\\logmnr' scope=both;
alter system set utl_file_dir='C:\\oracle\\product\\10.2.0\\logmnr' scope=both
*
第 1 行出现错误:
ORA-02095: 无法修改指定的初始化参数
SQL> alter system set utl_file_dir='C:\\oracle\\product\\10.2.0\\logmnr' scope=spfil
e;
系统已更改。
SQL> startup force;
ORACLE 例程已经启动。
Total System Global Area 335544320 bytes
Fixed Size 1248888 bytes
Variable Size 251658632 bytes
Database Buffers 79691776 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter utl
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
create_stored_outlines string
utl_file_dir string C:\\oracle\\product\\10.2.0\\logmnr
step3 创建数据字典
SQL> exec dbms_logmnr_d.build('dictionary.ora','C:\\oracle\\product\\10.2.0\\logmnr'
);
PL/SQL 过程已成功完成。
step4 添加日志
SQL> exec dbms_logmnr.add_logfile(logfilename=>'C:\\oracle\\product\\10.2.0\\flash_recovery_area\\ORCL\\ARCHIVELOG\\2013_03_26\\O1_MF_1_79_8O1YBVHY_.ARC',options=>dbms_logmnr.new);
PL/SQL 过程已成功完成。
SQL> exec dbms_logmnr.add_logfile(logfilename=>'C:\\oracle\\product\\10.2.0\\flash_r
ecovery_area\\ORCL\\ARCHIVELOG\\2013_03_26\\O1_MF_1_80_8O1ZFNGP_.ARC',options=>dbms_
logmnr.addfile);
PL/SQL 过程已成功完成。
step5 开始分析
SQL> exec dbms_logmnr.start_logmnr(dictfilename=>'C:\\oracle\\product\\10.2.0\\logmn
r\\dictionary.ora');
PL/SQL 过程已成功完成。
step6 查询结果
SQL> select count(*) from v$logmnr_contents;
COUNT(*)
----------
50464
由于logmnr session限制,且需要用到SQL Developer查询 v$logmnr_contents,可以create table as select,在新的table中具体分析。
SQL> create table logmnr_0326 as select * from v$logmnr_contents;
表已创建。
step 7 分析后释放内存:
SQL> exec sys.dbms_logmnr.end_logmnr();
数据的变化过程基本上都在日志里面,在日常问题跟踪,数据恢复等等都可能用到,所以Logminer是每个DBA都应熟悉的工具。
下面是logminer的使用步骤,具体的分析还需要根据各自的情况灵活应用。
step 1安装logmnr包
C:\\Documents and Settings\\Administrator>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 3月 26 09:35:56 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> @?/rdbms/admin/dbmslm.sql
程序包已创建。
授权成功。
SQL> @?/rdbms/admin/dbmslmd.sql
程序包已创建。
SQL> @?/rdbms/admin/dbmslms.sql
程序包已创建。
没有错误。
授权成功。
step2 设置utl_file_dir参数
SQL> alter system set utl_file_dir='C:\\oracle\\product\\10.2.0\\logmnr' scope=both;
alter system set utl_file_dir='C:\\oracle\\product\\10.2.0\\logmnr' scope=both
*
第 1 行出现错误:
ORA-02095: 无法修改指定的初始化参数
SQL> alter system set utl_file_dir='C:\\oracle\\product\\10.2.0\\logmnr' scope=spfil
e;
系统已更改。
SQL> startup force;
ORACLE 例程已经启动。
Total System Global Area 335544320 bytes
Fixed Size 1248888 bytes
Variable Size 251658632 bytes
Database Buffers 79691776 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter utl
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
create_stored_outlines string
utl_file_dir string C:\\oracle\\product\\10.2.0\\logmnr
step3 创建数据字典
SQL> exec dbms_logmnr_d.build('dictionary.ora','C:\\oracle\\product\\10.2.0\\logmnr'
);
PL/SQL 过程已成功完成。
step4 添加日志
SQL> exec dbms_logmnr.add_logfile(logfilename=>'C:\\oracle\\product\\10.2.0\\flash_recovery_area\\ORCL\\ARCHIVELOG\\2013_03_26\\O1_MF_1_79_8O1YBVHY_.ARC',options=>dbms_logmnr.new);
PL/SQL 过程已成功完成。
SQL> exec dbms_logmnr.add_logfile(logfilename=>'C:\\oracle\\product\\10.2.0\\flash_r
ecovery_area\\ORCL\\ARCHIVELOG\\2013_03_26\\O1_MF_1_80_8O1ZFNGP_.ARC',options=>dbms_
logmnr.addfile);
PL/SQL 过程已成功完成。
step5 开始分析
SQL> exec dbms_logmnr.start_logmnr(dictfilename=>'C:\\oracle\\product\\10.2.0\\logmn
r\\dictionary.ora');
PL/SQL 过程已成功完成。
step6 查询结果
SQL> select count(*) from v$logmnr_contents;
COUNT(*)
----------
50464
由于logmnr session限制,且需要用到SQL Developer查询 v$logmnr_contents,可以create table as select,在新的table中具体分析。
SQL> create table logmnr_0326 as select * from v$logmnr_contents;
表已创建。
step 7 分析后释放内存:
SQL> exec sys.dbms_logmnr.end_logmnr();
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




