`
bobshute
  • 浏览: 284807 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle 闪回功能

阅读更多

Oracle有个非常强大的功能:闪回,它可以修改ORACLE当前用户的时间,令其回到过去指定的某个时间点,并且可以还原当时的数据,就算数据被修改、删除,都能够通过闪回重现。

如果不小心删除了数据,并且已经commit了,那么可以利用闪回回到过去,将数据复制出来,手动恢复。

注意:闪回不能重现已经被TRUNCATE的数据。

 

下面进入历史重现——闪回的操作:

1、如果需要使用闪回功能,那么需要dba给当前用户赋予权限:

grant execute on sys.dbms_flashback to test;

 

2、假定原有一个表:table1

3、字段:ID,Name,并且存在8条数据,

4SQL> select * from table1;
 
                                     ID NAME
--------------------------------------- ----------
                                      1 User_01
                                      2 User_02
                                      3 User_03
                                      4 User_04
                                      5 User_05
                                      6 User_06
                                      7 User_07
                                      8 User_08
 
8 rows selected

5、现在删除数据:DELETE FROM table1;commit;

6、再次查询:

SQL> select * from table1;
 
                                     ID NAME
--------------------------------------- ----------

7、已经没有数据了,那么开始闪回——回到过去:

execute dbms_flashback.enable_at_time(sysdate - 10 /1440);

10/1440表示10分钟

8、再来查询一把:

SQL> select * from table1;
 
                                     ID NAME
--------------------------------------- ----------
                                      1 User_01
                                      2 User_02
                                      3 User_03
                                      4 User_04
                                      5 User_05
                                      6 User_06
                                      7 User_07
                                      8 User_08
 
8 rows selected

历史重现了,系统闪回到了数据未被删除的时间点。

9、我们再回到现在:

execute dbms_flashback.disable;

10、再次查询:

SQL> select * from table1;
 
                                     ID NAME
--------------------------------------- ----------

已经没有数据了,说明在当前时间点,数据已经被删除了。

11、做得彻底一点:TRUNCATE TABLE table1;

12、再次闪回:execute dbms_flashback.enable_at_time(sysdate - 10 /1440);

13SQL> select * from table1;
 
                                     ID NAME
--------------------------------------- ----------

由于数据被TRUNCATE 了,所以就算闪回也没有办法了。

 

14ORACLE还能够根据系统变更号SCN来进行闪回:

获取当前系统SCN

SQL> var v_sys_cns number;

SQL> execute :v_sys_cns := dbms_flashback.get_system_change_number;

PL/SQL procedure successfully completed
v_sys_cns
---------
383054

15、回到指定SCN的时间点:

SQL> execute dbms_flashback.enable_at_system_change_number(383054);

16、禁止闪回:execute dbms_flashback.disable();

分享到:
评论

相关推荐

    用Oracle闪回功能恢复偶然丢失的数据.txt

    ### Oracle闪回功能详解与数据恢复实践 #### 引言 在数据库管理中,数据丢失是一种常见的风险,可能由各种原因造成,如误操作、硬件故障或软件错误等。为应对这种挑战,Oracle数据库自第10g版本起引入了强大的闪回...

    用Oracle闪回功能恢复偶然丢失的数据.rar

    本教程将深入探讨如何利用Oracle闪回功能来恢复偶然丢失的数据。 首先,我们需要了解Oracle闪回功能的基础概念。闪回功能包括闪回查询(Flashback Query)、闪回表(Flashback Table)、闪回事务(Flashback ...

    用Oracle闪回功能恢复偶然丢失的数据

    下面将详细探讨Oracle闪回功能及其在数据恢复中的应用。 1. **闪回查询** (Flashback Query) 闪回查询允许用户查看数据库在特定时间点的状态,就像时光倒流一样。通过使用`SELECT AS OF TIMESTAMP`或`SELECT AS OF...

    oracle 闪回oracle 闪回oracle 闪回oracle 闪回

    标题和描述中反复提及的“Oracle闪回”(Flashback)功能是Oracle数据库管理系统中一项极为重要的特性,它为数据库管理员提供了恢复数据到特定时间点的能力,而无需进行完全的数据库恢复过程。以下是对Oracle闪回...

    Oracle 闪回,实验加解释

    通过本文对Oracle闪回技术的介绍,我们可以了解到如何设置和管理闪回恢复区,以及如何启用和禁用闪回数据库功能。这些步骤对于保障数据的安全性和提高数据库恢复能力具有重要意义。同时,我们也探讨了闪回恢复区中的...

    ORACLE闪回技术恢复指南

    本文旨在详细介绍Oracle闪回技术的各种应用场景与操作步骤,帮助读者理解并掌握如何利用Oracle闪回功能有效地进行数据恢复。Oracle闪回技术是一项强大的特性,能够在无需借助传统的备份和恢复流程的情况下,帮助用户...

    Oracle10闪回功能实例讲解[收集].pdf

    Oracle 闪回功能是Oracle数据库提供的一种强大的恢复机制,它允许数据库管理员快速恢复数据库或部分数据库到一个先前的状态,以应对逻辑错误或误操作。在Oracle 10g中,闪回技术包括了多种级别的闪回,如数据库级别...

    Oracle闪回技术详解

    Oracle闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复。闪回技术旨在快速恢复逻辑错误,对于物理损坏或是介质丢失的错误,闪回技术就回天乏术了...

    oracle闪回技术

    Oracle 闪回技术是Oracle数据库提供的一种强大的数据恢复机制,它允许用户恢复到数据库的某个历史状态,而无需依赖传统的备份和恢复过程。这一技术基于Oracle的多版本并发控制(MVCC)机制,使得数据库能够记录和...

    oracle闪回

    ### Oracle闪回功能详解 #### 一、Oracle闪回概述 在Oracle数据库中,闪回功能是一组强大的特性集合,允许数据库管理员或用户在发生数据丢失或错误更改时,能够恢复到之前的某个状态。这些特性包括但不限于闪回表...

    oracle闪回数据库

    Oracle闪回数据库是一种高效的数据恢复技术,它允许管理员迅速恢复数据库至某一特定时间点,而无需执行完整的数据库恢复过程。这种技术显著提高了数据恢复的速度和便捷性,特别适合处理逻辑错误,例如用户误操作导致...

    利用oracle 闪回技术恢复数据

    首先,我们来理解一下Oracle闪回技术的几个主要组件: 1. **闪回查询(Flashback Query)**:这是最基本的功能,可以让用户查看表或视图在特定时间点的状态。通过使用`AS OF TIMESTAMP`或`AS OF SCN`子句,我们可以...

    oracle 闪回已删除的表

    在Oracle数据库管理中,**闪回删除的表**是一项非常实用的功能,它允许数据库管理员(DBA)恢复被误删的表及其所有数据。这一特性最早出现在Oracle 9i版本中,但在Oracle Database 10g中得到了进一步的增强和完善。 ...

    利用oracle闪回技术恢复误删除的表或误更新的记录.pdf

    为了使 Oracle 数据库从任何逻辑误操作中迅速地恢复...进行了全面扩展,提供了闪回数据库、闪回删除、闪回表、闪回事物及闪回版本查询等功能,本 文将重点说闪回删除、闪回表的使用。(本文使用oracle 版本10.2.0.3.0)

    ORACLE数据库回闪

    这一特性是Oracle数据库系统的核心优势之一,尤其在数据安全性要求极高的环境中,回闪功能显得尤为重要。 Oracle数据库的回闪机制主要基于两个核心技术:Redo Log(重做日志)和Undo Segment(回滚段)。Redo Log...

Global site tag (gtag.js) - Google Analytics