zoukankan      html  css  js  c++  java
  • oracle 闪回(例子)

    oracle闪回是oracle很重要的特性,今天刚接触了一点,写点皮毛,以后再慢慢深入研究

    闪回表

    创建表语句

    create table emp11
    as
    select * from emp
    where 1=2

    删表语句

    drop table emp11

    其实emp11表删了,却在系统中出现一张新表以系统命名的,这就是oracle10G中对删表的处理,原表实际上并未完全删掉,相当于存在回收站中。如果我们需要恢复表emp11,用闪回是很方面的。

    可以用下列语句查出表存在的名称

    select * from tab;

    查询结果

    BIN$YqKHsrh1TMOUvzHmmaSgjQ==$0 TABLE   
    EMP113                         TABLE   
    EMP12                          TABLE   
    BIN$nylcQomQRbqJ1rTyyWP+QA==$0 TABLE   
    BIN$PSVb6sBcSn6+ISIFNrJh3Q==$0 TABLE
    
    

     还可以用这条语句进行查询原表以及生成的表

    select ORIGINAL_NAME,object_name,type from user_recyclebin;

    结果为

    ORIGINAL_NAME                    OBJECT_NAME                    TYPE
    -------------------------------- ------------------------------ -------------------------
    EMP11                            BIN$nylcQomQRbqJ1rTyyWP+QA==$0 TABLE
    

    闪回表语句

    flashback table emp11 to before drop;

    emp11表就恢复了

    恢复完表后最好用purge recyclebin 来释放回收站中的资源。如果删除的时候用下面这条语句删除,那么表就在回收站中,用闪回就不行了。

    flashback table emp11 to before drop;

    如果一个被重复删掉几次,那么恢复时用 flashback table emp11 to before drop; 就恢复最后一次删的,那么怎么恢复前几次删的呢?用这条语句 flashback table emp11 to before drop rename to emp113(这里以emp11表为例) 闪回是和删除的顺序相反的

    闪回表中的数据

    删除表语句以emp表为例

    delete from emp;
    commit

    恢复表数据(这是恢复到具体的某一时间段)

    insert into emp  select * from emp as of timestamp timestamp '2012-02-02 21:12:00'

    还有一种恢复到具体的时间(恢复到20分钟以前)

    insert into emp  select * from emp as of timestamp sysdate -20/1440


    当然还可以闪回数据库的,这里就不说了,闪回的方式还有很多种的如csn号等,以后再慢慢研究 

  • 相关阅读:
    PythonStudy——epoll 模块实现异步IO模型
    MySQLStudy——Mac下MySQL 允许用户远程访问数据库
    MySQLStudy——MySQL 基础语句
    MySQLStudy——MySQL 概念
    MySQLStudy——Mac下MySQL 常用命令 启动 关闭 重启服务 查看版本
    PythonStudy——IO模型
    PythonStudy——非阻塞IO模型
    PythonStudy——多路复用IO select实现
    restfull api
    斜体菜单
  • 原文地址:https://www.cnblogs.com/wujin/p/2336204.html
Copyright © 2011-2022 走看看