10g recyclebin与用户表空间限额

上一篇 / 下一篇  2007-12-20 21:37:04 / 个人分类:oracle

关于recyclebin

(1) recyclebin是一个逻辑结构.是由数据字典表来实现的.
(2) recyclebin中数据对象的删除是遵循先进先出方式.
(3) 表及其依赖对象进入recyclebin后,它们占用的表空间在dba_free_space中显示为可用空间。
(4) 表及其依赖对象进入recyclebin后,依然会占用用户的表空间限额。当用户限额不足时oracle自动删除recyclebin中的对象。

测试过程:
SQL> create tablespace testtbs datafile '/u01/app/oracle/oradata/oraebao/testtbs01.dbf' size 500M autoextend off
  2  extent management local uniform. size 1M segment space management auto;

Tablespace created.

SQL> create user yujun identified by yujun default tablespace testtbs temporary tablespace temp quota 200M on testtbs;

User created.
SQL> grant dba to yujun;

Grant succeeded.

SQL> conn yujun/yujun;
Connected.
SQL>
SQL> create table tab1 as select * from dba_objects;

Table created.

SQL> insert into tab1 select * from tab1;

53545 rows created.

SQL> /

107090 rows created.

SQL> /

214180 rows created.

SQL> /

428360 rows created.

SQL> commit;

Commit complete.

SQL> select tablespace_name,sum(bytes/1024/1204) as free_M from dba_free_space where tablespace_name='TESTTBS' group by tablespace_name;

TABLESPACE_NAME                    FREE_M
------------------------------ ----------
TESTTBS                        345.302326

SQL> select TABLESPACE_NAME,username,bytes,max_bytes,dropped from dba_ts_quotas where tablespace_name='TESTTBS' and username='YUJUN';

TABLESPACE_NAME                USERNAME                  BYTES  MAX_BYTES DROPPE
------------------------------ -------------------- ---------- ---------- ------
TESTTBS                        YUJUN                  97517568  209715200 NO

SQL> drop table tab1;

Table dropped.

SQL> select tablespace_name,sum(bytes/1024/1204) as free_M from dba_free_space where tablespace_name='TESTTBS' group by tablespace_name;

TABLESPACE_NAME                    FREE_M
------------------------------ ----------
TESTTBS                        424.398671

表删除以后,它占用的空间在dba_free_space中显示为可用空间。

SQL> select TABLESPACE_NAME,username,bytes,max_bytes,dropped from dba_ts_quotas where tablespace_name='TESTTBS' and username='YUJUN';

TABLESPACE_NAME                USERNAME                  BYTES  MAX_BYTES DROPPE
------------------------------ -------------------- ---------- ---------- ------
TESTTBS                        YUJUN                  97517568  209715200 NO

用户表空间限额未变化。

SQL> show recyclebin
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
TAB1             BIN$QbOz3lpVBSLgQAB/AQAYhA==$0 TABLE        2007-12-20:16:48:06

SQL> purge table "BIN$QbOz3lpVBSLgQAB/AQAYhA==$0";

Table purged.

SQL> select tablespace_name,sum(bytes/1024/1204) as free_M from dba_free_space where tablespace_name='TESTTBS' group by tablespace_name;

TABLESPACE_NAME                    FREE_M
------------------------------ ----------
TESTTBS                        424.398671

SQL> select TABLESPACE_NAME,username,bytes,max_bytes,dropped from dba_ts_quotas where tablespace_name='TESTTBS' and username='YUJUN';

TABLESPACE_NAME                USERNAME                  BYTES  MAX_BYTES DROPPE
------------------------------ -------------------- ---------- ---------- ------
TESTTBS                        YUJUN                         0  209715200 NO
将recyclebin中的表purge以后,释放了用户表空间限额。

下面看一下recyclebin对用户表空间限额的影响:
SQL> conn /as sysdba
Connected.
SQL> revoke UNLIMITED TABLESPACE from yujun;

Revoke succeeded.

SQL> create table tab1 as select * from dba_objects;

Table created.

SQL> insert into tab1 select * from tab1;

53544 rows created.

SQL> /

107088 rows created.

SQL> /

214176 rows created.

SQL> /

428352 rows created.

SQL> commit;

Commit complete.

SQL> drop table tab1;    

Table dropped.

SQL> show recyclebin
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
TAB1             BIN$QbhhtOKE7cngQAB/AQAaNw==$0 TABLE        2007-12-20:21:03:00

SQL> select segment_name,segment_type,bytes from dba_segments where segment_name='BIN$QbhhtOKE7cngQAB/AQAaNw==$0';

SEGMENT_NAME                             SEGMENT_TYPE              BYTES
---------------------------------------- -------------------- ----------
BIN$QbhhtOKE7cngQAB/AQAaNw==$0           TABLE                  97517568

SQL> select TABLESPACE_NAME,username,bytes,max_bytes,dropped from dba_ts_quotas where tablespace_name='TESTTBS' and username='YUJUN';

TABLESPACE_NAME      USERNAME                            BYTES  MAX_BYTES DROPPE
-------------------- ------------------------------ ---------- ---------- ------
TESTTBS              YUJUN                            97517568  209715200 NO

SQL> create table tab2 as select * from "BIN$QbhhtOKE7cngQAB/AQAaNw==$0";

Table created.

SQL> select TABLESPACE_NAME,username,bytes,max_bytes,dropped from dba_ts_quotas where tablespace_name='TESTTBS' and username='YUJUN';

TABLESPACE_NAME      USERNAME                            BYTES  MAX_BYTES DROPPE
-------------------- ------------------------------ ---------- ---------- ------
TESTTBS              YUJUN                           196083712  209715200 NO

SQL> insert into tab2 select * from tab2 where rownum < 200001;

200000 rows created.

SQL> commit;

Commit complete.

SQL> select TABLESPACE_NAME,username,bytes,max_bytes,dropped from dba_ts_quotas where tablespace_name='TESTTBS' and username='YUJUN';

TABLESPACE_NAME      USERNAME                            BYTES  MAX_BYTES DROPPE
-------------------- ------------------------------ ---------- ---------- ------
TESTTBS              YUJUN                           120586240  209715200 NO

SQL> show recyclebin
SQL>

可以看到,当用户表空间限额不足时,oracle自动删除了recyclebin中的对象。


TAG:

 

评分:0

我来说两句

显示全部

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

日历

« 2009-01-09  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 3575
  • 日志数: 68
  • 建立时间: 2007-12-19
  • 更新时间: 2009-01-09

RSS订阅

Open Toolbar