`
234390216
  • 浏览: 10238629 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462887
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1775976
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1398743
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:395157
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:680171
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:531144
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1185007
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:468815
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151493
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:68344
社区版块
存档分类
最新评论

Oracle——23闪回操作(flashback)

阅读更多

 

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

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

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

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

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

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

1、查询闪回

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

 

		table_name as of timestamp real_timestamp; --它作为一个整体表示一个表*/
 

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

 

			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这个时点之前的数据拿出来然后插入到当前表中,调用语句如下:

 

				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语句如下:

 

				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。

表闪回的语法格式如下:

 

			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:

 

				alter table hello enable row movement;
 

(2)对表进行闪回:

 

				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中。

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

 

			flashback table table_name to before drop [rename to new_name]; --恢复表table_name并重命名为new_name*/
 

示例代码:

 

			flashback table hello to before drop rename to dropped_hello;
 

4、数据库闪回

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

(以后进行完善)

9
1
分享到:
评论
2 楼 cuishuangjia 2013-06-11  
可以使用DBTOOLS来处理。
目前是测试阶段,只需要直接把机器码发给作者即可。(cuishuangjia@gmail.com)

ver 20130610

修正内容:

1.SQL历史信息

2.增加复制功能

3.支持DB2
DbTools工具下载:
http://cuishuangjia.iteye.com/
支持ORACLE,MYSQL,SQLSERVER,POSTGRE,DB2四种数据库相互转换功能

功能:
1。将数据库中的表结构和数据保存到EXCEL中。
2。将EXCEL中的数据,同步到数据库中。
3。当表结构发生变化时,数据不会丢失。
4。根据EXCEL中的表结构,生成建表语句SQL文。
5。多用户使用该软件时,可以随时记录某个用户对数据库的操作。
6。可以为进行压力测试,自动生成数据。
7。导出表结构,根据表结构和数据库中的表结构进行差分。
8。导出DB结构,和现有环境DB进行表结构差分
9。导出用户自定义表结构,根据表结构导入,导入数据前对EXCEL校验进行数据库验证和业务逻辑验证


亲,请将所有压缩文件全部下载后再解压。
作者邮件:cuishuangjia@gmail.com
1 楼 月亮不懂夜的黑 2012-12-27  
牛啊,之前一直被这类问题纠结着。刚测试了一下,很好很强大。

相关推荐

    flashback——oracle

    "Oracle-Flashback-技术-总结.txt"和"oracle_10g_flashback(数据恢复).txt"以及"oracle_10g_flashback.txt"这三份文档可能提供了一个全面的概述,包括Flashback日志、闪回数据库(Flashback Database)、闪回事务...

    Oracle中有后悔药卖吗?Oracle中的回闪查询: Oracle 10g 回闪实验文档

    除了数据库级别的回闪外,Oracle 10g还支持表级别的回闪——**Oracle Flashback Table**。通过此功能,可以将单个表恢复到过去某个特定时间点的状态。这对于因误删除或更新数据而导致的问题非常有用。 ```sql -- 将...

    Oracle 闪回,实验加解释

    为了支持闪回功能,Oracle引入了一个特殊的区域——闪回恢复区。该区域主要用于存储闪回所需的日志文件和其他恢复相关的文件。 ##### 1.1 闪回恢复区的三个关键参数 - **db_recovery_file_dest**:用于指定闪回...

    oracle数据库恢复技术:RMAN与闪回技术

    当涉及到数据恢复时,Oracle提供了两种强大的工具——RMAN(Recovery Manager)和闪回技术,它们各自在不同的场景下发挥着至关重要的作用。本文将深入探讨这两种技术的核心概念、工作原理以及在实际操作中的应用。 ...

    用oracle10g的flashback闪回功能快速恢复oracle中被删除的表

    Oracle Database 10g 引入了一项非常强大的特性——Flashback,该特性使得数据库管理员(DBA)能够轻松地恢复误删除的数据表。在之前的版本中,如果误删了表,DBA需要通过繁琐的过程来恢复数据,比如使用表空间的时间...

    Oracle 10g的“数据闪回”机制——Oracle 10g系列专栏(一).pdf

    除了闪回删除,Oracle 10g还提供了其他数据闪回功能,如“闪回查询”(Flashback Query)。这项功能允许用户查看数据库的先前状态,即使数据已经被提交。通过使用闪回查询,DBA可以在短时间内找到并恢复已被删除的...

    Oracle 11g 从入门到精通——第十八章(视频教程)

    - 闪回事务(Flashback Transaction):跟踪和回滚单一事务的操作。 - 闪回表空间(Flashback Tablespace):恢复整个表空间到过去的状态。 2. **闪回表** - ROLLBACK TO SAVEPOINT:通过指定保存点回滚表到某一...

    oracle误删数据恢复

    当遇到这类情况时,Oracle提供了一种强大的数据恢复机制——回闪(Flashback)功能。通过回闪功能,用户可以在特定的时间点恢复已删除的数据。本文将详细介绍如何利用Oracle的回闪功能来恢复误删的数据。 ### 回闪...

    Oracle数据库误删除数据的不同恢复方法整理

    除了闪回表之外,Oracle还提供了闪回整个数据库的功能,即使数据库回到过去的某个状态。 **2. 具体步骤** - **启用闪回**:`ALTER DATABASE FLASHBACK ON;` - **闪回至特定SCN**:`FLASHBACK DATABASE TO SCN SCNNO...

    Oracle精髓(第4版)

    如何安装、运行、管理、监控、联网和调整Oracle——包括企业管理器(EM)以及Oracle自我调整和管理能力——以及如何使用Oracle安全、审计和依从性(本版中新增的——章内容)。多用户并发、数据仓库、分布式数据库、...

    Oracle从回收站恢复删除的表

    在Oracle 10g及后续版本中,为了提供更高效的数据管理能力,引入了一个非常实用的功能——**回收站**(Recycle Bin)。这一特性使得数据库管理员能够在不慎删除表等数据库对象后,能够轻松地从回收站中恢复这些对象,...

    Oracle.Database.11g.DBA手册.完整中文 (97M) part1/2

    基本信息 出版社: 清华大学出版社; 第1版 (2009年1月1日) 平装: 594页 语种: 简体中文 开本: 16 ... 使用最新的Oracle Database 11g工具——Oracle Total Recall和Oracle Flashback Data Archive等。

    《数据库系统原理与应用——Oracle版》-刘淳-电子教案

    10. **Oracle的最新特性**:可能还会涉及Oracle数据库的新特性,如Automatic Storage Management (ASM)、闪回技术(Flashback)和In-Memory选项等。 这个电子教案为学习者提供了全面的Oracle数据库知识体系,不仅...

    Oracle.Database.11g.DBA手册.完整中文 (97M) part2/2

    基本信息 出版社: 清华大学出版社; 第1版 (2009年1月1日) 平装: 594页 语种: 简体中文 开本: 16 ... 使用最新的Oracle Database 11g工具——Oracle Total Recall和Oracle Flashback Data Archive等。

    Oracle数据库进阶-高可用性、性能优化和备份恢复

    Flashback是一系列与时间旅行查询相关的功能集合,包括闪回查询、闪回表、闪回事务查询、闪回数据库等。通过这些功能,用户可以在不恢复整个数据库的情况下查看某个时间点的数据状态,这对于数据恢复和问题排查非常...

    oracle dba2的官方教材

    #### 一、Oracle Database 11g:数据库管理——课堂练习II - **版本信息**:本教材为Oracle Database 11g的官方教材,版本号为2.0,发布于2011年3月。此教材仅供个人自我学习使用,严禁分享文件。 - **版权声明**...

    Oracle Database 10g:Administration Workshop I PPT版.zip

    "Less17_Flashback_TB.ppt"介绍了闪回技术,允许用户恢复到过去的某个时间点,而无需依赖传统的备份和恢复。闪回查询、闪回表和闪回数据库都是强大的功能,可以在不影响其他事务的情况下撤销错误操作。 "Less10_...

    Oracle优化日记-一个金牌dba的故事

    《Oracle优化日记——一个金牌DBA的故事》这本书深入浅出地揭示了Oracle数据库优化的精髓。作为一名金牌DBA,作者以其丰富的实战经验,通过一系列的实际案例,讲述了在Oracle数据库管理与优化过程中的种种挑战和解决...

    java.oracle数据库开发指南 国外经典教材

    《Java与Oracle数据库开发指南——国外经典教材》是一本深入探讨如何使用Java语言与Oracle数据库进行交互的权威著作。本书全面覆盖了Java编程与Oracle数据库管理的基础知识,旨在帮助开发者熟练掌握两者之间的协同...

Global site tag (gtag.js) - Google Analytics