DM数据库归档挖掘技术学习-DBMS_LOGMNR 包

一、背景介绍

在做数据库操作中,我们有时遇到对数据库误操作的情况,在DM数据库中闪回技术尚未成熟的情况下,可以使用归档挖掘来对数据进行修复。

二、准备条件

dm.ini中的ARCH_INI=1以及RLOG_APPEND_LOGIC 选项置为 1 2

测试表

create table test11 (c1 int,c2 int);

begin
   for i in 1..10000 
   loop
    insert into test11 values (i,i);
    end loop;
    commit;
    end;

假设想更新c2=1的c1列为100001

update test11 set c1=1000001;

但是未写条件将全表更新了。 

查出归档文件路径
select first_time,name from v$archived_log;

将需要挖掘的归档添加到包里,如下
call dbms_logmnr.add_logfile ('/home/dmdba/arch/dm/ARCHIVE_LOCAL1_0x17465BD4[0]_2022-01-12_17-15-11.log');

分析归档文件,指定开始时间和结束时间,也可以不指定
--DBMS_LOGMNR.START_LOGMNR(OPTIONS=>2130);
DBMS_LOGMNR.START_LOGMNR(OPTIONS=>2130 , STARTTIME=>TO_DATE('2022-01-11 14:00:00','YYYY-MM-DD HH24:MI:SS') , ENDTIME=>TO_DATE('2022-01-13 18:00:00','YYYY-MM-DD HH24:MI:SS'));


 options的解释如下:

分析的结果记录在V$LOGMNR_CONTENTS中
select * from v$LOGMNR_CONTENTS;

拿出你要修复的语句,一般可以在SQL_REDO中看到

将语句改写修复

UPDATE "SYSDBA"."TEST11" SET "C1" = 1  WHERE "C1" = 1000001 AND "C2" = 1 

分析完后关闭归档分析

DBMS_LOGMNR.END_LOGMNR();

这里可以看到已关闭

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值