• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > 最简单的Oracle数据恢复 select as of使用方法

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了oracle select as,oracle select into,oracle select,oracle update select,oracle select语句等相关知识,希望本文的分享对您有所帮助

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');


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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

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

相关文章

  • 2017-05-11Oracle硬解析和软解析的区别分析
  • 2017-05-11oracle中utl_file包读写文件操作实例学习
  • 2017-05-11Oracle截取字符串去掉字段末尾指定长度的字符
  • 2017-09-17ORACLE 如何查看表空间使用率
  • 2017-05-11oracle中not exists对外层查询的影响详解
  • 2017-05-11oracle生成动态前缀且自增号码的函数分享
  • 2017-05-11Oracle中SQL语句连接字符串的符号使用介绍
  • 2017-05-11Oracle对字段的增删改方法分享
  • 2017-05-11Oracle中scott表结构与简单查询实例分析
  • 2017-05-11ORACLE查询表最近更改数据的方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Oracle开发之分析函数(Top/Bottom N、First/Last、NTile)
    • Oracle收购TimesTen 提高数据库软件性能
    • Oracle中 关于数据库存储过程和存储函数的使用
    • oracle 下WITH CHECK OPTION用法
    • oracle 11g RAC 常用命令整理分享
    • Oracle中如何把表和索引放在不同的表空间里
    • Oracle数据表分区的策略
    • 深入探讨:oracle中row_number() over()分析函数用法
    • ORACLE 回收站当前状态查询整理
    • 深入sql oracle递归查询

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有