【Oracle SQL】logminer日志挖掘


1. 设置logminer参数

--设置utl参数,并指定数据字典文件,指定数据挖掘的表空间
alter system set utl_file_dir='/home/oracle/log' scope=spfile; 
shutdown immediate
startup mount

--查询是否开启最小补充日志
SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM v$database;

--数据库启用最小补充日志
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; 

--添加数据字典
begin
dbms_logmnr_d.build(dictionary_filename => 'logmrn.ora',dictionary_location => '/home/oracle/log');
end;

begin
DBMS_LOGMNR_D.SET_TABLESPACE('SYSTEM'); 
end;

2. 查询归档日志路径

select a.*, 'DBMS_LOGMNR.ADD_LOGFILE(LogFileName=>'''||NAME||''', Options=>dbms_logmnr.addfile);' 
from V$ARCHIVED_LOG a
where a.COMPLETION_TIME >= to_date('2024-4-9 18','YYYY-MM-DD HH24')
AND a.COMPLETION_TIME <= to_date('2024-4-9 18','YYYY-MM-DD HH24')
order by COMPLETION_TIME;

3. 开始日志挖掘

--确定挖掘的时间后,找出对应的归档日志
--添加归档日志
begin
DBMS_LOGMNR.ADD_LOGFILE(LogFileName=>'/home/oracle/thread_1_seq_34809.2036.1165674875', Options=>dbms_logmnr.new);
DBMS_LOGMNR.ADD_LOGFILE(LogFileName=>'/home/oracle/thread_1_seq_34809.2036.1165674875', Options=>dbms_logmnr.addfile);
end ;
   
--开始数据挖掘
--异库
begin
  dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/log/logmrn.ora');
end;

--本库
begin
  dbms_logmnr.start_logmnr(DictFileName => nvl(NULL, ''),options=>dbms_logmnr.DICT_FROM_ONLINE_CATALOG); 
end;

4. 查询挖掘日志

--查询挖掘结果(结束数据挖掘,挖掘结果将失效)
select * from v$logmnr_contents a where a.TABLE_NAME='TABLETEST1' and a.ROW_ID='AAAABBBBCCCC'

5. 结束日志挖掘

--结束数据挖掘
begin
  dbms_logmnr.end_logmnr;
end;

--关闭数据库最小补充日志
alter database drop supplemental log data ;
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值