背景,业务数据表被删除8天后发现丢失,里面数据很重要。通过每天的数据备份包找到了10号的数据,但是有5条数据11号备份前就没了。所以找不到了。
第一种,备份文件找不到
第二种,闪回方法查询,找不到,因为查询查过了五天,找不回。
第三种,最后成功解决了。通过查询解析日志找回。
第二种回退回滚脚本这里介绍下,没准你的数据就能找回了。
select * from GZYY02 as of timestamp to_timestamp('2019-06-24 20:10:38', 'yyyy-mm-dd hh24:mi:ss'); alter table GZYY02 enable row movement; flashback table GZYY02 to timestamp TO_TIMESTAMP('2019-06-24 20:10:38', 'yyyy-mm-dd hh24:mi:ss');
开始第三种,我认为是终极解决方式。LOGMNR工具。
我用的Oracle 11G 不需要单独安装这个工具,之前的版本需要安装另行百度下。
然后11G不需要设置字典,设置参数,直接通过下面的语句查询日志的路径
select * from v$sqlarea ;
SELECT * FROM v$session;
SELECT * FROM v$session a,v$sqlarea b
WHERE b.ADDRESS = a.PREV_SQL_ADDR;
查询出日志位置,一般指向本地服务器的本地某个文件夹。
结合回复数据的时间日期。我们要找10号和11号两个备份数据中间 数据,查询一共95个日志文件,一个50M 一共两三个G。