關於Oracle分區表的move操作

來源:互聯網
上載者:User

關於Oracle分區表的move操作

關於分區表的move操作還是很值得深究的一個問題。如果分區表中含有lob欄位,難度還會加大。
 對於普通的表而言,做move操作室理所當然,Oracle提供的方式很直接快捷。當然了這個命令也不是高可用的範疇。但是對於資料重組還是很方便快捷的。

一般來說,如果嘗試對分區表進行move操作,會得到如下的錯誤警告。
SQL> alter table charge move tablespace large_data;
 alter table charge move tablespace large_data
            *
 ERROR at line 1:
ORA-14511: cannot perform operation on a partitioned object

 
這個時候可以使用如下的sql語句產生動態sql來做partition層級的move操作。
 比如對下面3個大表,如下的sql就可以產生成百上千條語句來完成partition層級的move操作。

select 'alter table '||table_name||' move partition '||partition_name||' tablespace large_data;' from user_tab_partitions where table_name in ('CHARGE','MEMO','CHARGE_REL')

如果表中含有lob欄位,可能會碰到如下的問題

alter table memo move partition xxxx tablespace large_data;

          *
 ERROR at line 1:
 ORA-01658: unable to create INITIAL extent for segment in tablespace DATAS01

 碰到這種問題,一般有以下的幾種原因,一種需要查看quota的情況,是否在對應的資料表空間中含有足夠的quota
一種就是查看錶空間的儲存情況,是否有足夠的空間。
 如果空間有限,而且有的分區沒有資料,可以開啟消極式載入的方式。啟用deferred_segment

 expdp/impdp
使用資料泵是一種很好的選擇,可以很方便的進行資料結構的dump到處,然後在匯入的時候直接做remap_tablespace,這個功能是exp/imp所無法企及的。
 推薦使用impdp的remap功能。

perl/shell
當然了,可以利用exp+imp+shell/perl的方式來解析dump檔案
 可以參考如下的博文。

裡面詳細討論瞭解析dump檔案的一些細節。

dbms_metadata.get_ddl
如果源shema可以隨時訪問到,在條件允許的時候可以直接通過dbms_metadata來產生對應的建立語句,可以在此基礎上進行資料表空間的重新手工mapping。
 這個過程看似簡單,其實還要考慮很多的細節。分區的分區太多,很容易就超過最大字元長度了,需要自己把握控制。


exchange partition
這種方式可能風險有些大,不過在某些情況下也是一種方案,可以通過exchange partition的形式來完成資料表空間的重新對應。
 使用普通表來和分區做一個交換。

 不過以上的方法都不太適合高可用的情況,不過downtime的時間也是需要考慮的,需要最大程度的減少操作時間,畢竟使用分區表的環境中,資料都是很大的,這個也需要大家斟酌。資料表空間的變更是目的,但是資料的重組就牽扯了資料的匯出,匯入之類的工作,大道至簡,但是細節太多,還是需要多加註意。

淺談Oracle分區表之定界分割

Oracle分區表遷移

Oracle分區表使用執行個體

Oracle分區表 (Partition Table) 的建立及管理

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.