oracle日志挖掘

oracle日志挖掘是一种十分强大的数据恢复技术,只要你保障你的归档日志和重做日志是完整的,那么就可以将你的数据恢复到任何时刻。简单叙述一下日志挖掘的基本原理,然后进行一个简单的小实验。
日志挖掘时基于redo日志和归档日志的基础之上来进行日志加载并进行恢复,挖掘,挖掘,挖的就是你的redo日志和归档日志,当数据库运行过程中,你的所有数据更改操作会被记录在redo日志中,而oracle redo日志记录着undo日志,所以可以使用记录在redo日志中undo日志来对你所做的操作进行回退。我们只需要确定你所做的操作被记录在哪个时间范围内,然后通过时间或者scn号将这个时间范围内的操作加载到 v$logmnr_contents这个视图中,然后找到对应的undo记录,执行undo记录的sql语句,就可以将你的数据恢复至更改前的状态。
可能说的有点难理解,我们来做一个简单的实验。
首先确定数据库运行在归档模式下,否则日志一旦被覆盖,那肯定是没办法恢复的,当然,可以通过其他方式,如闪回方式等,但是今天仅仅只针对日志挖掘来进行描述。
1、archive log list --查看系统是否运行在归档模式

我的库是在归档模式,如果没有归档,在mount下开启归档。
2、alter database add supplemental log data; --启动最小日志,这一步是为了日志更加详细,完整。
3、更新一条数据,将new york 更改为test。


4、这个数据更新的时间范围大约是在17点10分之20分。

5、将这个时间段的日志加载到v$logmnr_contents这个视图中。加载方式有很多种,我们使用在线字典自动加载,这种方式支持以时间范围方式加载日志。调用相应的存储过程,除了时间其他的都是固定参数。

6、到此,我们将17点10分到17点20分的redo日志加载到v$logmnr_contents视图中,查看v$logmnr_contents视图的undo记录,。

注解:seg_name 是更改的表明,seg_owner是表所属的用户,sql_redo是redo日志记录的sql信息,刚才是做了一个update操作,所以使用like查询有update字段的字段。过滤条件可以自己定义,只要能确定是哪条数据就可以。查出来的sql_undo 就是你的回退sql 用这条sql就可以将数据恢复到更改前的状态。
7、执行undo字段中的sql。


至此,数据成功恢复,但是在生产环境中需要恢复的数据往往有很多,可能几千甚至几万条,可以写一个循环来对数据进行插入,如下。

注解:利用for循环中的隐式游标存储sql_undo字段中的数据,然后一次执行需要sql进行数据恢复。
oracle日志挖掘的更多相关文章
- Oracle 日志挖掘(LogMiner)使用
Logminer依赖于2个包:DBMS_LOGMNR和DBMS_LOGMNR_D,Oracle 11g默认已安装 Logminer 基本使用步骤 <1>. Specify a LogMin ...
- Oracle安全之Oracle日志挖掘
logminer基于包: [oracle@localhost ~]$ ls /u01/oracle/10g/rdbms/admin/dbmslm.sql -->dbms_logmnr工具 /u0 ...
- oracle (9I/10G/11G)数据库日志挖掘(审计误操作)
文档结构: 资料来自官方网站: https://docs.oracle.com/cd/E11882_01/server.112/e22490/logminer.htm#SUTIL019 来自论坛: h ...
- Oracle重做日志和日志挖掘
重做日志-Redo log 首先给出参考资料: 1.Oracle官网-Managing the Redo Log 为什么需要redo log 内存中数据修改后,不必立即更新到磁盘---效率 由日志完成 ...
- oracle之二日志挖掘log miner
日志挖掘 log miner 6.1 log miner的作用: 数据库恢复中有时会需要对Redo log进行分析, 要会使用log miner,以便确定要恢复的时间点或SCN 6.2 有两种日志挖掘 ...
- 日志挖掘Logmnr
日志挖掘 9.1 日志中数据用途 所有对用户数据以及数据字典的改变全部被保存在联机日志中.当然nologging,insert/*+append+/情况比较特殊除外,因此归档日志可以用来做数据库的恢复 ...
- oracle 日志学习(转载)
一,重做日志概念 重做日志文件(redo log file)对于Oracle数据库至关重要.它们是数据库的事务日志.通常只用于恢复,不过也可以用于以下工作: q 系统崩溃后的实例恢复 q 通过备份恢复 ...
- logminer日志挖掘
参考自:https://blog.csdn.net/yes_is_ok/article/details/79296614 原文转自:http://blog.itpub.net/26736162/vie ...
- MySQL二进制日志挖掘器BinlogMiner 1.0发布了。
MySQL从2014年开始超越SQL Server, 占据DB-Engines数据库流行度排行榜第二名, 是一种非常流行的关系型数据库, 特别是在互联网领域, 是一种应该掌握的数据库系统.最近在学My ...
随机推荐
- 查询sql server进程死锁方案
SELECT a.spid , a.blocked , lastwaittype = RTRIM( a.lastwaittype ), waitresource = RTRIM( a.waitreso ...
- 为linux安装xen-tools提示/dev/xvdd does not exist
看样子百度还是不如google啊.百度上找到的信息完全无用.google上却给我找到了... 1:当/dev/xvdd does not exist错误出现时,可以尝试下 mount /dev/cdr ...
- # Android动画笔记
标签: Android开发艺术探索笔记 View动画 帧动画 属性动画 View动画 View动画的作用对象时View,有4种动画效果,分别是平移动画.缩放动画.旋转动画.和透明度动画. 此类动画通常 ...
- google ip地址
http://203.208.46.146 http://203.208.46.177 http://203.208.46.178 http://209.116.186.251 http://203. ...
- API 管理工具
API 管理工具 你还苦于无法有效的管理大量的API吗?今天给大家介绍一款API的管理工具.这款工具可以免费使用,虽然中途可能会提示你购买,但并不影响我们的使用. 下载地址: Windows:http ...
- 阿里云CentOS7.2服务器的安装
第一步:下载服务器系统ISO安装文件 我使用的是阿里云的镜像:因为阿里云的服务在国内相对比较成熟 服务器镜像下载如下:http://mirrors.aliyun.com/centos/7/isos/x ...
- 手把手教做单点登录(SSO)系列之一:概述与示例
本系列将由浅入深的结合示例.源码以及演示视频,手把手的带大家深入最新的单点登录SSO方案选型与架构开发实战.文末附5个满足不同单点登录场景的gif动画演示(如果看不清请在图片上右键用新窗口打开),本系 ...
- sublime text3在指定浏览器上本地服务器(localhost)运行文件(php)
昨天在使用sublime text3时,发现能在本地服务器上运行php文件,于是百度了一下有关知识, 终于成功了,今天总结一下. 首先要让sublime text3 出现侧边栏sidebar,不会的可 ...
- jQuery的hover方法搭配css的hover选择器,实现选中元素突出显示
问题简述: 今天做帮一个师姐做网页遇到一个这样的要求: 鼠标不移动进表格,表格透明度不变. 鼠标移动进表格,hover到的单元格透明度不变,没hover到的单元格透明度改变. 先贴我已经实现好的效果, ...
- 使用 onpropertychange 和 oninput 检测 input、textarea输入改变
检测input.textarea输入改变事件有以下几种: 1.onkeyup/onkeydown 捕获用户键盘输入事件. 缺陷:复制粘贴时无法检测 2.onchenge 缺陷:要满足触发条件:当前对象 ...