热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

oracle工具:logminer的简单使用

oracle工具:logminer的简单使用我的环境:[root@localhost~]#uname-aLinuxlocalhost.localdomain2.6.18-308.el5xen#1SMPFriJan2717:59:00EST2012i686i686i386GNU/Linuxsys@O...

oracle工具:logminer的简单使用
 
我的环境:
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-308.el5xen #1 SMP Fri Jan 27 17:59:00 EST 2012
i686 i686 i386 GNU/Linux
sys@ORCL> select * from v$version where rownum=1;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
 
    10g其实不需要生成dictionary文件了。只要直接把日志文件加载,然后分析即可。
    1 产生数据库操作  www.2cto.com  
[sql] 
hr@ORCL> drop table t purge;  
  
Table dropped.  
  
hr@ORCL> create table logmnr_test (id number,name varchar2(20));  
  
Table created.  
  
hr@ORCL> insert into logmnr_test values(1,'think');  
  
1 row created.  
  
hr@ORCL> insert into logmnr_test values(2,'water');  
  
1 row created.  
  
hr@ORCL> commit;                      
  
Commit complete.  
  
hr@ORCL> select sequence#,status from v$log;  
    www.2cto.com  
 SEQUENCE# STATUS  
---------- ----------------  
        14 CURRENT  
        13 INACTIVE  
        12 INACTIVE  
hr@ORCL> update logmnr_test set name='think_pad' where id=2;  
  
1 row updated.  
  
hr@ORCL> commit;  
  
Commit complete.  
  
hr@ORCL> alter system switch logfile;  
  
System altered.  
  
hr@ORCL> select sequence#,name from v$archived_log;  
  
 SEQUENCE#  
----------  
NAME  
------------------------------------------------------------------------------------
----------------  
.............................  
        14  
/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2012_09_09/o1_mf_1_14_84qrj5co_.arc  
  www.2cto.com  
    2 为分析指定日志文件
[sql] 
sys@ORCL> select db_name,thread_sqn,filename  
  2         from v$logmnr_logs;  
  
no rows selected  
  
sys@ORCL> exec DBMS_LOGMNR.ADD_LOGFILE('/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2012_09_
09/o1_mf_1_14_84qrj5co_.arc',dbms_logmnr.NEW);  
  
PL/SQL procedure successfully completed.  
  
若想接着分析更多的日志,把dbms_logmnr.NEW改成dbms_logmnr.addfile即可。  
  
sys@ORCL> select db_name,thread_sqn,filename from v$logmnr_logs;  
  
DB_NAME  THREAD_SQN  
-------- ----------  
FILENAME  
-------------------------------------------------------------------------------------
ORCL             14  
/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2012_09_09/o1_mf_1_14_84qrj5co_.arc    www.2cto.com  
 
    3 启动logminer
[sql] 
sys@ORCL> exec DBMS_LOGMNR.START_LOGMNR(OPTIOnS=> SYS.DBMS_LOGMNR.DICT_FROM_ONLINE_
CATALOG);  
  
PL/SQL procedure successfully completed.  
  
若是大数据量的分析,可以指定SCN或者时间的范围。  
 
    4 分析日志的内容
         1)检查数据更改的细节
            数据库里面的数据可能意想不到的原因或者错误而发生改变,在重做日志文件中可
以找到这些更改的细节,比如:谁做了这些改变?什么时候改的?怎么改的?
 
[sql] 
select operation,timestamp,scn from v$logmnr_contents  
 where seg_name='LOGMNR_TEST' and  
       seg_owner='HR' and  
       seg_type_name='TABLE';  
  
OPERATION                        TIMESTAMP                  SCN  
-------------------------------- ------------------- ----------  
DDL                              2012/09/09 08:20:47     721905  
  
select sql_redo,sql_undo from v$logmnr_contents  
 where seg_name='LOGMNR_TEST' and  
       seg_owner='HR' and  
       seg_type_name='TABLE';  
         
SQL_REDO    www.2cto.com  
----------------------------------------------------------------------------------------
SQL_UNDO  
----------------------------------------------------------------------------------------
create table logmnr_test (id number,name varchar2(20));  
  
select username,session_info from v$logmnr_contents  
 where seg_name='LOGMNR_TEST' and  
       seg_owner='HR' and  
       seg_type_name='TABLE'  
 
        2)执行容量分析
           如分析表产生DML的频数和频率
[sql] 
select operation,timestamp,count(*) total from v$logmnr_contents  
 where seg_name='LOGMNR_TEST' and  
       seg_owner='HR' and  
       seg_type_name='TABLE'  
group by operation,timestamp;  
  
OPERATION                        TIMESTAMP                TOTAL  
-------------------------------- ------------------- ----------  
DDL                              2012/09/09 08:20:47          1  
 
       3)寻找DDL命令的细节
          例如,使用logminer,可以找出删除表的具体时间和scn,便于media recovery。
[sql] 
select seg_name,operation,scn,timestamp,count(*)  
  from v$logmnr_contents    www.2cto.com  
 where operation='DELETE'  
 group by seg_name,operation,scn,timestamp  
 order by scn;  
 
    5 关闭logminer
       如果需要进一步的分析,可将v$logmnr_contents内容保存下来
       create table logmnr_contents as select * from v$logmnr_contents;
       然后,执行关闭:
       exec dbms_logmnr.end_logmnr;
   
    附图:




 

推荐阅读
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文详细介绍了如何使用ActionScript 3.0 (AS3) 连接并操作MySQL数据库。通过具体的代码示例和步骤说明,帮助开发者理解并实现这一过程。 ... [详细]
  • SQLite 动态创建多个表的需求在网络上有不少讨论,但很少有详细的解决方案。本文将介绍如何在 Qt 环境中使用 QString 类轻松实现 SQLite 表的动态创建,并提供详细的步骤和示例代码。 ... [详细]
  • 精选30本C# ASP.NET SQL中文PDF电子书合集
    欢迎订阅我们的技术博客,获取更多关于C#、ASP.NET和SQL的最新资讯和资源。 ... [详细]
  • 在即将迎来26岁生日之际,作者的人生陷入了低谷。经过近三年的硕士学习后,最终决定退学,并且面临没有工作经验的困境。尽管如此,作者依然坚定地选择为自己的人生负责。 ... [详细]
author-avatar
手机用户2502907463
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有