oracle logminer恢复truncate table的数据

编写背景:
  近日调试存储过程,就未与同事商量先truncate了表,事后得知表中另一个部门插入的数据全没了,为了想法找回数据,
  特测试了logminer的用法
 
  1,logminer可否用于恢复trucate table前的数据
  2,truncate table没有备份
  3,oracle11g,非归档模式
测试纪要
--1,在scott用户下建立测试表
 create table t_truncate_before(a int);
 insert into t_truncate_before values(1);
 insert into t_truncate_before values(2);
 commit;
 select * from t_truncate_before;--查询是有1,2两条记录
 
--2,查询当前日志,用于确定分析的日志
select * from v$log;--3
select * from v$logfile;--D:\ORACLE\ORADATA\ORCL\REDO03.LOG
--3,用logminer开始分析日志
 alter system set utl_file_dir='c:\logminer' scope=spfile;--配置用于存储logminer的目录,并重启库
 shutdown immediate;
 startup;
--4,开始分析
SQL> execute dbms_logmnr_d.build('logminer.ora','c:\logminer');
 
PL/SQL procedure successfully completed
 
SQL> execute dbms_logmnr.add_logfile('D:\ORACLE\ORADATA\ORCL\REDO01.LOG',dbms_logmnr.NEW);
 
PL/SQL procedure successfully completed
 
SQL> execute dbms_logmnr.add_logfile('D:\ORACLE\ORADATA\ORCL\REDO02.LOG',dbms_logmnr.ADDFILE);
 
PL/SQL procedure successfully completed
 
SQL> execute dbms_logmnr.add_logfile('D:\ORACLE\ORADATA\ORCL\REDO03.LOG',dbms_logmnr.ADDFILE);
 
PL/SQL procedure successfully completed
--5,执行分析
SQL> execute dbms_logmnr.start_logmnr(DictFileName => 'c:\logminer\logminer.ora');
 
PL/SQL procedure successfully completed
/*
SQL> execute dbms_logmnr.start_logmnr(0,100,to_date('2012-9-28 00:00:00','yyyy-mm-dd hh24:mi:ss'),to_date('2012-9-28 15:52:00','yyyy-mm-dd hh24:mi:ss'),'c:\logminer\logminer.ora');
 
begin dbms_logmnr.start_logmnr(0,100,to_date('2012-9-28 00:00:00','yyyy-mm-dd hh24:mi:ss'),to_date('2012-9-28 15:52:00','yyyy-mm-dd hh24:mi:ss'),'c:\logminer\logminer.ora'); end;
 
ORA-01291: 缺失日志文件
ORA-06512: 在 "SYS.DBMS_LOGMNR", line 58
ORA-06512: 在 line 2
*/
--6,查询分析结果
 --在plsql developer中sql窗口与命令窗口不同,必须同一个窗口运行,如下视图才会有结果
select * from v$logmnr_contents;-- ORA-01306: 在从 v$logmnr_contents 中选择之前必须调用 dbms_logmnr.start_logmnr()
select * from v$logmnr_logfile
select * from v$logmnr_transaction
--7,小结
  1,非归档也可恢复表的truncate之前数据
  2,再次说明沟通的重要性,尤其对于多部门协作的项目
  3,调试存储过程前一定要备份表或预先与相关人员沟通,减少误操作

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-745386/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9240380/viewspace-745386/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值