oracle 闪回操作(flashback)

234390216 的留下学习 原文地址 http://haohaoxuexi.iteye.com/blog/1594391

Oracle的闪回功能可以在对数据库进行不完全恢复的情况下,对某一个指定的表进行恢复。闪回数据库是进行时间点恢复的新方法,它能够快速将Oracle恢复到以前的时间,以更正由于逻辑数据损坏或用户错误而引起的问题。当需要恢复时,可以将数据库恢复到错误前的时间点,并且只恢复改变的数据块。

Oracle中的闪回操作包括以下4种:

(1)查询闪回:查询过去某个指定时间、指定实体的数据,恢复错误的数据库更新、删除等。

(2)表闪回:使表返回到过去的某一时间的状态,恢复表、取消对表进行的修改。

(3)删除闪回:可以将删除的表重新恢复。

(4)数据库闪回:可以将整个数据库回退到过去的某个时间点。

1、查询闪回

查询闪回可以查看过去某一时点的任何数据,如果要查询某一表在某一时点的内容,可以把查询目标对象定位为该表在某一时点的表,表在某一时刻的表可以如下表示:

 

Sql代码  收藏代码
  1. table_name as of timestamp real_timestamp; --它作为一个整体表示一个表*/  
 

例如,要查询person表在2012-6-2 19:00:00的状态,可以使用如下语句:

 

Sql代码  收藏代码
  1. select * from person as of timestamp to_timestamp('2012-6-2 19:00:00''yyyy-mm-dd HH24:mi:ss');  
 

知道了表在某一时刻的表之后,我们就可以很容易的把表恢复到某一时刻的样子了,例如我们在2012-6-2 19:00:00这个时候删除了person表中的3条记录,之后我又想把它恢复,那应该如何恢复呢?利用查询闪回我们可以这样操作:

方法一:

第一步,把当前表中的数据全删了:delete from person;

第二步,我们通过查询闪回把2012-6-2 19:00:00这个时点之前的数据拿出来然后插入到当前表中,调用语句如下:

 

Sql代码  收藏代码
  1. insert into person select * from person as of timestamp to_timestamp('2012-6-2 18:59:59''yyyy-mm-dd HH24:mi:ss');  
 

方法二:

先找出从person表中删除的记录,然后再把它们插到person表中,Sql语句如下:

 

Sql代码  收藏代码
  1. insert into person select * from person as of timestamp to_timestamp('2012-6-2 18:59:59''yyyy-mm-dd HH24:mi:ss') p where not exists(select * from person where id=p.id);  
 

因为查询闪回是跟时间有关系的,所以说到这就再说一个设置,在sqlplus中输入set time on语句可以打开时间显示功能,这会使得在每次执行语句后都会在该语句的前面显示该语句的执行时间,使用set time off语句可以关闭该功能。

2、表闪回

利用表闪回可以轻松的取消对表的修改。只有Oracle的企业版才能进行表闪回。

对进行表闪回的表必须row movement为enable。

表闪回的语法格式如下:

 

Sql代码  收藏代码
  1. flashback table [schema.]table_name[,...n] to {[scn] | [timestamp] [[enable | disable] triggers]};  
 

其中,

scn:表示系统改变号,可以从flashback_transaction_query数据字典中查询。

timestamp:表示通过时间戳的形式来进行闪回。

enable|disable triggers:表示触发器恢复之后的状态,默认为disable。

示例代码:

(1)确保需要闪回的表row movement为enable:

 

Sql代码  收藏代码
  1. alter table hello enable row movement;  
 

(2)对表进行闪回:

 

Sql代码  收藏代码
  1. flashback table hello to timestamp to_timestamp('2012-6-3 14:00:00','yyyy-mm-dd HH24:mi:ss');--恢复表到2012-6-3 14:00:00这个时候的样子*/  
 

3、删除闪回

在Oracle数据库中有一个叫recyclebin的回收站,当回收站的功能是启用的时候,被用户drop的对象都会保存在recyclebin中,普通用户可以通过select * from recyclebin;语句查看被自己drop掉的对象的相关信息,当然如果普通用户想查看所有用户的recyclebin信息也是可以的,可以通过查看dba_recyclebin视图,DBA用户不存在recyclebin。来获取,如:select * from dba_recyclebin。如果被删除的对象不是彻底删除,而是放到了回收站的话,我们就可以在需要的时候从回收站中进行恢复了。

为了避免被删除的表与其他对象存在名称冲突,Oracle对被删除的对象进行了重命名,当然Oracle也保存了对象的原始名称。在进行对象恢复的时候可以使用对象的原始名称,也可以使用被重新命名的新名称。

系统参数recyclebin控制表删除后是否到回收站,show parameter recyclebin可以查看该参数的状态。

对于系统参数的修改有两种,全局的修改和会话的修改:

(1)alter system set param_name=param_value;

(2)alter session set param_name=param_value;

show recyclebin:可以显示当前用户recyclebin中的表。

purge tablespace tablespace_name:用于清空指定表空间的recyclebin;

purge tablespace tablespace_name user username:清空指定表空间的recyclebin中指定用户的对象。

purge table table_name:清除回收站中的指定表对象。如:purge table hello语句则将清除回收站中的hello表。这里的table_name既可以是原来的表对象名,也可以是

recyclebin中自动生成的名字。

purge recyclebin:删除当前用户的recyclebin中的对象。

purge dba_recyclebin:删除所有用户的recyclebin中的对象

drop table table_name purge:删除对象且不放在recyclebin中。

删除闪回的语法格式如下:

 

Sql代码  收藏代码
  1. flashback table table_name to before drop [rename to new_name]; --恢复表table_name并重命名为new_name*/  
 

示例代码:

 

Sql代码  收藏代码
  1. flashback table hello to before drop rename to dropped_hello;  
 

4、数据库闪回

数据库闪回可以使数据库回到过去某一时间点或SCN的状态,用户可以不用备份就能快速地实现时间点的恢复。只有Oracle的企业版才能进行数据库闪回。

转载于:https://www.cnblogs.com/pigga/p/10098283.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355846.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用法与区别_生抽老抽、蚝油味极鲜,总算搞清楚区别了,用法大不同,别用错了...

生抽老抽、蚝油味极鲜,总算搞清楚区别了,用法大不同,别再用错了各位读者朋友们大家好,感谢阅读我分享的美食文章,经验和大家一起共享,今天我要和大家分享的内容是:『生抽老抽、蚝油味极鲜&#…

centos yum安装_centos7上yum安装碰到的坑

估计是之前更改过这个虚机的配置,故现在正常步骤安装完yum之后,无法使用,具体表现在 执行yum makecache的时候报错,现在no module name yum结果发现,无论怎么修改 usr/bin/yum的配置文件,都无法成功解决上面…

poj 1330 Nearest Common Ancestors LCA/DFS

题目链接: http://poj.org/problem?id1330 题意: 求出两点间的最近公共祖先。 题解: 第一种: 并查集维护:http://www.cnblogs.com/procedure2012/archive/2012/01/29/2331468.html 利用并查集在每次对子树进行遍历时进行合并,因为对以x为根…

设计模式的Java 8 Lambda表达式–装饰器设计模式

Decorator模式(也称为Wrapper )允许将行为静态或动态地添加到单个对象,而不会影响同一类中其他对象的行为。 可以将其视为子类的替代方法。 我们知道子类在编译时会增加行为,并且更改会影响原始类的所有实例。 另一方面&#xff0…

ie浏览器网页版进入_IE浏览器打开网页提示无法打开Internet站点的解决办法

IE浏览器打开网页时提示Internet explorer无法打开站点,这是什么问题?Internet explorer打不开网页提示无法打开站点怎么办?请看下文五种解决办法。方法一:管理加载项打开浏览器—工具—Internet选项这时会出现“Internet选项”对…

epic转移游戏_Epic游戏商城更改退款政策 和steam一模一样

游侠网关注我们,获得最快的游戏资讯Epic正在打造自己的数字游戏商城,一方面对开发者提供更慷慨的销售分成,另一方面对玩家提供每两个月更新一次的免费游戏。虽然Epic游戏商城中的作品数量还在起步阶段,也缺少一些关键的常用功能&a…

计算机组成原理实验三报告,计算机组成原理实验三报告

计算机组成原理实验三报告 实 验 报 告 三课 程 计算机组成原理 姓 名 学 号实验项目 存储器实验 同组姓名 学 号指导教师 专业班级 计算机科学与技术 09 实验时间 2011-6-6实验三 存储器实验一、实验目的1.掌握存储器的功能和构成。2.了解静态随机存储器…

防盗Java EE –保护您的Java EE企业应用程序

redev离我们仅有几天的路程,我受邀作了两次演讲。 其中之一是关于我最喜欢的主题:安全性和Java EE。 它旨在实现两个目标。 一方面向典型的Java EE开发人员介绍整个应用程序安全过程和主要目标。 而且还要查看有关Java EE在满足典型需求时必须提供的内容…

wsl nvidia驱动_WIN10安装NVIDIA面板两种方式

无应用商店安装NVIDIA面板进入NVIDIA官网下载标准版驱动https://www.nvidia.cn/Download/Find.aspx?langcn​www.nvidia.cn驱动类型选择标准下载的名称选择NVIDIA Studoio Driver SD这样下载出来的驱动就带有NVIDIA面板控制面有应用商店但是下载不动的可以使用下面的方式打开网…

Python之内置函数

Python内置函数 #1、语法 # eval(str,[,globasl[,locals]]) # exec(str,[,globasl[,locals]])#2、区别 #示例一: s123 print(eval(s)) #eval用来执行表达式,并返回表达式执行的结果 print(exec(s)) #exec用来执行语句,不会返回任何值6 None …

latex 无穷_《天龙3D》新资料片“骑乐无穷”即将上线

驭风逐战,骑乐无穷。11月12日金庸正版授权、全民第一武侠RPG手游《天龙3D》新资料片“骑乐无穷”即将上线!全新坐骑装备系统开启,升星养成坐骑装备;全新坐骑相关副本四绝夺魁,多人闯关PVP、PVE组队竞技;元旦主题月即将开启,趣味游…

广州大学计算机学院毕业设计,【广州大学】毕业设计(计算机科学与技术)专业要求...

广州大学成人高等教育毕业设计专业要求【专业名称】计算机科学与技术【适用范围】非学位论文【执笔者】谷岩【完成形式】个人独立【写作形式】毕业设计【写作要求】1.目标毕业设计是计算机科学与技术专业人才培养的重要环节。其主要目标是培养学生综合应用计算机科学…

实验二+140+阮晨曦

---恢复内容开始--- 一、实验目的 掌握覆盖测试的基本方法和实践 二、实验要求 运用逻辑覆盖测试的覆盖准则设计被测程序的测试用例,并运行测试用例检查程序的正确与否,给出程序缺陷小结。 三、实验内容 (1)设计某程序的路径覆盖测…

hadoop重命名文件_Hadoop -- 3. 从Flume到HDFS

提起Flume, 就先讲一下它的基本作用, 它可以从不同的数据源导入到一个集中的地方存放起来,基本架构如下图所示*上图为Flume Data Flow Model, Ref: Flume 1.9.0 User Guide本篇文章会做一个小demo, 数据从spooling directory来(而不是官网图中画的Web Server), 先经过channel, …

电脑计算器_CPA考生注意!2020考场只允许带这种计算器

注册会计师每年采用闭卷、计算机化考试方式。根据往年考生的反应,计算器的使用在考场上发挥了非常大的作用。值得大家注意的是,并不是所有的计算器都能带进考场,考试对计算器有什么要求?如何挑选到正确的计算器?我们一起来看看&a…

最早的齿轮计算机,世界最古老“计算机”出土后110年,科学家终于解开它的秘密...

伦敦大学学院(UCL)的研究团队,提出了“一个激进的新模型,与所有数据相匹配,并最终优雅地展示出了古希腊人眼中的宇宙”。1901年,在希腊岛屿安提基特拉的海岸,潜水员偶然发现了一艘古代沉船。沉船中的一件文物&#xff…

通过Java 8中的Applicative Builder组合多个异步结果

几个月前,我发布了一个出版物 ,在其中详细解释了我提出的名为Outcome的抽象,它通过强制使用语义帮助了我很多 没有副作用的代码。 通过遵循这种简单(但功能强大)的约定,我最终将任何类型的故障(…

diskgenius 接触“只读“失败_相亲总是失败,这三个步骤你都做了吗?

原标题:相亲总是失败,这三个步骤你都做了吗?虽然现在爱情很稀缺,但想必大家都想找个男女朋友,想谈一场甜甜的恋爱。 而相亲,无疑是脱单最直接、最有效的方式,没有之一。但不管是经人介绍&#x…

agv系统介绍_重载AGV小车主要结构及导航原理是什么?

相信对AGV有过了解的朋友都知道,当我们在进行工业生产过程时,重载AGV小车可以帮我们实现无人驾驶搬运的一个工作,可以保证AGV在运行时不用通过人工干预的情况下来完成现场的搬运工作,通过无人驾驶技术进行自主导航将货物自动从起始位置搬运到…

怎样打开计算机音频服务器,win10系统音频服务器未运行的修复步骤

有关win10系统音频服务器未运行的操作方法想必大家有所耳闻。但是能够对win10系统音频服务器未运行进行实际操作的人却不多。其实解决win10系统音频服务器未运行的问题也不是难事,小编这里提示两点:1、在1、windows10“音频服务未运行”,有个红色小叉咋办…