`

Oracle flashback几种方式

 
阅读更多

flashback(闪回)是Oracle10g里新加入的一个非常有用的一个feature。通过flashback的功能,我们可以避开传统的recover的方式去恢复一些我们进行的误操作。不过相当recovery来说。这两个还是有差别的。

1. recovery的恢复是基于数据文件的,先要restore备份好的数据文件,flashback是基于flashback log文件的,所以基点不一样,recovery是基于备份的时间上的,可以恢复到备份至完整归档的任何一个时刻,而flashback是基于flashback log的,而log的存储时效是受限于db_flashback_retention_target这个参数的(以分钟为单位,默认1440分钟,即24小时)。

2. recovery的恢复是应用redo记录的,所以会对期间我们不关心的数据也进行修补,而flashback可以只针对我们关心的数据进行修补。

3. recovery的恢复可以恢复数据文件物理损坏或者日志物理损坏,而flashback是基于flashback log的,只能处理由于用户的错误的逻辑操作,比如删除了表,删除了用户等。


由此可见,其实flashback和recovery的恢复还是有不少本质的差别的,因此我们要针对着相应的情况来进行相应的选择。


flashback具体来说有4种常用的操作,这几种操作虽然都冠以flashback,但是还是有着一些较大的差别,

1、flashback database(闪回数据库)

对应flashback database来说,一般用来处理误删除了user或者一些错误的数据操作。

要使用flash database的特性。我们一定要启动flashback功能,

SQL>alter database flashback on; 如果要关闭使用alter database flashback off;

同时要配置和检查参数db_flashback_retention_target,这个是控制flashback log的保留时间的参数,默认是1440分钟,即24小时。我们也只能恢复到这个时间之内。


使用如下

SQL>shutdown immediate;

SQL>startup open exclusive;

SQL>flashback database to timestamp to_date(’2009-05-13 00:35:50′, ‘yyyy-mm-dd hh24:mi:ss’);

或者基于scn号

SQL>flashback database to scn 5342420;

先用read only模式打开数据库,确定恢复的正确性,如果不对,调整时间或者scn,直到确认数据恢复正确。以resetlogs的方式打开数据库,由于flashback log和redo log是分开的,所以即使resetlogs,闪回区的内容依然存在,我们一样能够能够闪回到以resetlog打开数据库点之钱的那个状态上,只有当flashback的开关关掉以后,闪回区的内容将自动删除。


2. flashback drop(闪回删除)

用来恢复被误drop掉的表的恢复,这里有一个我以前错误理解的一个地方,其实这里的flash drop已经脱离了flashback log,在10g的版本里,Oracle在表删除以后,并没有真的把这个表删除,而是对删除表做了重命名,并且用recycle bin来对其进行管理,我们可以通过user_recyclebin和dba_recyclebin来进行查询.

SQL>select * from user_recyclebin或者是select * from dba_recyclebin;

通过flashback table testtable to before drop.

有时可能一个表被反复的建立和drop,这样在recycle一个origianl name的有多个记录相对,默认将是恢复最后一个,如果要指定恢复一个可以用他们的可以通过指定name的方式


3. flashback table(闪回表)

有时,不小心,对表进行了错误的update,那么我们就可以通过这个feature来进行恢复,比如,我们update … set … where ..或者delete 了表里不应该的数据,我们可以使用flashback table testtable to timestamp to_date((’2009-05-13 00:35:50′, ‘yyyy-mm-dd hh24:mi:ss’)),这里要注意和前两个不同的,这里是利用undo表做恢复的基准,所以有关undo的参数undo_management和undo_retention对这个有影响。具体可以看看这两个参数的说明文档。注,flashback table是只能处理DML操作过后的语句的恢复,如果在期间有DDL语句操作到这个表上,做flashback table时将报错ORA-01466: unable to read data - table definition has changed。在做flashback table时先要alter table t enable row movement。


4. flashback query(闪回查询)

闪回查询好像以前版本有过,在10g里。使用select * from t as of timestamp 或者 select * from t as of scn .flash query也是利用unod表空间里的undo数据,所以和3一样,


     只有flashback database是基于flashback log的,所以只有在flashback on的时候才能使用,而其他几个分别和undo以及数据库字典dba_recyclebin/user_recyclebin,所以flashback不考虑flashback_on的状况。 注可以通过

SQL>select * from v$database;来查询flashback_no的值。


摘自:http://blog.csdn.net/inthirties/archive/2009/07/08/4330255.aspx

分享到:
评论

相关推荐

    oracle flashback技术总结

    Oracle Flashback 技术是一种能够帮助用户恢复数据库至某一特定时间点的技术。该技术利用了Undo Segment中的数据,因此受到`UNDO_RETENTION`参数的影响。为了启用Flashback功能,需要开启自动撤销管理并配置好相关表...

    Oracle Flashback技术

    Oracle Flashback技术是Oracle数据库提供的一种强大的数据恢复和时间旅行功能,它允许用户查看和恢复到数据库的某个历史状态,而无需依赖传统的备份和恢复过程。这一特性在处理误删除、错误更新或需要查看历史数据时...

    Oracle Flashback 技术总结

    Oracle Flashback技术是Oracle数据库提供的一种强大的数据恢复和历史数据查询功能,它允许用户恢复到数据库的某个历史状态,或者查询过去的某个时刻的数据。这项技术的核心是基于Undo Segment中的信息,Undo Segment...

    Oracle_Flashback家族

    除了Flashback Database之外,Oracle 10g还提供了其他几种Flashback技术,包括: - **Flashback Drop**:允许用户恢复被删除的对象,如表或索引。 - **Flashback Query**:提供查询过去数据的能力。 - **Flashback...

    Oracle_FlashBack闪回技术

    ### Oracle FlashBack 闪回技术详解 #### 一、引言 在Oracle数据库管理中,闪回技术(FlashBack)是一项极为重要的功能,它能够帮助数据库管理员恢复误操作或者数据丢失的情况,为数据的安全性和可靠性提供了强有力...

    Oracle闪回(Flashback)技术.pptx

    "Oracle闪回(Flashback)技术" Oracle闪回(Flashback)技术是Oracle数据库提供的一系列人为错误更正技术,旨在使数据库从任何逻辑误操作中迅速恢复。该技术从Oracle 9i版本的闪回查询开始,在Oracle 10g版本中...

    oracle11g flashbackup

    Oracle 11g Flashback 技术是一种强大的数据库恢复机制,它允许用户将数据库或其特定部分恢复到之前的一个时间点。以下是对标题和描述中提及的几个Flashback功能的详细解释: A. Flashback Database Flashback ...

    全面学习oracle的.pdf

    使用Flashback Query时需要注意以下几点: - 必须启用自动撤销管理(AUM)。 - 撤销数据保留策略必须足够以覆盖所需查询的时间范围。 - 相关表不能被DROP或者TRUNCATE操作删除。 ### 外篇 - 自动撤销管理表空间 **...

    第16章Oracle闪回(Flashback)技术.pptx

    Oracle 闪回技术是Oracle数据库提供的一种强大的恢复机制,旨在帮助用户从逻辑错误中迅速恢复数据,而无需依赖传统的备份和恢复流程。自Oracle 9i版本引入以来,它在Oracle 10g和11g中得到了进一步的发展和完善。本...

    oracle四大宝典之3:Oracle备份与恢复

    Oracle备份与恢复涉及到多个层面的知识,主要包括以下几个方面: 1. **物理备份与逻辑备份**:物理备份直接复制数据库的数据文件、控制文件、重做日志文件等,恢复时速度快但操作复杂;逻辑备份则是通过SQL语句导出...

    涂抹Oracle 高清版

    首先,"涂抹Oracle"这个标题可能寓意着作者以一种新颖、直观的方式解析Oracle的复杂性,如同在Oracle的复杂表象上涂抹清晰的色彩,使读者能看透其内在机制。这种比喻性的手法在教学中常见,能够激发读者的兴趣,使...

    oracle方向很值得一看的内容

    本压缩包文件“oracle.txt”可能包含了关于Oracle数据库的丰富知识,包括但不限于以下几个方面: 1. **Oracle数据库架构**:Oracle数据库采用多层架构,包括用户接口层、服务器进程层、存储管理层等。用户通过SQL*...

    Oracle 11g 新特性 Flashback Data Archive 使用实例

    总之,Oracle 11g 的 Flashback Data Archive 是一种强大的工具,它为数据库管理员提供了灵活的历史数据管理方案,满足了审计和合规性的需求,同时也简化了数据恢复的过程。通过理解和有效利用 FDA,可以提高数据库...

    Oracle闪回技术详解

    闪回表可能会失败,有可能有以下几种情况:违反了数据库约束、撤销数据失效、闪回不能跨越DDL等。 闪回删除(Flashback Drop)可以轻松将一个已经被Drop的表还原回来。相应的索引、数据库约束也会被还原(除了外键...

    Database.10g.High.Availability.with.RAC.Flashback.and.Data.Guard

    它支持几种不同的保护模式,包括最大保护、最大性能和最大可用性,以平衡安全性和性能。 在本书中,读者将了解到如何配置和管理RAC环境,设置和优化Flashback技术,以及如何部署和管理Data Guard配置。此外,还会...

    备份与还原Oracle版.rar

    1. **物理备份**:Oracle提供几种物理备份方式,如传统的冷备份(在数据库关闭状态下进行)和热备份(在数据库运行时进行)。RMAN(恢复管理器)是Oracle提供的工具,支持热备份和增量备份,可以结合使用Oracle的...

    Less17_Flashback_TB3.pdf

    Flashback技术为Oracle 10g引入了一种新的数据恢复机制,与传统的恢复技术相比,它的优势在于速度快、操作简单且只需恢复更改的数据部分而非整个数据库或文件。Flashback技术主要包括以下几个方面:Flashback ...

    Oracle闪回特性

    Oracle闪回特性是Oracle数据库提供的一种强大的数据恢复和时间旅行功能,它允许用户查看和恢复到数据库的某个历史状态,而无需依赖传统的备份和恢复过程。这一特性在故障排查、误操作恢复以及历史数据分析等方面有着...

    Oracle知识库(教程)

    这个Oracle知识库教程可能是按照逐步学习的方式编排的,适合初学者和有一定经验的数据库管理员。通过学习,用户不仅可以理解Oracle数据库的基本操作,还能掌握更高级的数据库管理和开发技巧。无论你是要备考Oracle...

Global site tag (gtag.js) - Google Analytics