怎样查询一个用户在某段时间内做了什么操作.

时间:2022-03-31 10:00:50
我把一个表的一个字段名改了,发现系统出错就又改了回来,可系统仍然出错,因为用户名和密码有多个人(多是开发人员)知道,我想知道,在今天下午这段时间里这个用户都做了些什么操作,怎么做啊?

8 个解决方案

#1


重做日志文档

#2


请说得详细些,谢谢先

#3


你的ORACLE版本是8.0及以上吧?

#4


如果是的话,

一,安装LogMiner 

   要安装LogMiner工具,必须首先要运行下面这样两个脚本, 
   l $ORACLE_HOME/rdbms/admin/dbmslsm.sql --用来创建DBMS_LOGMNR包,以分析日志文件
   2 $ORACLE_HOME/rdbms/admin/dbmslsmd.sql.  --创建DBMS_LOGMNR_D包,该包用来创建数据字典文件


二,在init.ora初始化参数文件中指定数据字典文件的位置(服务器中放置数据字典文件的目录)
   增加下面的参数罗
   UTL_FILE_DIR = (d:\Oracle\logs)  
   记得保存,重新启动数据库,使新加的参数生效,


三,创建数据字典文件: 
 
   SQL> CONNECT SYS 
   SQL> EXECUTE dbms_logmnr_d.build( 
        dictionary_filename => ' v817dict.ora',  --给数据字典文件起的名字
        dictionary_location => 'd:\oracle\logs');  --放置这家伙的目录


四 分析重作日志文件 
   
   A:在线
     1. 创建列表 
        SQL> EXECUTE dbms_logmnr.add_logfile( 
             LogFileName=>'d:\Oracle\oradata\sxf\redo07261.log', 
             Options=>dbms_logmnr.new);  

     2. 添加其他日志文件到列表 
        SQL> EXECUTE dbms_logmnr.add_logfile( 
             LogFileName=>' d:\Oracle\oradata\sxf\redo07262.log', 
             Options=>dbms_logmnr.addfile);
     
     
   B:分析离线日志文件 
     1.创建列表 
       SQL> EXECUTE dbms_logmnr.add_logfile( 
            LogFileName=>' d:\Oracle\oradata\sxf\archive\ARCARC07261.001', 
            Options=>dbms_logmnr.new);  

     2.添加另外的日志文件到列表 
       SQL> EXECUTE dbms_logmnr.add_logfile( 
            LogFileName=>' d:\Oracle\oradata\sxf\archive\ARCARC07262.001', 
            Options=>dbms_logmnr.addfile);

喵呜,现在总算可以进行日志分析啦
针对你的情况,查今天的就行了
SQL> EXECUTE dbms_logmnr.start_logmnr( 
     DictFileName => 'd:\oracle\logs\ v817dict.ora ',  
     StartTime => to_date('2004-07-26 00:00:00','YYYY-MM-DD HH24:MI:SS') 
     EndTime => to_date(''2001-07-26 你发现有问题的时间','YYYY-MM-DD HH24:MI:SS '));  

然后瞄结果
SQL> SELECT sql_redo 
     FROM v$logmnr_contents
     WHERE username='***' AND tablename='****';
    按你自己的具体情况输啦

最后
记得用DBMS_LOGMNR.END_LOGMNR结束掉这次分析,猫咪要溜啦,有问题明儿再说

#5


caral525(猫猫) 的办法可以看到很详细的方法,你也可以用select * from v$sqltext看到一些SQL语句,但不全

#6


好贴,收藏

#7


不错
是高手

#8


多谢高手.

#1


重做日志文档

#2


请说得详细些,谢谢先

#3


你的ORACLE版本是8.0及以上吧?

#4


如果是的话,

一,安装LogMiner 

   要安装LogMiner工具,必须首先要运行下面这样两个脚本, 
   l $ORACLE_HOME/rdbms/admin/dbmslsm.sql --用来创建DBMS_LOGMNR包,以分析日志文件
   2 $ORACLE_HOME/rdbms/admin/dbmslsmd.sql.  --创建DBMS_LOGMNR_D包,该包用来创建数据字典文件


二,在init.ora初始化参数文件中指定数据字典文件的位置(服务器中放置数据字典文件的目录)
   增加下面的参数罗
   UTL_FILE_DIR = (d:\Oracle\logs)  
   记得保存,重新启动数据库,使新加的参数生效,


三,创建数据字典文件: 
 
   SQL> CONNECT SYS 
   SQL> EXECUTE dbms_logmnr_d.build( 
        dictionary_filename => ' v817dict.ora',  --给数据字典文件起的名字
        dictionary_location => 'd:\oracle\logs');  --放置这家伙的目录


四 分析重作日志文件 
   
   A:在线
     1. 创建列表 
        SQL> EXECUTE dbms_logmnr.add_logfile( 
             LogFileName=>'d:\Oracle\oradata\sxf\redo07261.log', 
             Options=>dbms_logmnr.new);  

     2. 添加其他日志文件到列表 
        SQL> EXECUTE dbms_logmnr.add_logfile( 
             LogFileName=>' d:\Oracle\oradata\sxf\redo07262.log', 
             Options=>dbms_logmnr.addfile);
     
     
   B:分析离线日志文件 
     1.创建列表 
       SQL> EXECUTE dbms_logmnr.add_logfile( 
            LogFileName=>' d:\Oracle\oradata\sxf\archive\ARCARC07261.001', 
            Options=>dbms_logmnr.new);  

     2.添加另外的日志文件到列表 
       SQL> EXECUTE dbms_logmnr.add_logfile( 
            LogFileName=>' d:\Oracle\oradata\sxf\archive\ARCARC07262.001', 
            Options=>dbms_logmnr.addfile);

喵呜,现在总算可以进行日志分析啦
针对你的情况,查今天的就行了
SQL> EXECUTE dbms_logmnr.start_logmnr( 
     DictFileName => 'd:\oracle\logs\ v817dict.ora ',  
     StartTime => to_date('2004-07-26 00:00:00','YYYY-MM-DD HH24:MI:SS') 
     EndTime => to_date(''2001-07-26 你发现有问题的时间','YYYY-MM-DD HH24:MI:SS '));  

然后瞄结果
SQL> SELECT sql_redo 
     FROM v$logmnr_contents
     WHERE username='***' AND tablename='****';
    按你自己的具体情况输啦

最后
记得用DBMS_LOGMNR.END_LOGMNR结束掉这次分析,猫咪要溜啦,有问题明儿再说

#5


caral525(猫猫) 的办法可以看到很详细的方法,你也可以用select * from v$sqltext看到一些SQL语句,但不全

#6


好贴,收藏

#7


不错
是高手

#8


多谢高手.