ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【Flashback】表空间不足时将会清理回收站内容释放空间

【Flashback】表空间不足时将会清理回收站内容释放空间

原创 Linux操作系统 作者:secooler 时间:2011-06-26 23:59:40 0 删除 编辑
  本文测试当表空间不足时,回收站中的内容将会被删除。

1.创建大小为1M的表空间TBS_SEC_D
sys@ora10g> create tablespace TBS_SEC_D datafile '/oracle/ora10gR2/oradata/ora10g/tbs_sec_d_01.dbf' size 1m;

Tablespace created.

2.创建SEC用户并授权
sys@ora10g> create user sec identified by sec default tablespace tbs_sec_d;

User created.

sys@ora10g> grant connect,resource to sec;

Grant succeeded.

3.模拟表被删除
sys@ora10g> conn sec/sec
Connected.
sec@ora10g> create table t as select * from all_objects;

Table created.

sec@ora10g> drop table t;

Table dropped.

4.查看回收站中的内容
sec
@ora10g> show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
T                BIN$pp2oPQTMClXgQMKQt8ByAQ==$0 TABLE        2011-06-26:21:46:09


此时回收站中存放了T表的删除数据。回收站中只要存在表数据,便可以使用闪回技术对表T进行恢复。

5.模拟表空间不足
1)创建空表T1
sec
@ora10g> create table t1 as select * from all_objects where 0=1;

Table created.

2)查看回收站中的信息
sec
@ora10g> show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
T                BIN$pp2oPQTMClXgQMKQt8ByAQ==$0 TABLE        2011-06-26:21:46:09


由于我们创建的是空表T1,并没有占用表空间TBS_SEC_D空间,因此回收站中的信息并没有被挤占。

3)尝试向T1表中插入数据
sec
@ora10g> insert into t1 select * from all_objects;

4370 rows created.

4)再次查看回收站中的内容
sec
@ora10g> show recyclebin;

此处将没有信息返回,说明,回收站中的信息已经被挤占并清空。此后T表将不能通过简单的闪回技术进行恢复。

6.小结
  当回收站被清空,或者存放回收站信息的表空间空间不足时,回收站中的信息都会被删除。
  这里提醒大家的是:请尽量保证表空间存在充足的可用空间,防止回收站信息被删除带给我们的恢复困难。

Good luck.

secooler
11.06.26

-- The End --

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/519536/viewspace-700782/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE 总监,阿里云MVP,北京大学理学硕士,恩墨学院创始人,教育专家,中国区 Cloudera 首位官方授权大数据讲师,金牌培训专家,BDA大数据联盟创始人,OCM联盟创始人,ACCUG创始人、ACOUG核心专家,Blogger。

注册时间:2008-03-16

  • 博文量
    797
  • 访问量
    8108179