9i新特性之Flashback Query的应用-------------针对DML误操作的恢复(1)

恢复

 
9i新特性之Flashback Query的应用-------------针对DML误操作的恢复

 

作者:刘颖博

时间:2003-12-29

mail:liuyingbo@126.com,请指正

 

转载请注明出处及作者

 

在9i之前,如果出现DML的误操作,只能通过备份来完成基于时间点的恢复,9i给提供了一个新的特性Flashback Query,我们可以应用此特性,可以很方便的实现恢复。但是要注意的是,Flashback Query 仅仅是一个查询的机制,不会真正的UNDO任何数据。

 

1.       什么是Flashback Query?

利用Oracle 多版本读一致的特性通过undo 来提供所需的前镜像中的数据。通过这个功能,可以看到历史数据,甚至用历史数据来修复误操作引起的错误。可以通过指定时间或者SCN 来检索需要的数据。{Uses Oracle's multiversion read-consistency capabilities to restore data by applying undo as needed. You can view and repair historical data, and you can perform queries on the database as of a certain wall clock time or user-specified system commit number (SCN).}

可以理解成,Oracle在之前的版本中就已经存在了Flashback Query了,之前我们把它称为多版本的读一致性。(多版本特性提供跨多个用户会话的一致性视图,Oracle不执行dirty read)

2.       准备工作

the best way:数据库处于Automatic Undo Management 状态(也有文章说必须,我查找了oracle文档应用了这个词Prerequisite<先决条件>,同时在AskTom上我也查找到相应的解释,指明最好是自动Undo管理,手动的Undo管理也是可以的,并且有例子)

最大可以闪回查询的时间段由UNDO_RETENTION 初始化参数(单位为秒)指定,参看下面执行命令

SQL> show parameter undo

 

NAME                              TYPE        VALUE

------------------------------------ ----------- ------------------------------

undo_management                    string      AUTO

undo_retention                       integer     600

undo_suppress_errors                 boolean     FALSE

undo_tablespace                      string      UNDOTBS1

SQL>

这是一个可以动态的修改的参数,可以通过ALTER SYSTEM SET UNDO_RETENTION =<seconds>;来修改参数值

比较显然的是,你设置了相对大的UNDO_RETENTION,就必须设置足够大的UNDO ROLLBACK SEGMENTS。

3.    如何使用Flashback Query?

我们可以通过两种方式来使用Flashback Query:

用SQL

使用SELECT 语句的AS OF 来进行闪回查询,语法如下:

as of  scn ( timestamp) expr

 

通过关键词 AS OF 可以对表,视图,物化视图 进行Flashback Query,可以制定SCN或者TIMESTAMP,其中TIMESTAMP是9i中出现的,可以有毫秒的时间单位,如

SQL> select systimestamp from dual;

 

SYSTIMESTAMP

---------------------------------------------------------------------------

29-12月-03 10.15.05.171000 下午 +08:00

 

下面,进行一个例子:

SQL> connect scott/tiger

已连接。

SQL> create table test (id number(1));

 

表已创建。

 

SQL> insert into test values (1);

 

已创建 1 行。

 

SQL> insert into test values (2);

 

已创建 1 行。

 

SQL> commit;

 

提交完成。

 

SQL> select * from test;

 

        ID

----------

         1

         2

 

SQL> delete from test where id=1;

 

已删除 1 行。

 

SQL> commit;

 

提交完成。

SQL> select * from test;

 

        ID

----------

         2

SQL> select * from test as of timestamp (systimestamp -interval'10'second);

 

        ID

----------

         1

         2

SQL> insert into test (select * from test as of timestamp (systimestamp -interva

l'10'second) where id =1);

 

已创建 1 行。

 

SQL> commit;

 

提交完成。

 

SQL> select * from test;

 

        ID

----------

         2

         1

现在,利用了Flashback Query 我们恢复了test表中被误删除的记录。当然我们可以通过一些其他的方法,类似于建立一个中间表等,进行这种少量数据的DML误操作的恢复.

 

时间: 2024-09-11 19:38:48

9i新特性之Flashback Query的应用-------------针对DML误操作的恢复(1)的相关文章

9i新特性之Flashback Query的应用-------------针对DML误操作的恢复(2)

恢复 用DBMS_FLASHBACK包   DBMS_FLASHBACK 包提供了以下几个函数:   ENABLE_AT_TIME:设置当前SESSION 的闪回查询时间 ENABLE_AT_SYSTEM_CHANGE_NUMBER:设置当前SESSION的闪回查询SCN GET_SYSTEM_CHANGE_NUMBER:取得当前数据库的SCN       DISABLE:关闭当前SESSION 的闪回查询       如: SQL> select dbms_flashback.get_syst

Windows Server 2008域控制器新特性详解

域"的真正含义指的是服务器控制网络上的计算机能否加入的计算机组合.一提到组合,势必需要严格的控制.所以实行严格的管理对网络安全是非常必要的.在对等网模式下,任何一台电脑只要接入网络,其他机器就都可以访问共享资源,如http://www.aliyun.com/zixun/aggregation/30744.html">共享上网等.尽管对等网络上的共享文件可以加访问密码,但是非常容易被破解.在由Windows 9x构成的对等网中,数据的传输是非常不安全的. 不过在"域&qu

What&#039;s New in JDK 8 java8新特性汇总

    Oracle甲骨文公司终于在2014年3月发布了Java 8正式版,它是java的一个里程牌版本,带来了诸多新特性.      针对这些新特性汇总如下: 一.针对java编程语言(Java Programming Language)     1.lambda表达式:一种新的语言特性,能够把函数作为方法的参数或将代码作为数据.lambda表达式使你在表示函数接口(具有单个方法的接口)的实例更加紧凑. public class Calculator { interface IntegerMa

Oracle 闪回特性(Flashback Query、Flashback Table)

--================================================== -- Oracle 闪回特性(Flashback Query.Flashback Table) --==================================================       Oracle 闪回查询是指针对特定的表来查询特定的时间段内的数据变化情况来确定是否将表闪回到某一个特定的时刻以保证数据无讹误存在. 这个特性大大的减少了采用时点恢复所需的工作量以及

Oracle 10G First Release的新特性简介(上)

oracle Oracle 10G First Release的新特性简介(上)   By Fenng 2003-6-8   Oracle(www.oracle.com)公司早已经宣称,Oracle 9i数据库只是一个过渡性的产品,真正的技术革新很可能在下一版,也就是通常说的10i(内部可能的版本号是2003,以下简称10i,估计在正式发行的时候会有一个新的名字)中体现出来.很多技术人员可能都会比较关心Oracle 10i究竟能有哪些新功能,是否能提供一些激动人心的新特性?我们在这里对Oracl

oracle Flashback Query简介

Flashback 是ORACLE 自9i 就开始提供的一项特性,在9i 中利用oracle 查询多版本一致的特点,实现从回滚段中读取表一定时间内操作过的数据,可用来进行数据比对,或者修正意外提交造成的错误数据,该项特性也被称为Flashback Query. 一.Flashback Query 正如前言中所提,Flashback Query 是利用多版本读一致性的特性从UNDO 表空间读取操作前的记录数据! 什么是多版本读一致性 Oracle 采用了一种非常优秀的设计,通过undo 数据来确保

《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南 》一2.4 Oracle 11g数据库的新特性

2.4 Oracle 11g数据库的新特性 2007年7月12日,Oracle公司在美国纽约宣布推出Oracle 11g数据库,这是迄今为止Oracle公司推出的所有产品中最具创新性和质量最高的软件.Oracle 11g数据库增强了Oracle数据库独特的数据库集群.数据中心自动化和工作量管理功能,可以在安全的.高度可用的.可扩展的.由低成本服务器和存储设备组成的网格上,满足最苛刻的交易处理.数据仓库和内容管理应用. 1.自助式管理和自动化能力 Oracle 11g的各项管理功能可用来帮助企业轻

Oracle 10G 新特性——RMAN

Oracle 10G 新特性--RMAN 作者:fuyuncat 来源:http://www.hellodba.com/ RMAN增量备份方案.增量备份的离线恢复.恢复预览.从resetlogs中恢复.文件压缩等被重新设计后变得更加强大了. 大多数人都赞同RMAN就是Oracle事实上的数据库备份工具.尽管早期版本的RMAN已经很强大,但是人们对它的期待还是有很多.很多DBA对于一些很希望有但实际上没有的特性很烦恼.很幸运,在10g中解决了很多问题并且增加了很多受期待的特性,下面就一起看一下.

iOS11开发新特性

索引 iOS11开发新特性之网络部分 前言 ECN 什么是 ECN ? ECN 的实现细节 IPv6 Networking stack changes 网络协议分层 MutliPath TCP NEDNSProxyProvider WKWebView Cookie 管理 URLSession Adaptable Connectivity API URLSessionTask Scheduling API iOS11开发新特性之Xcode9 新特性 功能更全的 Git 支持 创建新的颜色 asse