• Oracle闪回


    在PLSQL开发时,有时候会遇到对表的误删除,其实遇到这种情况不需要紧张,如果问题较大,请DBA帮忙,如果只是小问题,只需自己处理,利用flashback闪回操作即可,可将表进行恢复

    在删除表时,系统一般都是表放入回收站中,并没有完全进行删除,因此,只需从回收站中进行恢复就可以了,原理和Window中的回收站一样,但是一旦将回收站中的资料再进行删除,这个就很难恢复了,只能向DBA求救

    1. 回收站的概念

    回收站,是一个虚拟的容器,用于存放所有被删除的对象。

    实质上说,对于一个对象的删除,数据库仅仅是简单的重命名操作。

    数据库参数recyclebin设置为on.(即默认设置)。参数recyclebin为on,则表示把Drop的对象放入回收站。为off,则表示直接删除对象而不放入回收站。

    2. 查看recyclebin值命令

    SQL> show parameter bin;

    NAME                         TYPE       VALUE

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

    recyclebin                   string      on

    3. 在系统或会话级别中修改参数recyclebin值的命令为

    SQL>alter system set recyclebin = on|off;

    SQL>alter session set recyclebin = on|off;

    4. 对回收站的相关操作

    查看回收站的相关信息视图有:recyclebin/user_recyclebin/dba_recyclebin.

    手动清除回收站的信息为:purge recyclebin(或purge table original_name);

     
    --查看被删除的表是否进去了回收站
    SELECT *
      FROM dba_recyclebin dr
     WHERE dr.original_name LIKE 'CUX%' ;
     
     object_name为被删除表修改后的名称,可直接查询SELECT *   FROM  object_name
     
     
    通过flashback对表进行恢复
    FLASHBACK TABLE   cux.xxxxxx TO BEFORE DROP
    若表在被恢复前被重新创建,则 FLASHBACK TABLE   cux.xxxxxx TO BEFORE DROP  RENAME TO   xxxxxx1
     
     
    --查看是否恢复成功
    select * from  cux.xxxxxx 或者
    select * from  cux.xxxxxx1
     
     
     
     
    --查看索引
    SELECT *
      FROM user_recyclebin dr
     WHERE dr.original_name LIKE 'CUX%';
     
          object_name为现索引名
     
     
    --恢复索引
    alter index "BIN$/KUwk5MzNTfgQDQKbgxFbw==$0" rename to ind_creation_date
  • 相关阅读:
    Oracle 推出 ODAC for Entity Framework 和 LINQ to Entities Beta版
    Entity Framework Feature CTP 5系列文章
    MonoDroid相关资源
    MSDN杂志上的Windows Phone相关文章
    微软学Android Market推出 Web Windows Phone Marketplace
    使用 Visual Studio Agent 2010 进行负载压力测试的安装指南
    MonoMac 1.0正式发布
    Shawn Wildermuth的《Architecting WP7 》系列文章
    使用.NET Mobile API即51Degrees.mobi检测UserAgent
    MongoDB 客户端 MongoVue
  • 原文地址:https://www.cnblogs.com/wang-chen/p/5915594.html
Copyright © 2020-2023  润新知