`
housen1987
  • 浏览: 345555 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

最简单的Oracle数据恢复 select ... as of

阅读更多

概念:

You perform a Flashback Query by using a SELECT statementwith an AS OF clause.You use a flashback query to restrieve data as it existed at some time in the past.The query explicitly references a past time by menasof timestamp or SCN.It returns committed data that was current at that point intime.

通过执行一个带as of 子句的select语句进行闪回查询,可以闪回检索过去某个时间存在的数据,一个闪回查询被用来重现过去存在过的数据,这个查询明确的引用了过去的一个时间段或SCN号,闪回查询返回的数据都是过去某时刻已经提交的数据。



Potential uses of Flashback Query include:

可能使用到闪回查询的地方:

Recovering lost data or undoing incorrect,committed changes.For example,if you mistakenly delete or update rows,and then commit them,you can immediately undo the mistake.

恢复丢失的数据或撤销已经提交的错误。例如如果你不小心删除或更新了行,并且做了提交操作,你可以立刻撤销这个错误。

Comparing current data with the corresponding data at some time in the past.For example,you might run a daily report that shows the change in data from yesterday.You can compare the individual rows of table data or find intersections or unions of sets of rows.

比较当前数据和历史数据的一致性。例如,你可能需要生成一份前一天数据更新的日报告,你可以分别比较表的每一行或找到行的交集和并集。

Checking the state of transactional data at a particular time.For example,you could verify the account balance of a certain day.

在某个特殊时间检查事务型数据的状态。例如,你可以在某一天验证账户收支。

Simplifying the application design,by removing the need to store some kinds of temporal data.By using a Flashback Query, you can retrieve past data directly from the database.

移除某些因需求储存的暂时数据以简化应用设计。通过闪回查询你可以从数据库中直接获取到过去的数据。

Applying the packaged applications such as report generation tools to past data.

使用包装应用(例如报表生成工具)的历史数据

⊙Providing self-service error correction for anapplication,thereby enabling users to undo and correct their errors.

为应用提供自服务错误更正,因此可以让用户撤销或更正他们的错误。

 

示例:

 

SQL> conn /as sysdba;

已连接。

SQL> set pagesize 200

SQL> select * from scott.dept;

 

    DEPTNO DNAME                        LOC

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

        10 ACCOUNTING                   NEW YORK

        20 RESEARCH                     DALLAS

        30 SALES                         CHICAGO

        40 OPERATIONS                   BOSTON

现在,我们来增加一条数据,并提交:

 

SQL> insert into scott.dept values(50,'错误数据','CHINA');

已创建 1 行。

 

SQL> select * from scott.dept;


    DEPTNO DNAME                        LOC

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

        10 ACCOUNTING               NEW YORK

        20 RESEARCH                 DALLAS

        30 SALES                         CHICAGO

        40 OPERATIONS               BOSTON

        50 错误数据                     CHINA

 

SQL> commit;(2011-12-9 10:51:00)


提交完成。

正常情况下,由于已经做了commit操作,所以rollback已经无效了,要想得到2011-12-9 10:51:00之前的数据,怎么办?

使用timestamp时间点闪回:

SQL> select * from scott.dept as of timestamp to_timestamp('2011-12-09 10:00:00','yyyy-mm-dd hh24:mi:ss');

 

    DEPTNO DNAME                        LOC

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

        10  ACCOUNTING                   NEW YORK

        20  RESEARCH                      DALLAS

        30  SALES                         CHICAGO

        40  OPERATIONS                   BOSTON

闪回查询,主要依靠表空间的undo数据,如果想要追溯更久的数据,就需要设置较大的undo_tablespaces大小和undo_retention。

 

如果想直接更新当前的表到历史的某个时间状态,可以直接使用flashback关键字:

 

 

SQL> alter table scott.dept enable row movement;


表已更改。

 

SQL> flashback table scott.dept to timestamp to_timestamp('2011-12-09 10:00:00','yyyy-mm-dd hh24:mi:ss');


闪回完成。

 

【注意】:

闪回不是万能的,当一个表的数据较大或时间过长时,如果没有设置较大的闪回空间和时间,闪回操作将会失败,可能会出现以下错误:

 

1
0
分享到:
评论

相关推荐

    最简单的Oracle数据恢复 select as of使用方法

    Oracle 数据恢复是数据库管理中的一个重要环节,特别是在发生意外数据丢失或错误操作时。Oracle 提供了一种强大的工具——闪回查询(Flashback Query),它允许我们查看数据库在过去的某个时间点的状态,甚至能够...

    Oracle数据库学习指南

    37. 如何在oracle7和oracle8之间exp-imp数据 38. 如何在Windows 2000下将Oracle完全卸载 39. 如何正确建立TYPE、partition(分区) 40. 如何正确利用Rownum来限制查询所返回的行数 41. 什么是ROWID,为什么需要...

    oracle误删除表数据后的恢复详解.doc

    总结来说,Oracle 提供了强大的数据恢复机制,包括通过调整 Undo Retention 参数来延长撤销信息的保留时间,以及利用 Flashback 和 AS OF TIMESTAMP 功能来恢复误删除的数据。理解并熟练运用这些工具对于数据库管理...

    Oracle10gFlashback实践.doc

    Oracle 10g Flashback 技术是一种强大的数据库恢复和数据...总之,Oracle 10g的Flashback技术提供了一套全面的数据恢复和错误修正方案,使数据库管理员能够在不影响其他事务的情况下,有效地处理意外的数据更改或删除。

    Oracle复制表数据的两种用法

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了多种方式来复制表数据。在本文中,我们将深入探讨Oracle复制表数据的两种主要方法,并结合提供的“测试插入.sql”文件,理解其在实际操作中的应用。 首先...

    Oracle sqlplus命令详解

    这是启动数据库的最简单方式,只加载数据库实例,并不打开任何控制文件或数据文件。这种方式主要用于数据库维护和管理任务,如备份和恢复控制文件等。 2. **`startup mount dbname`** 加载数据库实例并打开控制...

    Oracle Database 10g 误删表,闪电恢复

    SELECT * FROM table_name AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '5' MINUTE); ``` 此查询将返回5分钟前`table_name`表中的数据。 闪回事务则可恢复到某个特定的事务前的状态,这对于回滚单一的错误事务尤其...

    oracle truncate恢复

    1. **关闭数据库**:这是最简单但也是最粗暴的方式。 2. **离线表空间**:对于生产环境中的数据库,通常选择离线包含目标表的表空间。 3. **停止相关应用**:如果无法关闭数据库或离线表空间,至少应停止与该表相关...

    oracle flash back stop

    Oracle Flashback技术是Oracle数据库提供的一种强大的数据恢复和历史数据查询功能。"Oracle Flash back stop"可能是指在操作过程中遇到的问题或需要停止的Flashback操作。让我们深入了解一下Oracle Flashback的相关...

    oracle最全最有价值的知识点

    7. **数据备份与恢复**:简单的数据备份可以通过`CREATE TABLE emp2 AS SELECT * FROM emp;`实现,更新数据使用`UPDATE EMP SET EMPNO = 7902 WHERE ENAME = 'FORD';`,删除数据使用`DELETE FROM EMP2;`或`DELETE ...

    Oracle基础 基础Oracle

    Oracle是世界上最流行的关系型数据库管理系统之一,尤其在企业级应用中广泛应用。对于初学者来说,了解Oracle的基础至关重要。本文将详细解析Oracle中的基本概念、操作和SQL语句。 1. 创建数据库:`CREATE DATABASE...

    oracle数据操作

    Oracle 数据库是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据主导地位。本文将深入探讨Oracle数据库的基本操作,帮助您快速掌握Oracle的简单使用。 1. **用户身份验证与连接** 在Oracle中,连接...

    oracle经典导入导出语句

    Oracle 数据库提供了多种方式来实现数据的导入导出,其中 imp 和 exp 是最基础且常用的手段之一。 1. **数据导出**: - **完全导出**:`exp system/manager@TEST file=d:\daochu.dmp full=y`,此命令将整个数据库 ...

    Oracle RMAN基于catalog-配置与使用指南.docx

    RMAN 基于 Catalog 配置是指使用 RMAN 工具来备份和恢复 Oracle 数据库,而 Catalog 是 RMAN 的元数据存储库,用于存储备份的元数据信息。 环境操作系统和数据库版本 本指南使用的环境操作系统是 Windows 7 专业版...

    ORACLE8I数据库中数据坏块的解决方法.pdf

    `EVENT 10231`事件允许Oracle在执行全表扫描操作(如export或`CREATE TABLE AS SELECT`)时跳过某些类型的坏块,从而保留其他未损坏的数据。在Oracle 8.1及以上版本,`EVENT 10231`的功能通过`SKIP_CORRUPT`标志实现...

    oracle图形界面操作和数据备份和分页-oracle表操作和数据库对象

    通过上述内容的详细介绍,我们可以看到 Oracle 数据库不仅提供了强大的图形界面工具来简化数据库管理操作,还具备完善的数据备份与恢复机制以及丰富的数据分页功能,这使得 Oracle 成为了企业级应用中的首选数据库...

    oracle入门

    **二、Oracle数据类型** Oracle提供了多种数据类型,用于存储不同类型的数据: 1. 数值类型:NUMBER(可以存储整数和小数),INTEGER,INT,PLS_INTEGER,BINARY_INTEGER等。 2. 字符串类型:VARCHAR2(可变长度字符...

Global site tag (gtag.js) - Google Analytics