渐行渐远这个网名,用了好多年了, 非常喜欢. 童年远了. 梦想远了.

oracle 10G 的回闪

上一篇 / 下一篇  2007-12-20 14:46:05 / 个人分类:备份与恢复

由于以前项目都是用的oracle9i,一直没有机会接触oracle 10G.加入安徽项目组后有机会使用oracle10G.

在最近一段时间的使用过程中,发现用select * from tab;查询的时候经常会查到一些奇怪的表名.如:BIN$QRApl31xSnmjeYuGewxAhQ==$0.以前一直没有在意,今天早上突然起了好奇心,这是怎么回事呢?上网一查,原来这是oracle 10G的新特性--回闪技术.

原来oracle9i版本中,也会回闪,但功能有限.在10G中,oracle引入了类似于操作系统回收站的概念.这是一个逻辑容器,当使用drop table tablename删除一个表后,表就被放置在这个容器中.但是,表对像并没有从表空间中删除,仍然占居着原来表空间.只是在回收站里列出来被删除的逻辑结构.

下面做一个测试:

在我的数据库中一个有表:AA

我用drop table aa删掉它.这时候再用select * from tab来查看,发现原来的AA没有了.但是多出来一个表名为BIN$QRApl31xSnmjeYuGewxAhQ==$0的对像.

使用show show recyclebin来查看:

SQL>  show recyclebin;ITPUB个人空间&C'Z2x#J@*| N
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME                                                                                                                                                                                                                                                                                                                                                                                                                                             
w3s_'ff)],e0---------------- ------------------------------ ------------ -------------------                                                                                                                                                                                                                                                                                                                                                                                                                                   
g2Mx@&z VZqW0}0AA               BIN$QRApl31xSnmjeYuGewxAhQ==$0 TABLE        2007-12-20:14:45:21

若想恢复删除的表,则可以用下面的命令:

SQL> flashback table aa to before drop;

闪回完成。

这时候再用select * from tab来查看.表AA又回来了.

***********************************************************************************

删掉的表还能闪回来,那如果想彻底删除不用回闪,那应该如何做呢?很简单只要用下面命令就可以了:

drop table aa purge;

那如果想清空回收站呢?命令如下:

purge recyclebin;

即然表进入回收站后并不释放它占用的表空间,仅仅在表回收站中增加删除了逻辑.那会不会出现表空间让回收站中的表给占满了的情况呢?答案是不会的,如果表空间被占满后,oracle会根据先进先出的原则,将最先进入回收站的表占据的表空间释放掉.所以在使用过程中即使不清空回收站也感觉不到任何不便.


TAG:

引用 删除 xiaoduan9678   /   2008-06-15 22:10:28
没有用过10G呢不过9i的drop table是没有办法闪回的
xpureland的个人空间 引用 删除 xpureland   /   2007-12-20 15:35:17
赶紧帮忙把bduser表中的乱码去掉吧。。
xpureland的个人空间 引用 删除 xpureland   /   2007-12-20 15:32:47
5
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-10-13  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 2230
  • 日志数: 25
  • 图片数: 2
  • 文件数: 2
  • 建立时间: 2007-12-12
  • 更新时间: 2008-08-23

RSS订阅

Open Toolbar