天天看點

修改分區表的預設表空間

晚上收告警短信,pm4h_db0 表空間使用率超過了85%

TABLESPACE MAX_G USED_G PERCENT_USED

PM4H_DB9 416 154.8 37.21

PM4H_DB8 416 244.94 58.88

PM4H_DB7 416 246.74 59.31

PM4H_DB6 416 188.58 45.33

PM4H_DB5 416 220.55 53.02

PM4H_DB4 416 229.22 55.1

PM4H_DB3 416 174.39 41.92

PM4H_DB2 416 63.3 15.22

PM4H_DB1 512 187.93 36.71

PM4H_DB0 512 440.16 87.68

PM4H_DB_INDEX9 320 102.98 32.18

PM4H_DB_INDEX8 320 118.96 37.18

PM4H_DB_INDEX7 320 133.8 41.81

PM4H_DB_INDEX6 320 158.94 49.67

PM4H_DB_INDEX5 320 134.29 41.97

PM4H_DB_INDEX4 352 135.45 38.48

PM4H_DB_INDEX3 352 107.34 30.49

PM4H_DB_INDEX2 352 89.82 25.52

PM4H_DB_INDEX1 512 159.13 31.08

PM4H_DB_INDEX0 512 134.17 26.21

什麼原因使的表空間分布的如此不均勻呢,在awr 報告上也看到讀寫

差别很大pm4h_db0 使用了440G之多,其它的表空間卻隻有200G左右

系統設計對各個表的分區也做了平衡,不會差這麼多呀

聯想到最近做了那些個操作呢,上個月做大了50張大表的分區操作,這些分區表的尺寸

占到了整個資料庫的65%還多,會不會是這個操作引起的呢

select tablespace_name,count(*) from user_tab_partitions group by tablespace_name;

TABLESPACE_NAME COUNT(*)

PM4H_DB0 1809

PM4H_DB4 6

PM4H_DB8 8

PM4H_DB2 2

PM4H_DB7 5

PM4H_DB1 5

PM4H_DB3 5

PM4H_DB5 6

PM4H_DB9 5

PM4H_DB6 4

大量的分區都落在了使用者預設表空間裡了。這些個分區是由一個腳本根據時間的自動流逝建立的。

由于在add partition 時沒有指定表空間,是以都建立在使用者預設表空間裡了。

原因找到了。處理方法自然有兩個,一修改建立分區的腳本增加tablespace 參數。

另一個是通過給這些分區表修改defalut 表空間。

alter table BH_TODBH_10253  modify DEFAULT ATTRIBUTES tablespace pm4h_db1;

alter table IND_TOH_14659  modify DEFAULT ATTRIBUTES tablespace pm4h_db9;

..

...

...

..

...

alter table IND_TOH_19666_4  modify DEFAULT ATTRIBUTES tablespace pm4h_db7;

alter table IND_TOH_21446  modify DEFAULT ATTRIBUTES tablespace pm4h_db8;

一天後,觀察分區情況

select  a.tablespace_name,count(*) from user_tab_partitions a  group by a.tablespace_name;

    TABLESPACE_NAME COUNT(*)

 PM4H_DB0 1809

 PM4H_DB1 10

 PM4H_DB2 8

 PM4H_DB3 11

 PM4H_DB4 11

 PM4H_DB5 11

 PM4H_DB6 10

 PM4H_DB7 11

 PM4H_DB8 14

 PM4H_DB9 10

觀察,表分區開始在其它的表空間上開始建立

-----the end---