知识大全 Oracle10G中的回收站的详细说明如何利用问题

Posted 名字

篇首语:水至清则无鱼,人至察则无徒。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle10G中的回收站的详细说明如何利用问题相关的知识,希望对你有一定的参考价值。

Oracle10G中的回收站的详细说明如何利用问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在Oracle G中 引入了一个回收站(Recycle Bin)的概念     回收站 从原理上来说就是一个数据字典表 放置用户Drop掉的数据库对象信息 用户进行Drop操作的对象并没有被数据库删除 仍然会占用空间 除非是由于用户手工进行Purge或者因为存储空间不够而被数据库清掉 数据库有了这样的功能 能够减少很多不必要的麻烦 常常看到开发人员误把表删除 急急忙忙找DBA来想办法的情况 相信 随着 G的大范围应用 这种情形应该比较少见了     DBA管理上的相关信息可以从USER_recyclebin(DBA_recyclebin)中获取 从现在的Beta版本来看 手册上所说的通过SQL*Plus的show recycle bin 命令查看还不可用     为了便于测试 我们创建了一个表空间Foo 大小为 M 创建了一个用户Foo 默认的表空间为Foo          SQL> CONNECT foo/foo  已连接     SQL> SELECT table_name FROM user_tables;    未选定行    SQL> DESC user_recyclebin  名称 是否为空? 类型               user_recyclebin大多是自解释的 涵义比较容易理解     SQL> SELECT object_name FROM user_recyclebin;    未选定行    SQL> CREATE TABLE foo AS SELECT * FROM DUAL;    表已创建     SQL> SELECT table_name FROM user_tables;    TABLE_NAME     FOO    SQL> DROP TABLE foo;    表已丢弃     SQL> SELECT table_name FROM user_tables;    TABLE_NAME     RB$$ $TABLE$     SQL>    SQL> SELECT object_name original_name FROM user_recyclebin;    OBJECT_NAME ORIGINAL_NAME     RB$$ $TABLE$ FOO    SQL> DESC RB$$ $TABLE$   名称 是否为空? 类型       DUMMY VARCHAR ( )      当一个表被删除并移动到 回收站 中 它的名字要进行一些转换 这样的目的显而易见是为了避免同类对象名称的重复 (Windows上 经过了特殊的处理 回收站里的操作系统文件可以重名 )    转换后的名字格式如下:    RB$$objn$object_type$version    其中的RB 代表Recycle Bin objn为表的目录对象号 object_type表示对象类型 version表示版本号   由数据库指定 foo表被删除后 在数据库回收站里变成了RB$$ $TABLE$ 从名字可以看出 这个对象的类型是Table Version是     SQL> CREATE TABLE foo AS SELECT * FROM DUAL;    表已创建     SQL> SELECT table_name FROM user_tables;    TABLE_NAME     FOO  RB$$ $TABLE$     SQL> DROP TABLE foo;    表已丢弃     SQL> SELECT object_name original_name FROM user_recyclebin;    OBJECT_NAME ORIGINAL_NAME     RB$$ $TABLE$ FOO  RB$$ $TABLE$ FOO    SQL>    能看出来 虽然源表名字相同 在回收站里的对象名字是不同的     已经放到回收站里的表是不能用drop 命令删除的     SQL> drop table RB$$ $TABLE$ ;  drop table RB$$ $TABLE$   *  ERROR 位于第 行:  ORA : can not perform DDL/DML over objects in Recycle Bin    如果要清掉改对象 使用purge命令     SQL> PURGE table RB$$ $TABLE$ ;    Table purged     SQL> SELECT object_name original_name FROM user_recyclebin;    OBJECT_NAME ORIGINAL_NAME     RB$$ $TABLE$ FOO    对象已经清掉     恢复表 使用Undrop命令     SQL> undrop table RB$$ $TABLE$ ;    Table undropped     SQL> SELECT object_name original_name FROM user_recyclebin;    未选定行    SQL> SELECT table_name FROM user_tables;    TABLE_NAME     RB$$ $TABLE$     SQL> desc foo;  ERROR:  ORA : 对象 foo 不存在    恢复后的表的名字为RB$$ $TABLE$ 如果指定名字 使用 as 表名字   如: undrop table RB$$ $TABLE$ as Foo这样的语句 更为详细的语法 请查阅 G的SQL参考手册     SQL>  SQL> desc RB$$ $TABLE$ ;    名称 是否为空? 类型       DUMMY VARCHAR ( )    SQL> DROP TABLE RB$$ $TABLE$ ;    表已丢弃     SQL> SELECT table_name FROM user_tables;    TABLE_NAME     RB$$ $TABLE$     SQL>    如果我们这个时候再删除RB$$ $TABLE$ 可观察到回收站里该表版本号的变化     如果空间一直够用 回收站里的对象会一直保持(如果你不手工进行Purge的话) 如果空间不足 回收站里的对象会被清空 看我们下面这个例子     让我们创建一个大一点的表     SQL> select object_name from user_recyclebin;    OBJECT_NAME      RB$$ $TABLE$       SQL> CREATE TABLE foo_bigger AS SELECT * FROM all_objects WHERE ROWNUM< ;    表已创建     SQL> SELECT table_name FROM user_tables;    TABLE_NAME     FOO_BIGGER    SQL> SELECT object_name original_name FROM user_recyclebin;    未选定行    SQL>    哦 果真 回收站里的内容已经被删掉了 还要注意 在空间不足的时候Drop表 也是不能放到回收站里的 cha138/Article/program/Oracle/201311/17700

相关参考

知识大全 解决oracle10g安装后的中文显示乱码

在安装完oracleg后由于jre默认使用的字体问题使得emdbcanetcanetmgr显示中文时出现□□字样的乱码下面来说明这个问题的解决办法  改变$ORACLE_HOME/jdk目录下的jre

知识大全 利用Oracle10g的MODELSQL进行行间计算(一)

利用Oracle10g的MODELSQL进行行间计算(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 利用Oracle10g的MODELSQL进行行间计算(二)

利用Oracle10g的MODELSQL进行行间计算(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 详细说明 MIDP 中的属性问题

详细说明MIDP中的属性问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文目的是说明MID

知识大全 Oracle10g中的hints调整机制详解

Oracle10g中的hints调整机制详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以下

知识大全 如何利用oracle10g的列值掩码技术隐藏

  Oracle的虚拟私有数据库特性(也称作细颗粒度存取控制)对诸如SELECT等数据管理语言DML语句提供行级安全性检查PL/SQL策略函数和某个数据表相关联这个函数可以检查当前用户的上下文背景并添

知识大全 在Oracle10g Release 2中的Autotrace

在Oracle10gRelease2中的Autotrace  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 Oracle10g之ORA-32004问题

Oracle10g之ORA-32004问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  今天在

知识大全 Solaris安装Oracle10g之libCstd.so.1问题解决

Solaris安装Oracle10g之libCstd.so.1问题解决  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶

知识大全 oracle10g中unique与index的问题

  createtabletest  (  xinteger  yinteger  zinteger  );  altertabletestaddconstraintprimarykey(x);产生一