暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

警惕:Oracle中删除的分区不会进入回收站(Recyclebin)

原创 eygle 2017-04-25
551

最近在『云和恩墨大讲堂』的微信群讨论中,有朋友提到分区的删除和闪回问题,我注意到很多人可能忽略了这个问题。


在Oracle数据库中,单个删除的分区并不会进入回收站,全表删除的分区才可能和全表一起放入回收站。这是因为单个分区删除之后,是无法通过简单的闪回加入原分区表中,既然无法保证一致性,这个分区就不会进入回收站中。


以下这个测试展示了这个过程:



SQL> select * from v$version;



BANNER CON_ID


-------------------------------------------------------------------------------- ----------


Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0


PL/SQL Release 12.2.0.1.0 - Production 0


CORE 12.2.0.1.0 Production 0


TNS for Linux: Version 12.2.0.1.0 - Production 0


NLSRTL Version 12.2.0.1.0 - Production 0




SQL> CREATE TABLE enmotech (


2 PartID integer not null,


3 CretTm date not null,


4 PartCD varchar2(2) not null


5 ) partition by list (partcd) automatic (


6 partition pBJ values ('BJ'),


7 partition pCD values ('CD'),


8 partition pGZ values ('GZ'),


9 partition pSH values ('SH')


10 );



Table created.



SQL> insert into enmotech values (1, sysdate, 'KM');



1 row created.



SQL> select partition_name from user_tab_partitions


2 where table_name = 'ENMOTECH';



PARTITION_NAME


--------------------------------------------------------------------


PBJ


PCD


PGZ


PSH


SYS_P281



SQL> alter table enmotech drop partition SYS_P281 purge;


alter table enmotech drop partition SYS_P281 purge


*


ERROR at line 1:


ORA-14048: a partition maintenance operation may not be combined with other operations




SQL> alter table enmotech drop partition PSH;



Table altered.



SQL> select * from user_recyclebin;



no rows selected



SQL> drop table enmotech;



Table dropped.



SQL> select object_name,original_name,type from user_recyclebin;



OBJECT_NAME ORIGINAL_NAME TYPE


---------------------------------------- -------------------- -------------------------


BIN$TflQLiTmWX7gUwo4qMBX+A==$0 ENMOTECH TABLE


BIN$TflQLiTmWX7gUwo4qMBX+A==$0 ENMOTECH Table Partition


BIN$TflQLiTmWX7gUwo4qMBX+A==$0 ENMOTECH Table Partition


BIN$TflQLiTmWX7gUwo4qMBX+A==$0 ENMOTECH Table Partition


BIN$TflQLiTmWX7gUwo4qMBX+A==$0 ENMOTECH Table Partition


很多时候,想当然的结果可能并不可信,实践操作方能出真知,多动手,是技术人的王道。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论