表空间不足时Oracle管理Recyclebin的方法
我们知道,在Oracle 10g中,drop table如果没有加 purge选项.实际数据并没有删除,因而没有释放表空间.
那么当被删除的对象占用了所有空间时,会发生什么? 相信看完以下测试,一切皆会明白
YXYUP@dbatest>selecttablespace_name,sum(bytes)/1024/1024 from dba_data_files where tablespace_name=’TBS’ group by tablespace_name;
TABLESPACE_NAME SUM(BYTES)/1024/1024
TBS 17
Elapsed: 00:00:00.02
YXYUP@dbatest>selectsegment_name,bytes/1024/1024,tablespace_name from user_segments;
SEGMENT_NAME BYTES/1024/1024 TABLESPACE_NAME
TEST_BAK 6 TBS
TEST01 6 TBS
Elapsed: 00:00:00.07
YXYUP@dbatest>createtable test02 tablespace tbs as select * from dba_objects;
create table test02 tablespace tbs as select * from dba_objects
*
ERROR at line 1:
ORA-01652: unable to extend temp segment by 128 in tablespace TBS
Elapsed: 00:00:00.73
YXYUP@dbatest>droptable test01;
Table dropped.
Elapsed: 00:00:00.04
YXYUP@dbatest>showrecyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
TEST01 BIN$VPH4ibnKVd/gQAB/AQA0Nw==$0 TABLE 2008-08-21:14:56:55
YXYUP@dbatest>
YXYUP@dbatest>select* from tab;
TNAME TABTYPE CLUSTERID
BIN$VPH4ibnKVd/gQAB/AQA0Nw==$0 TABLE
TEST_BAK TABLE
Elapsed: 00:00:00.01
YXYUP@dbatest>createtable test02 tablespace tbs as select * from dba_objects;
Table created.
Elapsed: 00:00:00.84
YXYUP@dbatest>showrecyclebin;
YXYUP@dbatest>select* from tab;
TNAME TABTYPE CLUSTERID
TEST_BAK TABLE
TEST02 TABLE
Elapsed: 00:00:00.01
上面测试可以看出,当表空间空闲空间不足时,Oracle就会将recyclebin中的表给彻底删除,然后腾出空间来放要创建的新对象.
那么,如果recyclebin中有多个被drop的对象时,Oracle会怎么清理呢,是全部清除,还是怎样? 通过下面的测试我们行到答案.
YXYUP@dbatest>showrecyclebin;
YXYUP@dbatest>select* from tab;
TNAME TABTYPE CLUSTERID
TEST_BAK TABLE
TEST02 TABLE
Elapsed: 00:00:00.01
YXYUP@dbatest>droptable test02;
Table dropped.
Elapsed: 00:00:00.04
YXYUP@dbatest>droptable test_bak;
Table dropped.
Elapsed: 00:00:00.02
YXYUP@dbatest>select* from tab;
TNAME TABTYPE CLUSTERID
BIN$VPH4ibnLVd/gQAB/AQA0Nw==$0 TABLE
BIN$VPH4ibnMVd/gQAB/AQA0Nw==$0 TABLE
Elapsed: 00:00:00.01
YXYUP@dbatest>showrecyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
TEST02 BIN$VPH4ibnLVd/gQAB/AQA0Nw==$0 TABLE 2008-08-21:15:14:43
TEST_BAK BIN$VPH4ibnMVd/gQAB/AQA0Nw==$0 TABLE 2008-08-21:15:14:51
YXYUP@dbatest>createtable test01 tablespace tbs as select * from dba_objects;
Table created.
Elapsed: 00:00:00.79
YXYUP@dbatest>select* from tab;
TNAME TABTYPE CLUSTERID
BIN$VPH4ibnMVd/gQAB/AQA0Nw==$0 TABLE
TEST01 TABLE
Elapsed: 00:00:00.01
YXYUP@dbatest>Flashbacktable TEST02 to before drop ;
flashback table TEST02 to before drop
*
ERROR at line 1:
ORA-38305: object not in RECYCLE BIN
Elapsed: 00:00:00.00
YXYUP@dbatest>flashbacktable TEST_BAK to before drop ;
Flashback complete.
Elapsed: 00:00:00.02
YXYUP@dbatest>select* from tab;
TNAME TABTYPE CLUSTERID
TEST_BAK TABLE
TEST01 TABLE
Elapsed: 00:00:00.01
通过上面测试可以看出.
当recyclebin中有多个被删除的'同时,并在表空间不足以放下要创建的新对象时,Oracle会FIFO的方式从回收站中自动彻底删除.
-
Oracle认证如何准备考试
Oracle认证考试由Oracle公司授权国际考试认证中心对考生进行资格认证的。考生按考试标准要求参加几门课程的考试(一般为三至五门),在通过全部考试后,将获得OCP的专家认证。下面是小编整理的关于Oracle认证如何准备考试,希望大家认真阅读!1、oracle公司推荐的官方...
-
Oracle认证:Freebufferwaits等待事件总结
Freebufferwaits1.简述:当数据库要在buffercache中寻找空闲空间来放置数据,但发现空间不足时,就会产生这个等待;2.详述:a)在用户请求块的DBA上应用HASH函数,获得适当的hashbucket;b)检索bucket对应的chain,确认块头是否存在,若存在就使用;c)若不存在,用户进程在LRU链...
-
Oracle认证考试信息
OCP(OracleCertifiedProfessional)是由Oracle公司颁布并实施的一项权威的专业技术标准,它是专为认证那些能够满足对ORACLE核心产品的`服务与支持,并具有娴熟的操作能力与广泛理论知识的专业人士。一经认证,在行业内的专业资格将被确认,从而使个人或企业更具竞争实...
-
Oracle OCP认证要通过哪些考试
OracleOCPDBA认证是所有Oracle认证中最普及的一种认证,这一认证过程是专为那些想要从事Oracle管理的专业数据库管理人员设计的,适用于Oracle9IDBAs的OCP认证通过改进,删除了备份和恢复以及网络考试,而且,PL/SQL、SQL也被分成了不同的考试,OracleOCP认证要通过下面的...
相关文章
- 如何理解Javascript的caller,callee,call,apply区别
- 英语短文:Celebration of Chinese New Year
- 如何理解Javascript的caller,callee,call,apply区别
- Oracle认证:ORACLE绑定变量BINDPEEKING
- 关于表空间不足时Oracle管理Recyclebin
- 如何理解Javascript的caller,callee,call,apply区别
- 高中生优秀英语作文:Have a break away from electronics
- 如何理解Javascript的caller,callee,call,apply区别
- 如何理解Javascript的caller,callee,call,apply区别
- 如何理解Javascript的caller,callee,call,apply区别