在oracle中Logmnr进行日志挖掘

本文介绍如何使用Oracle的Logmnr工具进行日志挖掘,包括安装必要的软件包、配置日志文件、启动日志分析及查看结果等步骤,帮助用户追踪特定表的数据变更。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在oracle中Logmnr进行日志挖掘

今天同事说一个表中的数据被删除,让我查一查是什么时间被删的,oracle中的日志挖掘可以做到,呵呵。下面说说oracle中的日志挖掘。

日志挖掘需要DBMS_LOGMNR_D和DBMS_LOGMNR包,如果数据库没有这两包,SYSDBA身份运行下面脚本:
 @$ORACLE_HOME/rdbms/admin/dbmslm.sql;

 @$ORACLE_HOME/rdbms/admin/dbmslmd.sql;


建立分析列表,即所要分析的日志:

exec sys.dbms_logmnr.add_logfile(logfilename=>'D:/ORACLE/10.2/DB_1/ORADATA/ORCL/REDO01.LOG');
exec sys.dbms_logmnr.add_logfile(logfilename=>'D:/ORACLE/10.2/DB_1/ORADATA/ORCL/REDO02.LOG');
exec sys.dbms_logmnr.add_logfile(logfilename=>'D:/ORACLE/10.2/DB_1/ORADATA/ORCL/REDO03.LOG');

进行日志分析,该例中没有建立数据字典,使用dbms_logmnr.dict_from_online_catalog选项参数,则logminer期望在所指定的dbms_logmnr.add_logfile或重做日志中找到数据字典。
exec sys.dbms_logmnr.start_logmnr(options=>sys.dbms_logmnr.dict_from_online_catalog);

查看分析结果,其中sql_redo是重做sql文本,即所做过的操作,如果要回退,可以查sql_undo值,seg_name是段名,一般是所操作过的对象如表:
select scn,to_char(TIMESTAMP,'yyyy-mm-dd hh24:mi:ss'),sql_redo from v$logmnr_contents  where upper(seg_name)='T_DS_HCARD001_STATE';

分析后释放内存:
 exec sys.dbms_logmnr.end_logmnr();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值