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 ...
随机推荐
- JS对象或属性的不变性
提到不变性,不得不提一个概念: 对象常量定义:结合可写性与可配置性可以创建一个真正的常量属性(不可修改.重定义.删除) 不变性可划分为以下几个等级: 1)禁止扩展:Object.preventExte ...
- html字体问题
正如咱们在上一章中解说的那样,HTML元素使页面规划者能够对文档的构造进行符号.HTML标准列出了浏览器应该怎么显现这些元素的攻略.例如,您能够合理地保证强元素的内容将显现粗体.此外,您能够非常信赖大 ...
- Winform控件根据文字内容自动调整最合适大小
private void AutoSizeControl(Control control, int textPadding) { // Create a Graphics object for the ...
- JS 部分基础内容总结
JavaScript 是脚本语言 HTML 中的脚本必须位于 <script> 与 </script> 标签之间. 脚本可被放置在 HTML 页面的 <body> ...
- bzoj4785 [Zjoi2017]树状数组
Description 漆黑的晚上,九条可怜躺在床上辗转反侧.难以入眠的她想起了若干年前她的一次悲惨的OI 比赛经历.那是一道基础的树状数组题.给出一个长度为 n 的数组 A,初始值都为 0,接下来进 ...
- Linux的kobject机制
作者:Younger Liu 本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可. sysfs文件系统下的每个目录对应于一个kobj,kset是kobj的封装,内 ...
- CSS垂直和水平居中
在css中,居中使用十分频繁. 居中分为水平和垂直居中 水平居中十分简单: body{ background:#f90; } body统一为这个颜色 div { margin:0 auto; back ...
- CentOS编译安装emacs并配置
Liunxs中CentOS系列一向以稳定为目标,然而也会存在版本太旧的问题,emacs就是其中的一个,目前emacs都发行到25.2了,而CentOS上的emacs版本却还是23.1.所以需要下载源代 ...
- 写具有良好风格的ABAP代码
编程风格是一个经久不衰的话题,大家所公认的事实是:一个良好的编程风格会带来很多的好处.而对于“良好”的标准,则众说纷纭,莫衷一是.编程风格在ABAP程序中当然也有着重要的意义,因为很少看到专门针对AB ...
- TPshop入门大纲
笔记大纲: tpshop目录结构 功能模块 函数库 重要配置 助手函数 插件 模板 1.TPshop目录结构 看这个图,目录结构一目了然. 下面要讲的内容也是根据这个图展开的. 2.功能模块 前几天刚 ...