关于ORACLE 10g中的RECYCLE BIN

原创 2008年09月30日 14:24:00
导读:




在ORACLE 10g中引入了RECYCLE BIN这个东东,好处就是当你删除了一张表或索引什么的后并不是完全删除,就像WINDOWS中的回收站一样,好处就是防止误删除,可以对误删除的表进行恢复,当然也可以清空RECYCLE BIN。

介绍下RECYCLEBIN里一些简单的东西

先建立一张表,名FOO

SQL>CREATE TALBE FOO(ID NUMBER(5),NAME VARCHAR2(5));

查看当前SCHEME下的所有表的名字

SQL>SELECT TALBE_NAMES FROM USER_TALBES;


TABLE_NAME


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

FOO

删除表FOO

SQL>DROP TALBE FOO;
SQL>SELECT TALBE_NAMES FROM USER_TALBES;

TABLE_NAME
------------------------------
BIN$Z2ptJ6PcRk6mJbM/0BmmAg==$0

--如果只想看RECYCLEBIN内的表名,可以用 SELECT OBJECT_NAME FROM USER_RECYCLEBIN;效果同上显示


现有一个名为'BIN$Z2ptJ6PcRk6mJbM/0BmmAg==$0'的表,这个表就是FOO表DROP掉以后在RECYCLE
BIN内产生的表,RECYCLE BIN会以特殊的方法来保证每张被删除的表在RECYCLE
BIN内的表名都不一样,即使在未被删除时表名是相同的。

如果想看被删除表的详细点的内容,可用
SQL>SHOW RECYCLEBIN;  --这句在SQL*PLUS内可用,但PL/SQL DEV中显示不出内容,不知道怎么会事
或着
SQL>SELECT ORIGINAL_NAME,OBJECT_NAME,TYPE,DROPTIME FROM USER_RECYCLEBIN;

ORIGINAL_NAME                   
OBJECT_NAME                   
TYPE                     
DROPTIME

-------------------------------- ------------------------------ ------------------------- -------------------
FOO                             
BIN$Z2ptJ6PcRk6mJbM/0BmmAg==$0
TABLE                    
2007-11-18:21:53:02


也可以用
SQL>DESC "BIN$Z2ptJ6PcRk6mJbM/0BmmAg==$0";  --来看被删除表的结构,注意要双引号!!这一句
          
PL/SQL DEV中也不能用,会显示没有这个表,在SQL*PLUS中可用。
 
现在对删除后表名的命名简单说一下:
当一个表被删除并移动到"回收站"中,它的名字要进行一些转换。这样的目的显而易见是为了避免同类对象名称的重复。(这一点和Windows操作系统的回收站不同,Windows中的回收站经过了特殊的处理,操作系统文件可以重名。)
转换后的名字格式如下:
BIN$unique_id$version 其中BIN代表RecycleBin
unique_id是数据库中该对象的唯一标志,26个字符长度
version表示该对象的版本号



删除recyclebin中的对象

我们用PURGE,语句PURGE TABLE "TABLE_NAME";
注:双引不要忘记,对RECYCLEBIN中对象操作都要有" "。

如上例,则:
SQL>purge table "BIN$6qAKR9ljQo+l+1gDCV8xCQ==$0";

SQL>PURGE RECYCLEBIN; --可以清空RECYCLEBIN;


恢复recyclebin中的对象

我们用FLASHBACK,中文名"闪回"
语句FLASHBACK TABLE [已删除TABLE名|"RECYCLEBIN中的名字"] TO BEFORE DROP;

如上例,则:
SQL>FLASHBACK TABLE FOO TO BEFORE DROP;
闪回完成。

但当你在RECYCLEBIN内有2张相同名字的表时候,只有通过
"RECYCLEBIN中的名字"来闪回指定的表,用上面方法只闪回第一个被删除的同名表。


本文转自

http://blog.chinaunix.net/u1/53616/showart_425448.html

关于ORACLE 10g中的RECYCLE BIN

在ORACLE 10g中引入了RECYCLE BIN这个东东,好处就是当你删除了一张表或索引什么的后并不是完全删除,就像WINDOWS中的回收站一样,好处就是防止误删除,可以对误删除的表进行恢复,当然...
  • a9529lty
  • a9529lty
  • 2011年11月02日 09:42
  • 967

关于ORACLE 11g中的RECYCLE BIN

在ORACLE 10g中引入了RECYCLE BIN这个东东,好处就是当你删除了一张表或索引什么的后并不是完全删除,就像WINDOWS中的回收站一样,好处就是防止误删除,可以对误删除的表进行恢复,当然...
  • SUNZHIJUN100
  • SUNZHIJUN100
  • 2015年04月22日 07:43
  • 564

ORA-38301:can not perform DDL/DML over objects in Recycle Bin

小白今天删数据库表空间WUIDXTABLESPACE的时候,报了如下的错:SQL> drop tablespace WUIDXTABLESPACE including contents and da...
  • lansesl2008
  • lansesl2008
  • 2013年11月14日 14:54
  • 2572

清除recycle bin中的对象

当Recycle Bin处于启用状态时,如果用户对表执行DROP操作,则被删除的表及其关联的对象就会被罢入Recycle Bin中。 对于这种方式删除的表,可以快速地通过Flashback Drop...
  • u013169075
  • u013169075
  • 2016年12月09日 23:00
  • 740

ORACLE回收站(Recycle Bin)

在Oracle 10g数据库中,引入了一个回收站(Recycle Bin)的数据库对象。 回收站,顾名思义,它就是存储被删掉的东西。从原理上来说就是一个数据字典表,放置用户删除(drop)掉的数据库...
  • kidlove123
  • kidlove123
  • 2014年06月28日 15:46
  • 223

Oracle回收站(Recycle Bin)

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

Oracle 10g配置dbstart实现开机自启动

作者:iamlaosong 按照网上搜寻到的步骤做了一遍,启动成功,记录如下: 1. 修改dbstart脚本: $ vi $ORACLE_HOME/bin/dbstart #ORACLE_HOME_L...
  • iamlaosong
  • iamlaosong
  • 2011年08月30日 16:21
  • 3754

有关Oracle问题的集锦处理

一、Oracle安装完成后发现没有监听服务,处理方法:  1、命令行输入netca,回车运行oracle net configuration assistant,选择监听程序配置->下一步->接下来的...
  • limingzhong198
  • limingzhong198
  • 2012年04月27日 14:20
  • 1160

oracle清空回收站命令以及执行PURGE命令后还有BIN$数据问题

oracle清空回收站命令:PURGE recyclebin; oracle每个用户都有自己的回收站,并不是dba用户登录后执行PURGE命令就可以清空所有用户的回收站数据,要每个用户登录执行PUR...
  • xinjirufen1
  • xinjirufen1
  • 2015年09月23日 23:11
  • 220

Using Oracle's recycle bin

S
  • u014461454
  • u014461454
  • 2014年03月31日 17:59
  • 394
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于ORACLE 10g中的RECYCLE BIN
举报原因:
原因补充:

(最多只允许输入30个字)