`
wsql
  • 浏览: 11777584 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

oracle 10g logminer 使用

 
阅读更多

Oracle LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得Oracle 重作日志文件(归档日志文件)中的具体内容,特别是,该工具可以分析出所有对于数据库操作的DML(insert、update、delete等)语句,另外还可分析得到一些必要的回滚SQL语句。该工具特别适用于调试、审计或者回退某个特定的事务,从9i可以也可以分析ddl语句了(幸福吧)。今天我要讲的是oracle10g,所以dml和ddl语句都是可以分析到的。 


LogMiner分析工具实际上是由一组PL/SQL包和一些动态视图(Oracle8i内置包的一部分)组成,它作为Oracle数据库的一部分来发布,是8i产品提供的一个完全免费的工具。但该工具和其他Oracle内建工具相比使用起来显得有些复杂,主要原因是该工具没有提供任何的图形用户界面(GUI)。本文将详细介绍如何安装以及使用该工具。

  一、LogMiner的用途


  日志文件中存放着所有进行数据库恢复的数据,记录了针对数据库结构的每一个变化,也就是对数据库操作的所有DML和DDL语句。
  在Oracle 8i之前,Oracle没有提供任何协助数据库管理员来读取和解释重作日志文件内容的工具。系统出现问题,对于一个普通的数据管理员来讲,唯一可以作的工作就是将所有的log文件打包,然后发给Oracle公司的技术支持,然后静静地等待Oracle 公司技术支持给我们最后的答案。然而从8i以后,Oracle提供了这样一个强有力的工具-LogMiner。
  LogMiner 工具即可以用来分析在线,也可以用来分析离线日志文件,即可以分析本身自己数据库的重作日志文件,也可以用来分析其他数据库的重作日志文件。
  总的说来,LogMiner工具的主要用途有:
   1. 跟踪数据库的变化:可以离线的跟踪数据库的变化,而不会影响在线系统的性能。
   2. 回退数据库的变化:回退特定的变化数据,减少point-in-time recovery的执行。

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


  二、安装LogMiner
  要安装LogMiner工具,必须首先要运行下面这样两个脚本,
   l $ORACLE_HOME/rdbms/admin/dbmslm.sql
   2 $ORACLE_HOME/rdbms/admin/dbmslmd.sql.
  这两个脚本必须均以SYS用户身份运行。其中第一个脚本用来创建DBMS_LOGMNR包,该包用来分析日志文件。第二个脚本用来创建DBMS_LOGMNR_D包,该包用来创建数据字典文件。
  1. [oracle@IM-8-201admin]$pwd
  2. /oracle/ora10/product/rdbms/admin
  3. [oracle@IM-8-201admin]$sqlplus/assysdba
  4. SQL*Plus:Release10.2.0.4.0-ProductiononMonNov2100:13:512011
  5. Copyright(c)1982,2007,Oracle.AllRightsReserved.
  6. Connectedto:
  7. OracleDatabase10gEnterpriseEditionRelease10.2.0.4.0-64bitProduction
  8. WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions
  9. SQL>@dbmslm.sql
  10. Packagecreated.
  11. Grantsucceeded.
  12. SQL>@dbmslmd.sql
  13. Packagecreated.
  三、使用LogMiner工具
  下面将详细介绍如何使用LogMiner工具。
首先数据字典文件是一个文本文件,使用包DBMS_LOGMNR_D来创建,如果我们要分析的数据库中的表有变化(比如表结构有变化等),影响到库的数据字典也发生变化。另外一种情况是在分析另外一个数据库文件的重做日志时,也必须要重新生成一遍被分析数据库的数据字典文件。 首先需要修改参数UTL_FILE_DIR ,该参数值为服务器中放置数据字典文件的目录,10g中我们通过动态修改参数的方式来修改,然后重新启动数据库生效。其中UTL_FILE_DIR对应真实目录先期建立好。下面让我们来一步一步做吧:
1)修改UTL_FILE_DIR目录,这个目录让我们存放数据字典的,明白的说就是把日志通过LogMiner装换成数据字典存放的目录
SQL> alter system set UTL_FILE_DIR='/u02/oradata/center/archive' scope=spfile;
要事先声明/u02/oradata/center/archive,这个目录要先创建好,最好是属于oracle用户或者oracle用户有读写的权限。
2)重启数据库,使之生效
  1. SQL>shutdownimmediate
  2. Databaseclosed.
  3. Databasedismounted.
  4. ORACLEinstanceshutdown.
  5. SQL>startup;
  6. ORACLEinstancestarted.
  7. TotalSystemGlobalArea1577058304bytes
  8. FixedSize2084264bytes
  9. VariableSize385876568bytes
  10. DatabaseBuffers1174405120bytes
  11. RedoBuffers14692352bytes
  12. Databasemounted.
  13. Databaseopened.
  14. SQL>showparameterUTL_FILE_DIR
  15. NAMETYPE
  16. ----------------------------------------------------------
  17. VALUE
  18. ------------------------------
  19. utl_file_dirstring
  20. /u02/oradata/center/archive--这里现在出来我们修改的目录了吧


3)创建数据字典
EXECUTE dbms_logmnr_d.build(dictionary_filename => 'lm_cdd.sql', dictionary_location => '/u02/oradata/center/archive');
lm_cdd.sql这个里面以后要放sql(包括ddl和dml)的噢,jscn.ora创建好了在/u02/oradata/center/archive目录,这个执行完了,可以去/u02/oradata/center/archive这个目录下面看看的。
4)添加日志文件,比如说现在我们想分析/u02/oradata/center/archive/1_2_763121338.dbf这个归档日志文件里面到底有什么东西,我们可以执行以下的存储过程
  1. SQL>EXECUTEdbms_logmnr.ADD_LOGFILE(LOGFILENAME=>'/u02/oradata/center/archive/1_2_763121338.dbf',OPTIONS=>dbms_logmnr.new);
  2. PL/SQLproceduresuccessfullycompleted.
  3. --还可以继续添加归档日志文件
  4. SQL>EXECUTEdbms_logmnr.add_logfile(LogFileName=>'/u02/oradata/center/archive/1_3_763121338.dbf',Options=>dbms_logmnr.addfile);
  5. PL/SQLproceduresuccessfullycompleted.


如果我不想分析/u02/oradata/center/archive/1_2_763121338.dbf,现在只想分析'/u02/oradata/center/archive/1_3_763121338.dbf',也就是说 关于这个日志文件列表中需要分析日志文件的个数完全由你自己决定,但这里建议最好是每次只添加一个需要分析的日志文件。
5)让我们启动了,这个时候主要做得事情就是往/u02/oradata/center/archive/jscn.ora加数据

  1. SQL>EXECUTEdbms_logmnr.start_logmnr(DictFileName=>'/u02/oradata/center/archive/jscn.ora');

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

  1. SQL>SELECTsql_redoFROMv$logmnr_contents;

如果我们仅仅想知道某个用户对于某张表的操作,可以通过下面的SQL查询得到,该查询可以得到用户passport对表sys_server所作的一切工作。
  1. SQL>SELECTsql_redoFROMv$logmnr_contentsWHEREusername='PASSPORT'ANDtablename='SYS_SERVER';

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

如果需要,可以通过removefile命令删除日志分析文件。
  1. SQL>EXECUTEdbms_logmnr.add_logfile(LogFileName=>'/u02/oradata/center/archive/1_2_763121338.dbf',Options=>dbms_logmnr.REMOVEFILE);

6)分析完,退出logminer
  1. SQL>execdbms_logmnr.END_LOGMNR;
  2. PL/SQLproceduresuccessfullycompleted.
分享到:
评论

相关推荐

    Oracle10G LogMiner的配置

    Oracle10G LogMiner的配置详细步骤,可参考

    Oracle_10g_LogMiner

    Oracle_10g_LogMiner

    logminer在oracle10g中配置使用

    在oracle10数据库中配置logminer,

    Oracle 10g中LogMiner的使用.pdf

    Oracle 10g中LogMiner的使用.pdf

    【数据库】Oracle异机logminer日志分析-.docx

    Oracle异机logminer日志分析 日志分析 挖掘日志 分析

    Oracle 日志挖掘(LogMiner)使用详解

    Logminer依赖于2个包:DBMS_LOGMNR和DBMS_LOGMNR_D,Oracle 11g默认已安装 Logminer 基本使用步骤 <1>. Specify a LogMiner dictionary. 指定Logminer字典 <2>. Specify a list of redo log files for analysis. ...

    Oracle_10g_Logminer_研究及测试

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

    Oracle LogMiner

    Oracle LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得Oracle 重作日志文件(归档日志文件)中的具体内容,特别是,该工具可以分析出所有对于数据库操作的DML(insert...

    Oracle Logminer

    Logminer是oracle从8i开始提供的用于分析重做日志信息的工具,它包括DBMS_LOGMNR和DBMS_LOGMNR_D两个...在分析日志的过程中需要使用数据字典,一般先生成数据字典文件后使用,10g以后的版本还可以使用在线数据字典。

    Oracle通过LogMiner实现数据同步迁移

    没错,就是使用LogMiner来实现Oracle数据同步迁移。 实现过程 1.创建目录 在服务器上创建/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR目录来存储数据库的字典信息,如下所示。 mkdir -p /home/oracle/tools/...

    Oracle LogMiner的使用实例代码

    主要给大家分享了关于Oracle LogMiner的使用实例代码,文中通过示例代码介绍了关于查询当前日志组、业务用户插入操作、归档日志切换、业务用户插入操作以及归档日志切换等等的相关功能,需要的朋友可以参考借鉴,...

    oracle 11g overview

    介绍闪回数据存档并探究企业管理器的 LogMiner 接口。 模式管理 轻松添加具有默认值的列,浏览不可见的索引、虚拟列和只读表。 SQL 计划管理 使用在每次选择正确计划的绑定变量,并确保新的执行计划在使用前已经...

    DB_monitor.rar

    10g: 注意大小写 CREATE DIRECTORY utl AS 'd:\temp'; GRANT EXECUTE ON UTL_FILE_DIR TO a; 生成字典文件(新建表后要刷新) EXECUTE dbms_logmnr_d.build(dictionary_filename => 'orcldict.ora', ...

Global site tag (gtag.js) - Google Analytics