Oracle闪回特性

合集下载

14-第14章:闪回技术

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中闪回语法

oracle中闪回语法

oracle中闪回语法全文共四篇示例,供读者参考第一篇示例:Oracle中的闪回功能是一种强大的特性,它可以让用户在数据库操作出现错误时快速恢复数据到之前的状态。

通过使用闪回功能,用户可以在不影响其他正在运行的事务的情况下,进行数据的回滚操作,使数据库恢复到之前一个确定的时间点。

在Oracle中,闪回功能主要通过闪回查询和闪回表来实现。

闪回查询可以让用户查看数据库在某个时间点的数据情况,而闪回表可以让用户将表恢复到之前的状态。

下面我们来详细介绍一下这两种闪回功能的具体语法和用法。

闪回查询的语法如下:```SELECT * FROM table_name AS OF TIMESTAMP timestamp;```这条SQL语句表示从指定的时间戳timestamp时刻查看table_name表的数据情况。

用户可以使用这种方式来查看数据库在某个具体时刻的数据,从而找出误操作的原因,或者进行数据对比和分析。

除了基本的闪回查询和闪回表功能之外,Oracle中还提供了其他一些灵活的闪回功能,比如闪回查询带条件、闪回表到某个SCN号、闪回事务等。

用户可以根据具体的需求和情况,选择合适的闪回方式进行操作。

需要注意的是,闪回功能在数据库恢复和数据修复方面有着非常重要的作用,但在使用时也需要谨慎操作,以避免对数据造成更大的影响。

在使用闪回功能之前,用户最好提前做好数据备份和日志记录,以防止操作出现意外情况。

Oracle中的闪回功能是一项非常实用和强大的特性,它可以帮助用户在数据库操作出现错误时快速恢复数据,有效避免数据丢失和影响。

通过灵活运用闪回功能,可以提高数据库的稳定性和安全性,保证数据的完整和可靠性。

希望本文的介绍能够对大家有所帮助,希望大家在使用Oracle数据库时,能够充分利用闪回功能,提升数据管理的效率和水平。

第二篇示例:Oracle中的闪回语法是一种非常强大的工具,它可以帮助用户轻松地还原数据库到之前的状态。

oracle数据库闪回相关语句介绍

oracle数据库闪回相关语句介绍
SQL>flashback table emp to before drop;或 SQL>flashback table "BIN$b+XkkO1RS5K10uKo9BfmuA==$0" to before drop;
: 清除回收站中的单个表: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数据库闪回

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 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闪回查询

Oracle闪回查询

Oracle闪回查询查找 SCN , Time对应关系: select to_char(sysdate,’yyyy-mm-ddhh24:mi:ss’),to_char(DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER) AS SCN from dual;通过时间flashback query数据: SELECT * FROM test AS OF TIMESTAMP TO_TIMESTAMP(’2007-04-09 11:25:17′, ‘YYYY-MM-DD HH:MI:SS’);通过SCN 闪回数据: SELECT * FROM test AS OF SCN 23565583;Oracle Flashback Database特性允许通过语句Flashback Database语句,让数据库前滚到当前的前⼀个时间点或者SCN,⽽不需要做时间点的恢复。

闪回数据库可以迅速将数据库回到误操作或⼈为错误的前⼀个时间点,如Word中的"撤消"操作,可以不利⽤就快速的实现基于时间点的恢复。

Oracle通过创建新的Flashback Logs(闪回⽇志),记录数据库的闪回操作。

如果希望能闪回数据库,需要设置如下参数:DB_RECOVER_FILE_DEST⽇志的存放位置, DB_RECOVER_FILE_DEST_SIZE恢复区的⼤⼩。

在创建数据库的时候,Oracle将⾃动创建恢复区,但默认是关闭的,需要执⾏ alter database flashback on命令。

SQL>flashback database to time to_timestamp(xxx);SQL>flashback database to scn xxx ;Oracle Flashback Table特性允许利⽤Flashback Table语句,确保闪回到表的前⼀个时间点。

0702闪回技术

0702闪回技术

Area)特性实现的。为了使用数据库的闪回技术、
必须启用撤消表空间自动管理回退信息。如果要
使用闪回删除技术和闪回数据库技术,还需要启
用回收站和闪回恢复区。
5
《 Oracle 12C数据库应用与设计》
3
采用闪回技术,可以针对行级和事务级
发生过变化的数据进行恢复,减少了数据恢
复的时间,而且操作简单,通过SQL语句就
可实现数据的恢复,大大提高了数据库恢复 的效率。
4
闪回查询、闪回版本查询、闪回事务查询、
闪回表主要是基于撤消表空间中的回退段实现的;
闪回删除和闪回数据库则是基于Oracle中的回收
站(Recycle Bin)和闪回恢复区(Flash Recovery
Oracle 12C数据库应用与设计
《 Oracle 12C数据库应用与设计》
单元7 维护Oracle数据库的安全性
闪回技术
2
《 Oracle 12C数据库应用与设计》
Oracle的闪回技术最早出现在 Oracle 9i中,
为了让用户可以及时获取误操作பைடு நூலகம்前的数据,提
供了闪回(Flashback Query)查询功能,Oracle 10g 闪回查询功能被大大增强,并从普通的闪回 查询形式发展形成了多种形式,包括闪回表、闪 回删除、闪回版本查询、闪回事务查询和闪回数 据库等。使用Oracle闪回技术,可以实现数据的 迅速恢复。

oracle 数据库闪回查询语句

oracle 数据库闪回查询语句

Oracle数据库提供了闪回查询(Flashback Query)的功能,它允许你查询表在过去某个时间点的数据。

这个功能对于回溯历史数据或者查找误操作引起的数据变更非常有用。

以下是一些 Oracle 数据库中的闪回查询语句的示例:
1. 查询过去某个时间点的数据:
上述语句中,your_table是表的名称,TIMESTAMP后面的字符串表示你希望查询的具体时间点。

2. 查询过去某个 SCN(系统更改号)的数据:
这里的1234567是你希望查询的 SCN 号。

3. 查询在过去一定时间段内的数据变化:
上述语句中,VERSIONS BETWEEN后面的两个时间戳表示你希望查询的时间段内的数据版本。

4. 使用 AS OF SCN 语法查看历史数据:
这个语句允许你在历史版本中进行条件过滤。

请注意,使用闪回查询功能需要相应的权限,而且 Oracle 数据库的
UNDO_RETENTION参数设置也可能对你能够查询的历史时间范围产生影响。

确保在使用这些功能时了解相关的安全和配置考虑。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在Oracle的操作工程中,会不可避免地出现操作失误或者用户失误,例如不小心删除了一个表等,这些失误和错误可能会造成重要数据的丢失,最终导致Oracle数据库停止。

闪回的基本概念
在Oracle的操作工程中,会不可避免地出现操作失误或者用户失误,例如不小心删除了一个表等,这些失误和错误可能会造成重要数据的丢失,最终导致Oracle数据库停止。

在传统意义上,当发生数据丢失、数据错误问题时,解决的主要办法是数据的导入导出、备份恢复技术,这些方法都需要在发生错误前,有一个正确的备份才能进行恢复。

为了减少这方面的损失,Oracle提供了闪回技术。

有了闪回技术,就可以实现数据的快速恢复,而且不需要数据备份。

闪回的类型:
闪回表(flashback table) :恢复到过去的一个是时间点
闪回删除(flashback drop) :回收站中将已删除的对象恢复到删除之前的状态
闪回版本查询(flashback version query) :查看用户提交了的增删改的操作以及相应操作时间的记录
闪回事务查询(flashback transaction query) :查询某个事务甚至撤销一个已经
提交的事务
闪回的益处
恢复中,闪回技术是革命性的进步
传统的恢复技术缓慢:
•它是整个数据库或者一个文件恢复,不只恢复损坏的数据
•在数据库日志中每个修改都必须被检查
闪回速度快:
•通过行和事务把改变编入索引
•仅仅改变了的数据会被恢复
闪回命令很容易:
•没有复杂棘手的多步程序
闪回表
闪回表,实际上是将表中的数据快速恢复到过去的一个是时间点或者系统改变号SCN 上。

实现表的闪回,需要使用到与撤销表空间相关的undo信息,通过show parameter undo 命令可以了解这些信息。

用户对表数据的修改操作,都记录在撤销表空间中,这为表的闪回提供了数据恢复的基础。

例如,某个修改操作在提交后被记录在撤销表空间中,保留时间为900秒,用户可以
在这900秒的时间内对表进行闪回操作,从而将表中的数据恢复到修改之前的状态。

闪回表的步骤:
1.执行表的闪回要设置用户权限:grant flashback any table to scott;
2. 获取要恢复的点(SCN号): select sysdate 时间, timestamp_to_scn(sysdate) SCN from dual;
3. 将表的行移动功能打开:alter table flshback_table enable row movement;
4. 执行闪回表:flashback table flashback_table to scn 945018(获取到的scn号,也可指定在某个时间段恢复);
闪回删除
闪回删除,实际上从系统的回收站中将已删除的对象,恢复到删除之前的状态。

系统的回收站只对普通用户有作用。

回收站是所有被删除对象及其相依对象的逻辑存储容器,例如当一个表被删除(drop)时,该表及其相依对象并不会马上被数据库彻底删除,而是被保
存到回收站中,而管理员是没有回收站。

回收站将用户执行的drop操作记录在一个系统表中,也就是将被删除的对象写到一个数据字典中。

如果确定不再需要该对象,可以使用purge 命令对回收站进行清空。

被删除的对象的名字可能是相同的,例如用户创建了一个test表,使用drop命令删除该表后,又创建了一个test表,这时,如果再次删除该表就会导致向回收站中添加了两个相向同的表,这样就需要将回收站中的名称重命名后再执行闪回。

查看回收站:show recyclebin;
清空回收站: purge recyclebin;
彻底删除表不经回收站: drop table TEST123 purge;
执行闪回(必须在回收站中): flashback table test123 to before drop;
很据在回收站中的名称执行闪回:flashback table
"BIN$9JMrb6kbRCON287lDV+5dA==$0" to before drop;
回收站中的名称重命名后执行闪回:flashback table test123 to before drop rename to test1234;
闪回删除: 需要注意的事情:
闪回删除对下列表无效:
在SYSTEM 表空间内的表
用精细审计的数据库或虚拟的私人数据库
属于字典管理的表空间
由于空间不足已经被手动或自动删除的表
以下依赖不被保护:
位图索引
表之前删掉的索引
闪回版本查询
闪回版本查询,通过它可以查找到所有已经提交了的增删改信息,什么时间段内提交了什么样的操作,根据时间同样也可以方便的闪回表,
闪回版本查询其格式如下:
例如:
select
vid,vname,versions_operation,versions_starttime,versions_endtime from versions_table
versions between timestamp minvalue and maxvalue
order by 1,4;
其中:between...and时间段;timestamp 时间;MAXVALUE最大值;MINVALUE最小值;versions指是一个版本查询;versions_operation:增删改操
作;versions_starttime:起始时间。

闪回事务查询
闪回事务查询实际上闪回版本查询的一个扩充,通过它可以查询某个事务甚至撤销一个已经提交的事务。

实现闪回事务查询,需要先了解flashback_transaction_query视图,从该视图中可以获取事务的历史操作记录以及撤销语句(UNDO_SQL)。

闪回事务查询的步骤:
1. 通过闪回版本查询获取事务号(xid)
select
tid,tname,versions_operation,versions_starttime,versions_endtime,versio ns_xid
from transaction_table
versions between timestamp minvalue and maxvalue
order by versions_xid;
2. 通过xid查询Flashback_transaction_query,获取undo_sql
select operation,undo_sql
from Flashback_transaction_query
where xid='0400140020040000';
注意,要查询flashback_transaction_query视图的信息,需要有grant select any transaction to scott;的权限。

相关文档
最新文档