oracle删除的数据恢复,日志分析LOGMNR工具恢复的方法
业务数据表被删除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 vsqlarea;SELECT∗FROMvsqlarea ; SELECT * FROM vsqlarea;SELECT∗FROMvsession;
SELECT * FROM vsessiona,vsession a,vsessiona,vsqlarea b
WHERE b.ADDRESS = a.PREV_SQL_ADDR;
查询出日志位置,一般指向本地服务器的本地某个文件夹。
结合回复数据的时间日期。我们要找10号和11号两个备份数据中间 数据,查询一共95个日志文件,一个50M 一共两三个G。
通过PLSQL的命令行窗口运行一下脚本
(1)分析在线重作日志文件 注意下面红色部分,第一个后后面的参数不一样,我们曾经不到参数执行,导致一直不能添加,执行好多次其实就分析了一个日志文件。
A. 创建列表
B. 添加其他日志文件到列表
SQL> exec sys.dbms_logmnr.add_logfile(LogFileName=>‘c:\oradata\jssweb\arc\20120911_35.arc’,options=>dbms_logmnr.new);
–SQL> exec sys.dbms_logmnr.add_logfile(LogFileName=>‘c:\oradata\jssweb\arc\20120911_36.arc’,options=>dbms_logmnr.addfile);
(2)分析离线日志文件
到现在为止,我们已经分析得到了重作日志文件中的内容。动态性能视图v$logmnr_contents包含LogMiner分析得到的所有的信息。
SELECT sql_redo FROM v$logmnr_contents;
如果我们仅仅想知道某个用户对于某张表的操作,可以通过下面的SQL查询得到,该查询可以得到用户DB_ZGXT对表SB_DJJL所作的一切工作。
执行下面那句,哪怕只有一天的也执行了10分钟左右。所以最好增加一个条件限制
. 抓取待恢复的信息到临时表
SQL> create table tmp_logmnr as
2 select operation,sql_redo,sql_undo from v$logmnr_contents
3 where seg_name=‘T1’ and operation=‘DELETE’
4 and timestamp between to_date(‘2008-09-22 11:32:25’,‘yyyy-mm-dd hh24:mi:ss’)
5 and to_date(‘2008-09-22 11:32:45’,‘yyyy-mm-dd hh24:mi:ss’);
tmp_logmnr是实体表名,分析结果会插入里面。operation=‘DELETE’ 要带上,百分之99。9%都是delete语句。因为我怀疑所有更新插入操作oracle底层都是先删除再插入。
有了实体表,所有的insert语句都能找到了。数据就在这里。
结束LogMiner会话 虽然关闭plsql命令行窗口也能结束会话。但是还是希望执行下结束命令
SQL> EXECUTE DBMS_LOGMNR.END_LOGMNR;
oracle删除的数据恢复,日志分析LOGMNR工具恢复的方法相关推荐
- python日志分析工具_基于Python3的Web日志分析小工具
PyWebLog 网站日志分析小工具 环境 Python3.5 Mysql 预览 安装 pip install pymysql pip install flask 导入日志 python Log.py ...
- oracle 删除补全日志组_【REDO】删除REDO LOG重做日志组后需要手工删除对应的日志文件(转)...
为保证重新创建的日志组成员可以成功创建,我们在删除日志组后需要手工删除对应的日志文件. 1.查看数据库当前REDO LOG日志相关信息 1)查看日志组信息 sys@ora10g> select ...
- oracle 删除补全日志组_Oracle 10g 添加、删除日志组
做日常巡检的时候发现alert日志中有这个错误 Thread 1 cannot allocate new log, sequence 319708 Checkpoint not complete 这个 ...
- 苹果备忘录永久删除了怎么办?3种备忘录恢复的方法!
案例:iPhone备忘录彻底删除了怎么办? [友友们,苹果备忘录永久删除了,还可以恢复吗?有什么方法?] 苹果备忘录是苹果系统自带的一款备忘录应用,可以帮助我们记录日程安排.备忘事项.重要信息等.但是 ...
- oracle删除无效归档日志,求助:rman无法按照策略删除过期的归档日志
无法按照策略删除过期1天后的归档日志,请各位帮忙看看,如何解决? RMAN> delete obsolete; 使用目标数据库控制文件替代恢复目录 RMAN 保留策略将应用于该命令 将 RMAN ...
- oracle 删除补全日志组_浅谈Oracle 20c ASM文件组模板技术
首先,Oracle ASM file group 是一组文件,它们共享相同的属性和特征.文件组最主要的好处是在相同的磁盘组里为不同的数据库文件定义不同的可用性属性,这一特性让在多租户架构的pdb (可 ...
- BurpSuite日志分析过滤工具,加快SqlMap进行批量扫描的速度
BurpLogFilter 一个python3写的,用于过滤BurpSuite日志的小程序 A python3 program to filter BurpSuite log file. WHY? 为 ...
- oracle 删除补全日志组_Oracle 补充日志(Supplemental Logging)说明
补充日志:只要是针对 UPDATE 命令的,是对重做日志记录中 变更矢量块的补充信息,增加了变更矢量记载的记录量.日志挖掘器(LogMiner).闪回事务查询.闪回事务等都需要 补充日志的支持.尤其是 ...
- iOS Crash日志分析必备:符号化系统库方法
如果你有过分析iOS崩溃日志的经验,一定经常看到日志里出现很多<redacted>的字段.这篇文章就是帮助开发者将这些字段符号化为对应的系统库方法名. 如果你已经掌握了这方面的知识,就直接 ...
最新文章
- 合种侧柏、油松专车3天4000能量领证
- python 打包wheel文件,自己的SDK包
- python from __future__ import division的作用
- vue脚手架解决跨域问题-------配置反向代理
- python月薪是多少-2019年 Python就业市场行情好不好, 薪资多少?
- Hibernate 入门小案例
- win8.1注册表-修改资源管理器的默认路径regedit
- Java EE 8发生了什么? (第2部分)
- 易生信极高性价比暑期黑马集训 -- 低至2500每人
- jpush java_JPush Java SDK 示例代码与简要注释
- java 蓝桥杯算法训练 4-1打印下述图形(题解)
- mysql判断存在返回布尔_MySqlClient访问tinyint字段返回布尔值篇
- 「倾心整理~」数据库系统概论—第5章(数据库完整性)
- 狂神说Linux学习笔记
- K3wise数据字典及常用表及视图
- chrome 下载东西 失败禁止_如何修复最常见的Google Chrome下载错误
- 中兴威武3android驱动,中兴威武3
- Win10笔记本电脑设置插入鼠标时自动禁用触摸板
- 如何实时获取当前时间
- GC是什么? 为什么要有GC?