最近有一批資料莫名其妙被刪除,想要問說有沒有辦法直接在ORACEL裡面記錄,跟delete 有關的SQL,
有查到sql_trace可以記錄,可是他會把其他的相關動作也記錄起來,例如:select、update...之類的
有沒有辦法只紀錄delete的動作呢?謝謝各位的幫忙~~

解决方案 »

  1.   

    你研究一下oracle的审计功能:
    http://blog.csdn.net/hdhai9451/archive/2009/02/16/3895323.aspx可以做到只记录delete操作的
      

  2.   

    都记录下来不好吗??  你看的时候只看delete的不就行了
      

  3.   


    使用flashback原理以及SCN号来闪回删除掉数据的表:SQL>SELECT current_scn from v$database;
    // 查看数据库SCN
    SQL>ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
    //更改时间格式
    SQL>select * from table1 as of scn XXXX;
    SQL>select * from table1 as of timestamp '2009/02/09 16:30:00';
      

  4.   

    可以通过执行EXEC DBMS_FLASHBACK.ENABLE_AT_TIME(SYSDATE-时间段)
    执行以上存储过程后,执行查询将是该段时间之前的数据
      

  5.   

    谢谢大家的帮忙,最後采用P6Spy+IronTrackSQL,来找出只要delete 的SQL