DB2 reorg表,因資料表空間不夠出現錯誤

來源:互聯網
上載者:User

當對一個表的結構進行改變後,需要reorg表,重新組織其目錄統計資訊,為資料庫的訪問計劃提供資訊,以便高效執行對其的操作。

 

在一次維護資料庫中,因添加了表的一列後,對其作reorg操作,發生錯誤,通過db2 "? sql0xxx"查的錯誤原因為物理空間已滿,然後在$DB2_INSTALL_DIR/sqllib/db2dump/查看db2diag.log可以發現是資料表空間大小不夠。因為reorg table如果沒有指定用哪個資料表空間來做reorg操作的話,會預設使用該表所在的資料表空間,而reorg table and index xxx即表和其上的索引一起reorg的話,會預設使用系統暫存資料表空間。

 

我的這個表資料量特別大,所以我在一個空間很大的盤建立了新的暫存資料表空間MYTEMPSPACE1,然後用這個資料表空間來做reorg操作reorg table $tablename index $indexname use MYTEMPSPACE1

 

這裡建立這個資料表空間有將就,他的pagesize要和表的pagesize匹配,然後維護人員可以用原來db2 中建立資料表空間的語句來參照著建立自己新的資料表空間。用db2look -d $dbname -l -e -x -o $db.layout

 

這樣查看db.layout就可以把原來建立資料表空間的一些參數複製來使用。

 

最後執行的時候因為我的表實在太大,還是出現問題,在我的暫存資料表空間減小了40G左右的時候,就不用這個空間了(我的空間還有50多G的,不知道是不是建立資料表空間的時候制約了這點,還沒有去查),又使用了預設的系統暫存資料表空間(30G)把這個資料表空間用完後,又報錯誤空間不夠。

 

 

當時快崩潰了,就嘗試著只執行reorg table $tablename use MYTEMPSPACE1,執行快一個小時後,執行成功!!!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.