DB2&ORACLE中更換的表所在的表空間的方法

oxoxooxx發表於2011-01-12

一.環境:AIX5.2 DB2 9.5

最近生產庫的一個分給開發用的表空間經常報無空間,導致不能將建表,資料庫有128個節點,分配的空間一般來說的充足的,初次查出來是因為某些開發人員建表的時候沒有指定合理的分割槽間,導致資料在節點上不均勻分佈,當單一節點上的空間滿了,即使其他節點使用率很低也利用不了.這就涉及到開發規範問題,本篇給出解決當下問題的方法.

1.備份分割槽間不合理的表

rename table old_tabname to new_tabname;

2.建立結構相同的表,指定合適的分割槽鍵

create table old_tabname like new_tabname in tabspace_name partitioning key(key_column);

3.一般表的資料量較大,先匯出,在匯入或load(不用insert ...select...以免因為產生較大的日誌量再將事務日誌空間撐爆;也可以選擇load from cursor方式)

export ot exp_file.txt of del modified by coldel, select * from new_tabname;

load client from exp_file.txt of del modified by coldel, insert into old_tabname;

二.ORACLE環境中:

可以直接使用alter修改表的表空間

alter table table_name tablespace tabspace_name;

三.?是不是可以用兩種資料庫的不同架構來解釋這個問題:

share nothing vs. share everything

[@more@]

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

相關文章