能够通过Flashback?
在Oracle数据库中,单个删除的分区并不会进入回收站,全表删除的分区才可能和全表一起放入回收站。这是因为单个分区删除之后,是无法通过简单的闪回加入原分区表中,既然无法保证一致性,这个分区就不会进入回收站中。
以下这个测试展示了这个过程:
SQL> select * from v$version;BANNER CON_ID-------------------------------------------------------------------------------- ----------Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0PL/SQL Release 12.2.0.1.0 - Production 0CORE 12.2.0.1.0 Production 0TNS for Linux: Version 12.2.0.1.0 - Production 0NLSRTL Version 12.2.0.1.0 - Production 0SQL> CREATE TABLE enmotech (2 PartID integer not null,3 CretTm date not null,4 PartCD varchar2(2) not null5 ) 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_partitions2 where table_name = 'ENMOTECH';PARTITION_NAME--------------------------------------------------------------------PBJPCDPGZPSHSYS_P281SQL> 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 operationsSQL> alter table enmotech drop partition PSH;Table altered.SQL> select * from user_recyclebin;no rows selectedSQL> 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 TABLEBIN$TflQLiTmWX7gUwo4qMBX+A==$0 ENMOTECH Table PartitionBIN$TflQLiTmWX7gUwo4qMBX+A==$0 ENMOTECH Table PartitionBIN$TflQLiTmWX7gUwo4qMBX+A==$0 ENMOTECH Table PartitionBIN$TflQLiTmWX7gUwo4qMBX+A==$0 ENMOTECH Table Partition很多时候,想当然的结果可能并不可信,实践操作方能出真知,多动手,是技术人的王道。
参考:
http://www.eygle.com/archives/2017/04/drop_partition_
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有