当表空间不足时Oracle管理Recyclebin

http://tech.ddvip.com   2008年08月26日    社区交流

内容摘要:本文介绍了当表空间不足时Oracle是如何管理Recyclebin。当recyclebin中有多个被删除的同时,并在表空间不足以放下要创建的新对象时,Oracle会FIFO的方式从回收站中自动彻底删除.

  我们知道,在Oracle 10g中,drop table如果没有加 purge选项.实际数据并没有删除,因而没有释放表空间.

  那么当被删除的对象占用了所有空间时,会发生什么? 相信看完以下测试,一切皆会明白 

YXYUP@dbatest>selecttablespace_name,sum(bytes)/1024/1024fromdba_data_fileswheretablespace_name='TBS'groupbytablespace_name;
  TABLESPACE_NAMESUM(BYTES)/1024/1024
  ----------------------------------------
  TBS17
  Elapsed:00:00:00.02
  YXYUP@dbatest>selectsegment_name,bytes/1024/1024,tablespace_namefromuser_segments;
  SEGMENT_NAMEBYTES/1024/1024TABLESPACE_NAME
  -----------------------------------------------------------------
  TEST_BAK6TBS
  TEST016TBS
  Elapsed:00:00:00.07
  YXYUP@dbatest>createtabletest02tablespacetbsasselect*fromdba_objects;
  createtabletest02tablespacetbsasselect*fromdba_objects
  *
  ERRORatline1:
  ORA-01652:unabletoextendtempsegmentby128intablespaceTBS
  Elapsed:00:00:00.73
  YXYUP@dbatest>droptabletest01;
  Tabledropped.
  Elapsed:00:00:00.04
  YXYUP@dbatest>showrecyclebin;
  ORIGINALNAMERECYCLEBINNAMEOBJECTTYPEDROPTIME
  -----------------------------------------------------------------------------
  TEST01BIN$VPH4ibnKVd/gQAB/AQA0Nw==$0TABLE2008-08-21:14:56:55
  YXYUP@dbatest>
  YXYUP@dbatest>select*fromtab;
  TNAMETABTYPECLUSTERID
  -----------------------------------------------
  BIN$VPH4ibnKVd/gQAB/AQA0Nw==$0TABLE
  TEST_BAKTABLE
  Elapsed:00:00:00.01
  YXYUP@dbatest>createtabletest02tablespacetbsasselect*fromdba_objects;
  Tablecreated.
  Elapsed:00:00:00.84
  YXYUP@dbatest>showrecyclebin;
  YXYUP@dbatest>select*fromtab;
  TNAMETABTYPECLUSTERID
  -----------------------------------------------
  TEST_BAKTABLE
  TEST02TABLE
  Elapsed:00:00:00.01

作者:yxyup    责编:豆豆技术应用

正在加载评论...