天天看點

【轉】oracle的臨時表空間寫滿磁盤空間解決改問題的步驟

文章轉自:http://www.uml.org.cn/sjjm/201105124.asp

在檢查aix5.3系統的磁盤空間時,發現臨時表空間所在臨時資料檔案已經達到20G,已經占用了100%。

因為是正式資料庫伺服器,不能随便重新開機資料庫。

以下的操作是用資料庫的sys超級使用者操作

剛開始打算把臨時表空間的資料檔案重新縮小就好了

執行:

資料庫報錯,重新設定的空間大小不能滿足需要。

看來需要重建立立新的臨時表空間替換目前的表空間了

1、首先檢視目前的資料庫預設表空間:

确認目前的臨時表空間為TEMP

2、檢視目前臨時表空間的大小:

3、建立新的臨時表空間:(先在其他的磁盤空間借用一下空間)

4、把建立的臨時表空間卻換成資料庫的預設臨時表空間

5、确認目前資料庫的預設臨時表空間

确認temp02為目前的資料庫預設表空間

6、在删除temp臨時表空間之前,先把運作在temp臨時表空間的sql語句kill掉,這樣的sql語句多為排序的語句

查詢出來之後,kill掉這些sql語句:

确認在temp臨時表空間中沒有運作的sql語句之後,則可以删除temp臨時表空間資料檔案了

7、删除temp臨時表空間

這樣很快就可以删除了臨時表空間的資料檔案

8、現在temp02臨時表空間占據了别人的磁盤空間,需要重新把臨時表空間建立在原來的位置,重建立立temp臨時表空間

建立一個512M的自動擴充臨時表空間,最大的擴充為15G。

檢視建立的temp臨時表空間是否正确:

9、把建立的temp臨時表空間卻換成資料庫的預設臨時表空間

10、确認目前資料庫的預設臨時表空間

确認temp為目前的資料庫預設表空間

11、目前把原來的temp臨時表空間變成了512M,把剩餘的磁盤空間空了出來,temp02臨時表空間就沒有用了,删除temp02臨時表空間