警惕:Oracle中刪除的分割槽不會進入回收站(Recyclebin)
阿新 • • 發佈:2022-05-03
在Oracle資料庫中,單個刪除的分割槽並不會進入回收站,全表刪除的分割槽才可能和全表一起放入回收站。這是因為單個分割槽刪除之後,是無法通過簡單的閃回加入原分割槽表中,既然無法保證一致性,這個分割槽就不會進入回收站中。
以下這個測試展示了這個過程:
SQL> select * from v$version; BANNER ------------------------------------------------------------------- Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production PL/SQL Release 12.2.0.1.0 - Production CORE 12.2.0.1.0 Production TNS for Linux: Version 12.2.0.1.0 - Production NLSRTL Version 12.2.0.1.0 - Production 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
當我們DROP 整個分割槽表時,分割槽表連帶所有的分割槽,會進入到回收站。
很多時候,想當然的結果可能並不可信,實踐操作方能出真知,多動手,是技術人的王道。