表、索引遷移表空間alter table move

liujinwei633發表於2009-03-26
        今天將一個系統從開發環境遷移到生產環境時,發現了了個使用者小問題:
開發環境下的資料庫使用者都是具有dba角色,生產環境就嚴格了許多。遷移完成後報告說××表空間不夠了。而這個表空間並不是此使用者的預設表空間,它根本就沒許可權使用這個表空間的。立即想到可能是這個使用者是將表建在了別的表空間了。一檢查,果然發現有部分表的表空間不對。

那就將這些表遷移回應該的表空間。
    alter table tb_name move tablespace ts_name;
此命令後需要rebuild index
    alter index idx_name rebuild tablespace ts_name;

注意:
     1。如果表上有主鍵,則主鍵建立的唯一索引也需要rebuild
     2.。在delete掉大表的資料後執行alter table tb_name move命令可以調整HWM、回收了extent
     3。這種方式對long 或 long raw 欄位不適用,但可以用exp/imp的方法.


select extents,segment_name from dba_segments
 where SEGMENT_NAME='TEST' and WNER='×××';


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/32939/viewspace-580274/,如需轉載,請註明出處,否則將追究法律責任。

相關文章