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

oracle闪回

 
阅读更多
闪回表,实际上是将表中的数据恢复到过去的一个焦点或者系统改变号SCN上,实现表的闪回。用户对表的修改操作都记录在撤销表空间中,这为表的闪回提供了恢复基础。
1参数
1首先查看UNDO参数信息,sys用户登录。
SQL> show parameter undo
NAME                                 TYPE        VALUE
------------------------------------                -----------     ----------
undo_management                      string       AUTO
undo_retention                         integer       900
undo_tablespace                        string       UNDOTBS1
如上参数,可以在900秒内对数据进行恢复。

可将时间设置大一些
SQL> alter  system set undo_retention=1200 scope=both;
系统已更改。

2相应执行闪回的用户要有权限
SQL> grant flashback any table to ruiyuan;
授权成功。
2查看已经修改的数据

若数据被delete掉,可用以下语句查看版本信息
select empno,ename,sal from  empsal
as of timestamp to_timestamp('2013-03-24 13:00:00', 'yyyy-mm-dd hh24:mi:ss');

3 DELETE闪回
1查看某一时间点SCN号
select '2013-03-26 11:30:00' 时间,
timestamp_to_scn(to_date('2013-03-26 11:30:00','yyyy-mm-dd hh24:mi:ss')) SCN
from dual;
也可使用以下方式查看当前SCN号
select dbms_flashback.get_system_change_number scn from dual;

2要对表进行闪回,首先对标开启行移动功能。开启行移动功能是为了应对rowid变化,是指可以从回滚段写数据。
alter table emp enable row movement;

对表进行闪回
flashback table emp to scn 2087054;

也可重新创建一个表插入原数据,适用于数据量较小,可以不用开启行移动
create table t as
select * from emp
as of timestamp to_timestamp('2013-03-26 13:50:00', 'yyyy-mm-dd hh24:mi:ss');

3关闭行移动功能
Alter  table emp   disable row  movement;

4 DROP闪回
被drop的表闪回不需要row movement
1直接通过表名闪回
Flashback table empsal to before drop;

2通过回收站闪回
SQL> select object_name,original_name  from user_recyclebin;

OBJECT_NAME                            ORIGINAL_NAME
------------------------------                      --------------------------------
SYS_LOB0000076510C00001$$               SYS_LOB0000076510C00001$$
BIN$gHyQWGdcRA+TjuR8pnh7KA==$0         DDD
BIN$W9E+vtRKTHitj4UWr80a1Q==$0          SYS_C0011515
BIN$YDEeZZtdTwShdEdSbr7NLw==$0          SYS_FK0000076410N00003$
BIN$O8tpFWQHTjuOgOJziOMV8w==$0         SAL_TABLE
BIN$McKRvF+vQcmDRxsu/2joQw==$0          EMPSAL
SYS_IL0000076510C00001$$                SYS_IL0000076510C00001$$
BIN$RCeb5Hq7QU6Mk3n52Y5QMg==$0        EMP

根据回收站object_name进行闪回
flashback table "BIN$RCeb5Hq7QU6Mk3n52Y5QMg==$0" to before drop;

也跟根据回收站的名查看原数据,不进行闪回,把就信息插入新表
select empno,ename,sal from  "BIN$v+9Lau8zT4COjhMx4aUtsQ==$0"
as of timestamp to_timestamp('2013-03-24 13:00:00', 'yyyy-mm-dd hh24:mi:ss');

create t as
select empno,ename,sal from  "BIN$v+9Lau8zT4COjhMx4aUtsQ==$0"
as of timestamp to_timestamp('2013-03-24 13:00:00', 'yyyy-mm-dd hh24:mi:ss');

3闪回重复的表
若前后删除两张名字相同的表,对表名进行闪回会恢复最后删除的表。若要闪回第一个删除的表,可在闪回时进行重命名
flashback table emp to before drop rename to emp1;
5查看数据修改的版本
select emp.* ,TO_CHAR(versions_starttime,'yyyy-mm-dd hh24:mi:ss') versions_starttime,
    TO_CHAR(versions_endtime,'yyyy-mm-dd hh24:mi:ss')versions_endtime  from emp
versions between timestamp timestamp'2013-03-26 13:40:00' and
timestamp'2013-03-26 13:58:00'
order by 6,5
其中 versions_starttime,versions_endtime分别表示修改行的版本时间,只有别修改的才有此时间。若行只有versions_endtime时间,则表示最初版本,若只有versions_starttime则表示最后版本。
6注意
闪回操作对下列数据无效
SYSTEM表空间内
用于精细审计的数据库或虚拟私人数据库
数据字典管理的表空间
由于空间不足已经被手动删除或自动删除的表

以下依赖不被保护
位图索引
表之前删掉的索引
表的统计数据不会被闪回
当前的索引和从属的对象会被维护

闪回操作
系统表不能被闪回
不能据跨越DDL操作
会被写入警告日志
会产生撤销和重做的信息
分享到:
评论

相关推荐

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

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

    Oracle闪回特性

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

    oracle闪回技术

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

    Oracle闪回技术详解

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

    oracle 闪回查询

    Oracle 闪回查询 Oracle 闪回查询是 Oracle 9i 中引入的一项新特性,用于恢复误删数据或错误的 DML 操作。它利用 Oracle 的多版本读一致性特性,通过 undo 机制提供所需的前镜像中的数据。用户可以通过指定时间点或...

    利用oracle 闪回技术恢复数据

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

    Oracle 闪回,实验加解释

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

    oracle 闪回已删除的表

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

    ORACLE闪回技术恢复指南

    ### ORACLE闪回技术恢复指南 #### 引言 本文旨在详细介绍Oracle闪回技术的各种应用场景与操作步骤,帮助读者理解并掌握如何利用Oracle闪回功能有效地进行数据恢复。Oracle闪回技术是一项强大的特性,能够在无需...

    oracle闪回数据库

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

    Oracle闪回操作

    Oracle 闪回操作是Oracle数据库提供的一种高级恢复技术,它允许用户恢复数据库、表或单个行至一个特定的时间点或系统改变号 (SCN)。这种功能在处理误操作,如误删数据、错误更新等场景时尤其有用,因为它可以避免...

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

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

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

    为了使 Oracle 数据库从任何逻辑误操作中迅速地恢复,Oracle 推出了闪回技术。 该技术首 先以闪回查询( Flashback Query)出现在 Oracle 9i 版本中,后来 Oracle 在 10g 中对该技术 进行了全面扩展,提供了闪回...

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

    该技术允许选择性地复原某些对象,在 Oracle 11g 中,闪回技术包括闪回数据库、闪回表、闪回查询、闪回版本查询、闪回事务查询和闪回丢弃等方面。 2. 闪回数据库(Flashback Database) 闪回数据库允许用户通过 ...

    DAVE Oracle 闪回 学习笔记

    Oracle闪回技术是一种非常实用且强大的功能,它允许用户恢复到过去某个时间点的状态,而无需执行复杂的恢复操作。通过闪回功能,Oracle数据库能够实现数据的撤销、数据库的闪回以及事务的撤销等功能。 #### 二、闪...

    oracle 闪回 flashback

    Oracle 闪回(Flashback)技术是Oracle数据库提供的一种强大工具,主要用于数据恢复和时间点一致性查询。这一技术的核心在于Undo Segment,它记录了数据库中事务的撤销信息。Oracle 10g引入了多种闪回功能,包括...

    Oracle 数据库应用:第17章 Oracle闪回技术.ppt

    闪回技术首先出现在 Oracle 9i 版本中,后续在 10g 版本中进行了扩展,提供了闪回数据库、闪回删除、闪回表、闪回事务以及闪回版本查询等功能。在 11g 版本中,继续增加了闪回数据归档功能。 闪回数据库:允许用户...

Global site tag (gtag.js) - Google Analytics