oracle闪回技术
14-第14章:闪回技术

第14章 闪回技术
朱广强 zgq007@
主要内容
闪回技术概述 闪回技术查询 闪回版本查询 闪回表 闪回事务查询 闪回数据库 闪回数据归档
2
闪回技术概述
flashback( 闪 回 ) 是 Oracle10g 里 新 加 入 的 一 个 非 常 有 用 的 一 个 特 性 。 Oracle数据库10g提供了五个新的闪回功能:闪回版本查询,闪回事务查询,闪 回删除,闪回表和闪回数据库。Oracle数据库11g提供了一个有趣的新的闪回功 能:闪回数据存档,它允许一个Oracle数据库管理员维护一个记录,对指定时 Nhomakorabea9
闪回删除(Flashback Drop)
闪回删除(Flashback Drop) 使用 Oracle Database 11g中的闪回表特性,可以毫不费力地恢复被意外删除的表。 如果用户或DBA意外地删除了一个非常重要的表,需要尽快地恢复。虽然Oracle 9i D atabase 推出了闪回查询选项的概念,以便检索过去某个时间点的数据,但它不能闪回 DDL 操作,如删除表的操作。唯一的恢复方法是在另一个数据库中使用表空间的时间点 恢复,然后使用导出/导入或其他方法,在当前数据库中重新创建表。这一过程需要 DB A 进行大量工作并且耗费宝贵的时间,更不用说还要使用另一个数据库进行克隆。 现在使用 Oracle Database 11g中的闪回表特性,它使得被删除表的恢复过程如同执行 几条语句一样简单。 闪回删除可恢复使用DROP TABLE语句删除的表,是一种对意外删除的表的恢复机制。 闪回删除功能的实现主要是通过Oracle 11g数据库中的“回收站”(Recycle Bin)技术实现 的。 在Oracle 11g数据库中,当执行DROP TABLE操作时,并不立即回收表及其关联对象的 空间,而是将它们重命名后放入一个称为“回收站”的逻辑容器中保存,直到用户决定 永久删除它们或存储该表的表空间存储空间不足时,表才真正被删除。 注意:为了使用闪回删除技术,必须开启数据库的“回收站”。
Oracle闪回技术在数据恢复中的应用

曾传 军 , 秀 芬 , 小 玲 , 金 傅 彭 许
( 东 工 业 大 学 计 算 机 学 院 , 东 广 州 5 00 ) 广 广 106
摘 要 :在 O al i 前 的 版 本 , 恢 复 用 户 误 操 作 的 数 据 , 须 通 过 逻 辑 备 份 或 者 物 理 备 份 进 rc 9 之 e 要 必
O al 据 库 是 世 界 上 最 流 行 的关 系 数 据 库 之 一 。 rce数
于 它 。 之 前 的 O al rce数 据 库 版 本 , 事 务 提 交 后 , 中 在 段
由 于 它 的 系 统 可 移 植 性 好 、 用 方 便 、 能 强 , 国 内 使 功 在 外 企 事 业 单 位 中 应 用 广 泛 。本 文 介 绍 了 O al rce闪 回 技 术 , 它 最 大 的 特 点 是 能 实 现 自动 备 份 , 有 效 减 少 管 理 开 销 。 数 据 库 发 生 故 障 具 有 随 机 性 ,大 多 数 情 况 下 没 有 事 先 人 为 备 份 ,这 时 就 可 以 利 用 闪 回技 术 快 捷 方 便 地 恢 复 数 据 。 从 O al i推 出 闪 回 查 询 f lsb c rce 9 Fah a k Q e ) 性 , O al 0 ur 特 y 到 rce 1 g闪 回 技 术 得 到 了 进 一 步 的 发 展 。 随 着 闪 回 功 能 不 断 扩 充 和 加 强 ,新 的 应 用 也 大 量 出现 在系 统管 理 中。
Ap l a i n i a a r c v r n Or ce f s b c e h o o y p i t n d t e o e y o a l a h a k t c n l g c o l
oracle中闪回语法

oracle中闪回语法全文共四篇示例,供读者参考第一篇示例:Oracle中的闪回功能是一种强大的特性,它可以让用户在数据库操作出现错误时快速恢复数据到之前的状态。
通过使用闪回功能,用户可以在不影响其他正在运行的事务的情况下,进行数据的回滚操作,使数据库恢复到之前一个确定的时间点。
在Oracle中,闪回功能主要通过闪回查询和闪回表来实现。
闪回查询可以让用户查看数据库在某个时间点的数据情况,而闪回表可以让用户将表恢复到之前的状态。
下面我们来详细介绍一下这两种闪回功能的具体语法和用法。
闪回查询的语法如下:```SELECT * FROM table_name AS OF TIMESTAMP timestamp;```这条SQL语句表示从指定的时间戳timestamp时刻查看table_name表的数据情况。
用户可以使用这种方式来查看数据库在某个具体时刻的数据,从而找出误操作的原因,或者进行数据对比和分析。
除了基本的闪回查询和闪回表功能之外,Oracle中还提供了其他一些灵活的闪回功能,比如闪回查询带条件、闪回表到某个SCN号、闪回事务等。
用户可以根据具体的需求和情况,选择合适的闪回方式进行操作。
需要注意的是,闪回功能在数据库恢复和数据修复方面有着非常重要的作用,但在使用时也需要谨慎操作,以避免对数据造成更大的影响。
在使用闪回功能之前,用户最好提前做好数据备份和日志记录,以防止操作出现意外情况。
Oracle中的闪回功能是一项非常实用和强大的特性,它可以帮助用户在数据库操作出现错误时快速恢复数据,有效避免数据丢失和影响。
通过灵活运用闪回功能,可以提高数据库的稳定性和安全性,保证数据的完整和可靠性。
希望本文的介绍能够对大家有所帮助,希望大家在使用Oracle数据库时,能够充分利用闪回功能,提升数据管理的效率和水平。
第二篇示例:Oracle中的闪回语法是一种非常强大的工具,它可以帮助用户轻松地还原数据库到之前的状态。
oracle数据库闪回相关语句介绍

: 清除回收站中的单个表:purge table emp 清除整个回收站:purge recyclebin 清除不同的对象回收站:purge user_recyclebin或purge dba_recyclebin 彻底删除一个table: SQL>drop table emp purge; --表不能被恢复了。
: Sql代码 flashback table emp to timestamp to_timestamp('20120709195000','YYYYMMDDHH24:MI:SS');
: Java代码 SQL>show recyclebin; SQL>drop table emp; SQL>show recyclebin; ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME EMP BIN$b+XkkO1RS5K10uKo9BfmuA==$0 TABLE 2012-11-07:15:30:47
这篇文章主要给大家介绍了关于oracle中spool命令的使用方法文中通过图文介绍的非常详细对大家的学习或者工作具有一定的参考学习价值需要的朋友们下面随着小编来一起学习学习吧
oracle数 据 库 闪 回 相 关 语 句 介 绍
:
闪回操作前启用行移动功能
alter table emp enable row movement;
oracle数据库闪回

而闪回技术提供了从逻辑错误中恢复的更有效和更快的方法,多数情况下,在用这种技术进行恢复时数据库仍然联机并对用户可用。此外,闪回技术允许选择性地复原某些对象。使用传统的技术,从某种意义上说某有选择,只能恢复整个数据库。
SQL> conn rocky/rocky
已连接。
SQL> select * from emp;
EID NAME SEX ID
---------- ---------- ----- ----------
aa bb B 11
闪回数据库
闪回数据库的条件
1、 数据库日志系统必须在归档模式下。
2、 如果丢失了一个数据文件,或者由于某种原因不能使用特定的数据文件,则不能使用闪回数据库进行恢复。
3、 如果已经在想闪回的时间范围内复原或重建了一个控制文件,则不能使用闪回数据库特性。
4、 不能闪回一个数据库到RESETLOGS操作之前。
def hykdddd
defgdbbea hykdddd
SQL>
注意:回收站中的对象只能进行查询,任何的DML操作将不起作用。
恢复被删除的表
只要回收站中列出被删除的表,就可以使用命令恢复它。
FLASHBACK TABLE table_name TO BEFORE DROP
还有:
清除整个回收站:purge recyclebin
除回收站中的单个表:purge table test_drop
上述命令将从USERS表空间中删除单一用户scott的所有对象(以及存在于其他表空间中的所有依赖对象)。
oracle flash back原理

oracle flash back原理Oracle Flashback是一种数据库恢复和查询技术,它可以基于时间或者特定条件,将数据库恢复到过去的某个状态。
本文将详细介绍Oracle Flashback的原理和实现方式。
现代数据库面临着日益增长的数据量和日志的快速变化。
数据库管理员需要能够在数据损坏或删除时快速恢复数据库,并且能够进行详细的查询和分析操作。
Oracle Flashback技术提供了一种可靠且高效的解决方案,使管理员能够快速恢复数据库,追溯数据变更历史和查询特定时刻的数据状态。
【1. Oracle Flashback的基本原理】Oracle Flashback的原理是通过使用Undo数据和Redo数据来实现数据的恢复和查询。
Undo数据是事务发生前的数据副本,也称为回滚段。
当一个事务发生时,Oracle数据库将当前的数据状态复制一份,称为Undo数据。
在事务执行过程中,所有的修改操作都是在Undo数据上进行的,并且还会保存被修改的数据的一个副本。
这样,当需要恢复到过去的某个时刻时,可通过Undo数据将数据库还原到该时刻的状态。
Redo数据是在数据库中发生修改操作时,记录这些操作的数据。
当数据库发生故障或者需要进行恢复时,通过Redo数据可以将数据库恢复到最近的一次备份或者故障前的状态。
【2. Oracle Flashback的实现方式】Oracle提供了多种方式来实现Flashback技术,包括Flashback Query、Flashback Transaction、Flashback Table、Flashback Database等。
下面分别介绍这些实现方式的原理和使用方法。
(1) Flashback QueryFlashback Query是一种基于时间点查询的技术,可以在一个事务中查询到过去某个时间点的数据库状态。
它通过读取Undo数据和Redo 数据,将数据库恢复到指定时间点的状态,然后执行查询操作。
oracle flashback table语法

oracle flashback table语法OracleFlashbackTable语法是一种用于恢复被修改或删除的表数据的技术。
它使您可以使用简单的SQL语句来回滚表数据,并且比使用恢复工具和备份更加方便和快速。
要使用Flashback Table,您需要在Oracle数据库中启用闪回功能。
一旦启用,您可以使用以下语法将表恢复到以前的状态:FLASHBACK TABLE table_name TO TIMESTAMP timestamp_value;其中,table_name是您要恢复的表的名称,timestamp_value是您要将表恢复到的时间戳值。
您可以使用SYSTIMESTAMP或TO_TIMESTAMP函数来指定时间戳值。
例如,以下语句将从my_table表中删除的所有行恢复到3月1日下午2点的状态:FLASHBACK TABLE my_table TO TIMESTAMP '2021-03-0114:00:00';除了使用时间戳值外,您还可以使用SCN(系统更改号码)来恢复表。
以下语法将表恢复到指定的SCN:FLASHBACK TABLE table_name TO SCN scn_value;在使用Flashback Table时,需要注意以下几点:1. 您需要具有FLASHBACK权限才能使用Flashback Table。
2. 恢复表数据将覆盖当前表数据。
如果您在恢复之前未备份表数据,则无法撤消。
3. Flashback Table仅适用于表级别的恢复,无法恢复单个行或单个列。
4. 如果表已被TRUNCATE或DROP,则无法使用Flashback Table 来恢复数据。
总之,Flashback Table是一种快速和方便的恢复表数据的方法,但在使用它之前,请确保您了解其工作原理和限制。
详解Oracle闪回技术

详解Oracle闪回技术你还在为用户误操作数据发愁吗?你还在为应用逻辑有误、触发器失效产生的错误数据发愁吗?如果是,就请了解下oracle的闪回技术。
闪回从oracle9i开始引入,仅仅局限在用户误操作了表中的数据。
如果表被删除(drop)或截断(truncate),或误操作的时间太久,就没办法使用闪回了。
Oracle10g、11g中,闪回技术得到了增强,用户的各种误操作,包括dba 的误操作(如无意中删除了表空间、用户等),都可以闪回。
下面就重点讲述各种闪回技术。
一、闪回数据库flashback database适用场景:用户误删除表中数据、删除表、truncate表、索引、触发器,表空间等。
Dba误操作等。
简而言之,所有操作都可以闪回。
配置及如何闪回:篇幅较长,不讲述。
可以google,百度一下。
必须的对象:闪回日志。
注意事项:1.闪回整个数据库,不是某个表;2.会产生大量的闪回日志,占用磁盘空间,对IO有要求。
如果你的数据库已经有IO瓶颈,请不要配置闪回数据库。
这种情况下,可以采用异机不完全恢复。
3.不是无限期的闪回到过去某个时间点,要查看db_flashback_retention_target参数及v$flashback_database_log视图中的OLDEST_FLASHBACK_TIME,确定可以闪回的最早时间。
二、闪回已删除drop的数据表及索引flashback drop适用场景:用户误删除的一张或多张表。
配置及如何闪回:不用配置,如何闪回请google,百度一下。
注意事项:1.drop table不能用purge,加purge删除的表只能用闪回必须的对象:回收站。
数据库来处理;2.表及其索引被放入回收站,数据还在原来的表空间。
如果空间不够用,就会按先删除的先覆盖来使用空间。
如果已删除的表的空间被重用,不能闪回。
可查询视图dba_recyclebin 的CAN_UNDROP 来判定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
亚存整理
闪回作用
自动的基于磁盘的备份与恢复,能把表恢复到过去的某个时间点
查看闪回区
Show parameter db_recovery_file_dest 查看闪回区详细信息
Select flashback_on from v$database 查看闪回区是否开启
2,修改闪回功能
SQL> startup mount 数据库启动到mount下
SQL> alter database flashback on (off); 开启关闭闪回区
注:如遇到38706事件错误,可能是因为归档不正确。
先启用归档
SQL>alter database archivelog
SQL> alter system set db_flashback_retention_target=2880 修改闪回时间,默认是1440 闪回时间是指数据库能回退的时间
闪回使用实例:(注:sys用户下不可用闪回)
1,闪回drop的表
在非sys用户下创建表和表上索引,插入相关数据
create table abc (f number(9));
create index idx_test on abc(f);
insert into abc values(1);
insert into abc values(2);
insert into abc values(3);
删除表
drop table abc;
删除表之后,表并没有被真正删除,而是重命名之后放在同一用户下的回收站内,同时表上的索引等也会被如此处理。
回收站满后以先进先出的原则管理
查看表语句select * from tab;
查看索引语句select index_name, index_type, table_name from ind;
查看回收站语句show recyclebin
清空回收站语句PURGE RECYCLEBIN;
注:没有放入回收站的表不能被闪回
闪回之后,即可再次看到表
flashback table abc to before drop;
但是表闪回后相应的索引等需要重新编译
2,闪回DML语句
Flashback table abc to timestamp to_timestamp(‘2014-02-14 16:00:00’,’yyyy-mm-dd hh24:mi:ss’) 闪回可能会遇到08189错误,执行下列语句
alter table testvarchar enable row movement;
意思是允许Oracle修改rowid。
Oracle插入数据时会为该条数据分配唯一rowid并且不变,要启用闪回功能必须开启可修改rowid功能
闪回DML数据是使用回滚段进行恢复
附:查询所有可以撤消的操作,该操作依赖于undo_retention
SELECT versions_xid as xid,
versions_startscn,
versions_endscn,
versions_operation
FROM scott.abc VERSIONS between scn minvalue and maxvalue
查询undo_retention参数
该参数保存了回滚段数据保存的秒时间,超过该时间则无法闪回。
默认为15分钟
修改该参数alter system set undo_retention=3600;。