☆回收站概念
oracle从10g开始,引入回收站(Recycle Bin)概念。回收站的全称叫:Tablespace Recycle Bin。回收站是一个逻辑区域,oracle并没有为它分配物理空间。当表被Drop后,如果回收站中空间够用的话,表并没有被立即删除,oracle会给表加上一个被删除的标记。只有当回收站空间不足,或者手动清理回收站,这些被删除的表才会被彻底删除。所以当我们误删除以后,可以用闪回技术还原被删除的表。

☆开启、关闭回收站
可以使用命令查看数据库是否开启了回收站,当下列中的value值为on时表明开启,off表示关闭

SYS@LGR> show parameter recyclebin;NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
recyclebin                           string      onSYS@LGR> select name,value from v$parameter where name='recyclebin';NAME                 VALUE
-------------------- ----------
recyclebin           on

☆可以通过设置初始化参数recyclebin启用或者禁用回收站功能。

##会话级别关闭回收站
SYS@LGR> ALTER SESSION SET RECYCLEBIN=OFF;Session altered.##系统级别关闭回收站
SQL> alter system set recyclebin = off scope = spfile;System altered.

☆闪回删除
语法:
FLASHBACK TABLE [schema.] {BEFORE DROP [RENAME TO
table_new_name]}
回收站中表名的含义:(格式:BINglobalUIDglobalUIDversion )
- BIN:表示 RECYCLEBIN
- globalUID:是一个全局唯一的,24 个字节,该标识与原对象名没有 任何关系
- version:指数据库分配的版本号

1) 表准备环境(创建测试表 t ,索引 idx_t ,触发器 trg_t)

SYS@LGR> conn scott/tiger;
Connected.
SCOTT@LGR> create table t(x number(2),d date);Table created.SCOTT@LGR> create unique index idx_t on t(x);Index created.SCOTT@LGR> create or replace trigger trg_t2  before insert on t3  for each row4  begin5  if :new.d is null then6  :new.d :=sysdate;7  end if;8  end;9  /Trigger created

2)删除表t

SCOTT@LGR> drop table t;Table dropped.SCOTT@LGR> select tname,tabtype from tab;TNAME                          TABTYPE
------------------------------ -------
BIN$Q8N67S/xGAngUwEAAH9JoA==$0 TABLE
BIN$QyLhuF3CKuHgUwEAAH/Q8Q==$0 TABLE
BONUS                          TABLE
DEPT                           TABLE
EMP                            TABLE
EMP1                           TABLE
EMP2                           TABLE
SALGRADE                       TABLE
T1                             TABLE
TMPD_DEPT                      TABLE
TMPP_DEPT                      TABLE11 rows selected.SCOTT@LGR> show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
DEPT1            BIN$QyLhuF3CKuHgUwEAAH/Q8Q==$0 TABLE        2016-12-08:17:01:23
T                BIN$Q8N67S/xGAngUwEAAH9JoA==$0 TABLE        2016-12-16:16:37:28SCOTT@LGR> SELECT  original_name,  object_name,  type,droptime  FROM2  user_recyclebin;ORIGINAL_NAME  OBJECT_NAME                    TYPE     DROPTIME
-------------- ------------------------------ -------- -------------------
IDX_T          BIN$Q8N67S/vGAngUwEAAH9JoA==$0 INDEX    2016-12-16:16:37:28
DEPT1          BIN$QyLhuF3CKuHgUwEAAH/Q8Q==$0 TABLE    2016-12-08:17:01:23
TRG_T          BIN$Q8N67S/wGAngUwEAAH9JoA==$0 TRIGGER  2016-12-16:16:37:28
T              BIN$Q8N67S/xGAngUwEAAH9JoA==$0 TABLE    2016-12-16:16:37:28

3)闪回表

SCOTT@LGR> flashback table t to before drop;Flashback complete.SCOTT@LGR> SELECT  original_name,  object_name,  type,droptime  FROM user_recyclebin;ORIGINAL_NAME                    OBJECT_NAME                    TYPE             DROPTIME
-------------------------------- ------------------------------ ------------------------- -------------------
DEPT1                            BIN$QyLhuF3CKuHgUwEAAH/Q8Q==$0 TABLE            2016-12-08:17:01:23

4)查看闪回的表相关对象的状态
通过以下查询,发现以下两个问题:
1 :触发器的状态为失效的
2:对象名称,除表名以外,其他的都已不是原来的名称

SCOTT@LGR> SELECT object_name,object_type,status FROM user_objects;OBJECT_NAME                      OBJECT_TYPE         STATUS
-------------------------------- ------------------- -------
DEPT                             TABLE               VALID
PK_DEPT                          INDEX               VALID
BONUS                            TABLE               VALID
SALGRADE                         TABLE               VALID
EMP1                             TABLE               VALID
EMP2                             TABLE               VALID
T1                               TABLE               VALID
TMPD_DEPT                        TABLE               VALID
EMP                              TABLE               VALID
TMPP_DEPT                        TABLE               VALID
T                                TABLE               VALID
BIN$Q8N67S/wGAngUwEAAH9JoA==$0   TRIGGER           INVALID
BIN$Q8N67S/vGAngUwEAAH9JoA==$0   INDEX               VALID

5) 重新编译触发器,并 重命名触发器


SCOTT@LGR> alter trigger"BIN$Q8N67S/wGAngUwEAAH9JoA==$0" compile;Trigger altered.SCOTT@LGR> alter trigger"BIN$Q8N67S/wGAngUwEAAH9JoA==$0" rename to trg_t;Trigger altered.SCOTT@LGR> SELECT object_name,object_type,status FROM user_objects;OBJECT_NAME                    OBJECT_TYPE         STATUS
------------------------------ ------------------- -------
DEPT                           TABLE               VALID
PK_DEPT                        INDEX               VALID
BONUS                          TABLE               VALID
SALGRADE                       TABLE               VALID
EMP1                           TABLE               VALID
EMP2                           TABLE               VALID
T1                             TABLE               VALID
TMPD_DEPT                      TABLE               VALID
EMP                            TABLE               VALID
TMPP_DEPT                      TABLE               VALID
T                              TABLE               VALID
BIN$Q8N67S/vGAngUwEAAH9JoA==$0 INDEX               VALID
TRG_T                          TRIGGER             VALID

【Oracle】回收站相关推荐

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

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

  2. 【转】Oracle回收站(recyclebin)

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

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

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

  4. Oracle回收站及flashback drop

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

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

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

  6. Oracle 回收站功能

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

  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 ...

  10. oracle查回收站大小,ORACLE 回收站当前状态查询整理

    回收站(Recycle Bin)从原理上来说就是一个数据字典表,放置用户删除(drop)掉的数据库对象信息.用户进行删除操作的对象并没有被数据库删除,仍然会占用空间.除非是由于用户手工进行Purge或 ...

最新文章

  1. java canonicalize_java.io.IOException:java.io.WinNTFileSystem.canonicalize0处的无效参数
  2. Apache ActiveMQ 5.9发布
  3. 微信支付api的服务器上,服务器微信支付接口笔记(与app端对接)
  4. java学习之(内部类)
  5. 收件箱java项目源码,Java物资管理系统项目源码(含数据库).zip
  6. 根据中文修改英文翻译,重新生成英文翻译文件(保证原有文件的顺序不变)
  7. python模拟浏览器下载文件_python第一个脚本,模拟浏览器下载文件 | 学步园
  8. maven更换阿里云源
  9. ios:uibutton 中title 和image 共存那点事
  10. R语言之dpqr概率函数
  11. 共模电感 | 关键参数的计算步骤
  12. 铁路订票系统的简单设计
  13. Java实现 pdf 转 图片
  14. 支付宝营销策略效果分析 A/Btest
  15. 关于专利申请中发明内容和具体实施方法有什么本质区别?
  16. 《C Primer Plus》读后感
  17. uni-app修改页面背景色:
  18. 微信搜索引擎中索引的分布式演进
  19. 神经网络Loss损失函数总结
  20. Acala TC4 糖果节历程总结

热门文章

  1. factorybean 代理类不能按照类型注入_彻底搞懂依赖注入(一)Bean实例创建过程
  2. python 打印皮卡丘_来简单聊聊python的装饰器呀~
  3. oracle 11g Flashback Data Archive(闪回数据归档)
  4. java知识点3(null)
  5. CSS特性:white-space: nowrap;text-overflow: ellipsis;text-decoration: none
  6. JAVA容器-自问自答学HashMap
  7. HDU 5281 Senior#39;s Gun 杀怪
  8. Mixtile Garage产品简介
  9. JS创建表单提交备份
  10. 每天CookBook之Python-005