热门标签 | 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的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了通过mysql命令查看mysql的安装路径的方法,提供了相应的sql语句,并希望对读者有参考价值。 ... [详细]
  • 仙贝旅行是日本最大的旅游服务平台之一,为广大用户提供优质的日本定制游服务。随着用户数量的增长,仙贝旅行决定与智齿科技合作,全面替换原有客服系统,打造全新的在线客服体系。该体系具备多渠道快速接入的能力,让仙贝旅行轻松与各个渠道的接入用户完成沟通。同时,机器人与人工协同发力,提升客户服务水平。 ... [详细]
  • Oracle10g备份导入的方法及注意事项
    本文介绍了使用Oracle10g进行备份导入的方法及相关注意事项,同时还介绍了2019年独角兽企业重金招聘Python工程师的标准。内容包括导出exp命令、删用户、创建数据库、授权等操作,以及导入imp命令的使用。详细介绍了导入时的参数设置,如full、ignore、buffer、commit、feedback等。转载来源于https://my.oschina.net/u/1767754/blog/377593。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了StartingzookeeperFAILEDTOSTART相关的知识,希望对你有一定的参考价值。下载路径:https://ar ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
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社区 版权所有