我现在想实现以下功能:
每天0点使用logminer分析前一天的日志文件,把进行过增删改操作的数据记录在一张临时表中,并把每条记录加上标识,标明是哪种操作
问题1:
如何取得前一天的日志文件名称
问题2:
如何把分析出来的DML语句变成实际的数据并加上标识
问题3:
如何把这一系列的操作封装,每天按时执行数据库:oracle10g

解决方案 »

  1.   

    还有个问题:为什么每次必须执行alter system archive log current 才生成新的归档日志呢?
      

  2.   

    ORACLE 有CDC(CHANGE DATA CAPTURE)功能
      

  3.   

    可以参考ORACLE dataware house guide文档16章
      

  4.   

    oracle的cdc同步方式通过触发器实现会降低系统性能,而异步方式也通过logminer来实现的吧
      

  5.   

    参考:
    http://ninedns.com/oracle/200742218400613143.htmlLogMiner是集成在Oracle8i/Oracle9i数据库产品中的日志分析工具,通过该工具可以分析重做日志和归档日志中的所有事务变化,并能准确地确定各种DML和DDL操作的具体时间和SCN值。对重做日志和归档日志进行分析的目的是为了恢复由于执行了误操作而丢失的数据。 使用LogMiner可实现:①确定数据逻辑损坏的时间。例如,用户执行了DROP TABLE和TRUNCATE TABLE命令等误操作后,使用LogMiner可以准确定位执行这些误操作的具体时间。注意:Oracle8i只能还原DML操作,不能还原DDL操作;Oracle9i可以还原DDL以及DML操作。②跟踪用户执行的事务变化操作。使用LogMiner不仅可以跟踪用户所执行的各种DML操作和DDL操作,而且还可以取得数据变化。③跟踪表的DML操作,使用LogMiner可以跟踪在表上所发生的所有事务变化。 下面以Oracle8i(8.1.5)for Windows 2000/NT为例说明如何使用LogMiner对重做日志和归档日志进行分析。本文进行的所有操作均在该环境下验证通过,文中使用的数据库名为phj,Oracle_sid为phj。 一、日志操作模式 Oracle数据库对日志的管理模式有两种,即:非归档模式和归档模式。在建立或安装Oracle数据库时,如果没有指定日志操作模式,则默认为非归档模式(NOARCHIVELOG)。数据库建立之后,用户可以根据需要修改数据库日志的操作模式。 1.非归档模式(NOARCHIVELOG) 非归档模式是指不保存重做日志的日志操作模式,这种日志操作模式只能用于保护实例失败(如系统断电),而不能用于保护介质失败(数据库物理文件损坏)。 非归档模式的工作过程如下:假设数据库只有两个日志组,且当前日志组为日志组一,日志序列号为1。当事务变化填满日志组一时,系统会切换到日志组二,并且LGWR进程将事务变化写入该日志组,日志序列号变为2;而当事务变化填满日志组二时,系统又自动切换回日志组一,此时日志序列号变为3,并且日志序列号3所对应的事务变化会覆盖日志序列号1所对应的事务变化,依此类推。 2.归档模式(ARCHIVELOG) 归档模式是指将重做日志内容保存到归档日志中的日志操作模式。在这种日志操作模式下,当进行日志切换时ARCH进程会将重做日志的内容复制到归档日志中。例如,假设数据库只包含两个日志组,LGWR进程首先将事务变化写入日志组一,此时日志序列号为1;当事务变化填满日志组一时,系统将自动切换到日志组二,并将事务变化写入日志组二,此时日志序列号变为2,同时后台进程ARCn会将日志组一的内容保存到归档日志文件1中;而当事务变化填满日志组二时,系统自动切换回日志组一,并将事务变化写入日志组一,此时日志序列号变为3,同时后台进程ARCn会将日志组二的内容保存到归档日志文件2中,依此类推。 3.改变日志的操作模式为自动归档模式 
    ..........................