我们都比较熟悉windows中的回收站,文件删除后放到回收站里还可以再复原.Oracle回收站的原理完全一样,只是实现的细节方面有些差异.另外回收站中只能回收表和相关的对象包括索引、约束、触发器、嵌套表、大的二进制对象(LOB)段和LOB索引段.从Orace 10g开始有回收站的功能.

1.回收站启动和关闭

回收站默认是开启的.不过我们可以通过参数recyclebin来关闭和开启.

如果只是针对每个session可以通过alter session set recyclebin=off; 和 alter session set recyclebin=on;来关闭和开启

如果是针对所有session可以通过修改系统参数recyclebin来实现,不过这里要注意10g和11g有点不一样,它们的参数类型不同

10g可以用:alter system set recyclebin=off; 和alter system set recyclebin=on;来关闭和开启

11g可以用:alter system set recyclebin=off deferred; 和alter system set recyclebin=on deferred;来关闭和开启

补充:我们来简单的了解下Oracle参数类型

Oracle参数信息可以通过视图v$parameter查看,其中有一列issys_modifiable表示参数类型,有immediate,false,deferred三种,其中false表示是静态参数,只要当instance重新启动时才会生效,其他两种是动态参数,immediate表示修改参数后立即生效,deferred表示修改后要等下一个session才能生效,修改时已经连接的session是不会生效的.在用alter修改参数时如果是false或immediate一般可以不写,如果是deferred则要写

10g: select   ISSYS_MODIFIABLE  from v$parameter where name = 'recyclebin';的结果是immediate

11g:  select   ISSYS_MODIFIABLE  from v$parameter where name = 'recyclebin';的结果是deferred

2.查看回收站内容

select * from user_recyclebin;或select * from recyclebin;查看当前用户所drop的对象(里面有对象之前的名字和drop之后的名字)

select * from dba_recyclebin;查看所有用户drop掉的对象

其实当一个对象drop后,并且开启了回收站功能.它并没有真正被删除,实际上只是修改了一下名字,我们用select * from user_objects where type= 'TABLE'还能查到.只是它的名字有点怪,例如BIN$qAUuckGyd3TgQKjAFAFTAg==$0,它的命名规范是BIN$unique_id$version  其中BIN代表RecycleBin, unique_id是数据库中该对象的唯一标志,26个字符长度 ,version表示该对象的版本号.

3.还原回收站内容

假如有表test被drop,drop后的object_name是BIN$qAUuckGyd3TgQKjAFAFTAg==$0

可以用flashback table "BIN$qAUuckGyd3TgQKjAFAFTAg==$0"  to before drop ;(记得名字加双引号)

或者flashback table test  to before drop ;来还原.不过假如drop掉一个表test,再新建一个表test,然后再drop.那么flashback table test  to before drop只能还原最后被drop掉的表test.最先drop掉的表还原时会出错,因为表名不能重名.所以必须改名flashback table test  to before drop rename to test2

4.清空回收站

如果一次只清空一个表,可以用PURGE table  test 或PURGE table "BIN$qAUuckGyd3TgQKjAFAFTAg==$0";

如果一次清空所有的可以用PURGE recyclebin 或者PURGE dba_recyclebin

还原时是只能一次还原一个表,不能像清空一样一次还原所有表

5,注意事项

如果表是在system表空间下面则不能使用回收站的功能,不知道为啥有这限制啊

如果表空间快满时系统会自动的去清空回收站中一部分内容,先清空最早drop的对象

如果删除表时候不想放在回收站,彻底删除 使用 drop table table-name purge

【转】Oracle回收站(recyclebin)相关推荐

  1. 5.创建表,使用alter进行表信息的增删改,Oracle回收站,集合运算

     1  Oracle基于用户的管理方案 2 DDL语句可以管理数据库的对象有:视图   索引  序列  同义词   约束 3  创建一个表,有2个条件(1 有权限:2有表空间) Oracle给你提 ...

  2. Oracle回收站解决误删除表

    不小心使用drop table 语句把表删除了,数据也没有备份.就是数据备份了恢复的时候还是会丢失数据的,这时候不必太慌张,或许oracle的回收站(recyclebin)可以解决问题. [使用环境] ...

  3. Oracle回收站及flashback drop

    Oracle回收站及flashback drop 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你 ...

  4. Oracle回收站及flashback drop(上)

    Oracle回收站及flashback drop(上) 一.1  BLOG文档结构图 Oracle回收站及flashback drop - 3 - 1.1 BLOG文档结构图 - 3 - 1.2 前言 ...

  5. Oracle 回收站功能

    Oracle 回收站功能,彻底删除表 Oracle 10g 中出现表名:BIN$2cMp4FjwQ2Cw3Lj+BxLYTw==$0 最近发现Oracle中出现了这些奇怪的表名,上网查找后发现是ora ...

  6. Oracle回收站(RECYCLEBIN)详解

    RECYCLEBIN 1. What Is the Recycle Bin? 作为Oracle10g的新特性之一,Recycle Bin存储着被删除对象(这些对象都是BIN$开头).该对象可以是表及表 ...

  7. Oracle回收站机制

    目录 一.回收站概念 二.回收站功能 三.管理回收站 四.示例 1.先后删除的表名相同,然后闪回表的问题 2.Flashback Drop只能用于非系统表空间和本地管理的表空间 3.理解重命名的过程4 ...

  8. oracle 回收站那些事

    purge recyclebin 删除回收站的表 与恢复 2009-09-12 12:17:13| 分类: oracle|字号 订阅 1 drop table books;的指令会将表放到回收站里, ...

  9. 一起Oracle回收站过大引发的insert逻辑读过高故障

    某客户CPU暴增,且居高不下,通过gv$session发现一条insert造成大量的阻塞和等待,产生大量row chache lock.gc buffer busy acquire.read by o ...

最新文章

  1. MySQL优化篇:锁机制
  2. Spring Cloud 学习资料收集
  3. ArduinoYun教程之OpenWrt-Yun与CLI配置Arduino Yun
  4. webpack-dev-server详细教程(专治学不会)
  5. spring注解开发:容器中注册组件方式
  6. gns3中两个路由器分别连接主机然后分析ip数据转发报文arp协议_ARP协议在同网段及跨网段下的工作原理...
  7. ethercat 网卡不兼容_曾经的洋垃圾万兆网卡无人问津因为一张转接卡如今身价暴涨数十倍...
  8. 【属性对比】defer 与 async
  9. ajax请求携带tooken_Spring Boot+Vue 文件上传,如何携带令牌信息?
  10. C++11多线程创建的三种方法
  11. idea给main方法附带参数
  12. FPGA实现对数log2和10*log10
  13. 什么是HDMI网线延长器?浅析HDMI1.3网线延长器原理和应用
  14. 手机升级系统如何找回丢失的文件
  15. 使用C++,Python,Matlab进行facial 68 points landmarks
  16. Vue和SuperSlide做轮播效果
  17. iPad/iPhone内存管理四之viewDidUnload/dealloc详细解说
  18. 游戏策划入门(1)——什么样的创意是能够实现的?
  19. 计算机考研分数403,总分403分过来人分享成功考研经验_跨考网
  20. matlab算百人同生日概率

热门文章

  1. BZOJ.3058.四叶草魔杖(Kruskal 状压DP)
  2. UNP学习 高级I/O函数
  3. 天猫首页迷思之-jquery实现左侧广告牌图片轮播
  4. [Asp.net 5] DependencyInjection项目代码分析4-微软的实现(5)(IEnumerable补充)
  5. mono for android 使用Tab 控件
  6. MFC SDI 中 通过注册表保存当前窗体的 显示状态位置
  7. 巧用css实现强制不换行、自动换行、强制换行(转)
  8. 我就是古董店的那个店小二……专司收藏……
  9. QT消息/事件循环机制与多线程的关系
  10. C#操作注册表增删改查及关机能保存问题