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:
标题搜索
日历
|
|||||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
| 1 | 2 | 3 | |||||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 | |||
| 11 | 12 | 13 | 14 | 15 | 16 | 17 | |||
| 18 | 19 | 20 | 21 | 22 | 23 | 24 | |||
| 25 | 26 | 27 | 28 | 29 | 30 | 31 | |||
我的存档
数据统计
- 访问量: 3575
- 日志数: 68
- 建立时间: 2007-12-19
- 更新时间: 2009-01-09

