请教一个方案 检测一个用户 user1 在一天内对数据库的操作,然后取消其所做的操作,让数据库回user1操作以前的状态 问题 
1 我怎么知道知道user做了那些操作?他操作的记录在哪个文件里找? 2 恢复数据库到以前的状态需要那些步骤? 

解决方案 »

  1.   

    只能回到某一个时间点或者是SCN吧,
    要是有多个用户操作,如用户ABCDEF.....,光回退A的操作,而BCDEF.....的操作不变。
    这样的问题......等待高人的答案
      

  2.   

    使用Oracle的LogMiner分析工具 分析重做日志或归档日志中的内容  找到用户的起始操作时间 或 起始SCN号 然后通过
     SQL>RECOVER DATABASE UNTIL TIME 时间点
    或者
     SQL>RECOVER DATABASE UNTIL CHANGE (SCN号)  SQL>ALTER DATABASE OPEN RESETLOGS;
      

  3.   

    ……不容易實現吧……
    可能在user1操作影響的record中有與user2操作的數據有關聯……
    ……不容易啊
      

  4.   


    oracle 9i里面一个数据库审核机制,它的作用就是记录每个用户对数据有什么操作,包括执行什么sql语句,给哪些用户授权,更改最多的是哪个表?
    但是你必须要建立这个审核机制,它才会把用户的操作记录下来;
    可以对单的用户或角色或单单独的表空间做记录