臨時表空間過大的解決方法
Temporary tablespace是oracle裡臨時表空間,臨時表空間主要用途是在資料庫進行排序運算、管理索引、訪問檢視等操作時提供臨時的運算空間,當運算完成之後系統會自動清理。當oracle裡需要用到sort的時候,PGA中sort_area_size大小不夠時,將會把資料放入臨時表空間裡進行排序,同時如果有異常情況的話,也會被放入臨時表空間,正常來說,在完成Select語句、create index等一些使用TEMP表空間的排序操作後,Oracle是會自動釋放掉臨時段的。
但有些有侯我們則會遇到臨時段沒有被釋放,TEMP表空間幾乎滿的狀況,甚至是我們重啟了資料庫仍沒有解決問題。下面介紹一下此種情況的處理方法。
yang@rac1>conn system/yang as sysdba
已連線。
sys@rac1>@showtbs.sql
TABLESPACE_NAME STATUS CONTENTS EXTENT_MAN total(M) free(M) used(M) utilization%
---------------- --------- --------- ---------- ---------- ---------- ---------- ------------
SYSAUX ONLINE PERMANENT LOCAL 683 35 648 94.83
UNDOTBS1 ONLINE UNDO LOCAL 80 50 30 37.89
USERS ONLINE PERMANENT LOCAL 1231 1228 4 .29
SYSTEM ONLINE PERMANENT LOCAL 1170 416 754 64.41
EXAMPLE ONLINE PERMANENT LOCAL 300 222 78 25.9
TEMP ONLINE TEMPORARY LOCAL 97 1 96 98.97
已選擇6行。
TABLESPACE_NAME BLOCK_SIZE CONTENTS EXTENT_MAN ALLOCATIO SEGMEN STATUS LOGGING FOR PLU
-------------------- ---------- --------- ---------- --------- ------ --------- --------- --- ---
SYSTEM 8192 PERMANENT LOCAL SYSTEM MANUAL ONLINE LOGGING NO NO
SYSAUX 8192 PERMANENT LOCAL SYSTEM AUTO ONLINE LOGGING NO NO
UNDOTBS1 8192 UNDO LOCAL SYSTEM MANUAL ONLINE LOGGING NO NO
TEMP 8192 TEMPORARY LOCAL UNIFORM MANUAL ONLINE NOLOGGING NO NO
USERS 8192 PERMANENT LOCAL SYSTEM AUTO ONLINE LOGGING NO NO
EXAMPLE 8192 PERMANENT LOCAL SYSTEM AUTO ONLINE NOLOGGING NO YES
已選擇6行。
TABLESPACE_NAME INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE
-------------------- -------------- ----------- ----------- ----------- ------------
SYSTEM 65536 1 2147483645
SYSAUX 65536 1 2147483645
UNDOTBS1 65536 1 2147483645
TEMP 1048576 1048576 1 0
USERS 65536 1 2147483645
EXAMPLE 65536 1 2147483645
已選擇6行。
解決辦法:
1 建立一個可共替換的臨時表空間temp02
sys@rac1>create temporary tablespace temp02 tempfile 'd:\oracle\oradata\oracl\temp02.dbf' size 512m
autoextend on next 1m maxsize unlimited;
表空間已建立。
2 更改資料庫的預設臨時表空間
sys@rac1>alter database default temporary tablespace temp02;
資料庫已更改。
3 刪除使用過大的臨時表空間
sys@rac1>drop tablespace temp including contents and datafiles;
表空間已刪除。
4 建立新的臨時表空間
sys@rac1>create temporary tablespace temp tempfile 'd:\oracle\oradata\oracl\temp01.dbf' size 512m au
toextend on next 1m maxsize unlimited;
表空間已建立。
5 重置資料庫的臨時表空間
sys@rac1>alter database default temporary tablespace temp;
資料庫已更改。
6 刪除臨時替代的臨時表空間。
sys@rac1>drop tablespace temp02 including contents and datafiles;
表空間已刪除。
sys@rac1>@showtbs.sql
TABLESPACE_NAME STATUS CONTENTS EXTENT_MAN total(M) free(M) used(M) utilization%
-------------------- --------- --------- ---------- ---------- ---------- ---------- ------------
SYSAUX ONLINE PERMANENT LOCAL 683 35 648 94.83
UNDOTBS1 ONLINE UNDO LOCAL 80 50 30 37.89
USERS ONLINE PERMANENT LOCAL 1231 1228 4 .29
SYSTEM ONLINE PERMANENT LOCAL 1170 416 754 64.41
EXAMPLE ONLINE PERMANENT LOCAL 300 222 78 25.9
TEMP ONLINE TEMPORARY LOCAL 512
已選擇6行。
TABLESPACE_NAME BLOCK_SIZE CONTENTS EXTENT_MAN ALLOCATIO SEGMEN STATUS LOGGING FOR PLU
-------------------- ---------- --------- ---------- --------- ------ --------- --------- --- ---
SYSTEM 8192 PERMANENT LOCAL SYSTEM MANUAL ONLINE LOGGING NO NO
SYSAUX 8192 PERMANENT LOCAL SYSTEM AUTO ONLINE LOGGING NO NO
UNDOTBS1 8192 UNDO LOCAL SYSTEM MANUAL ONLINE LOGGING NO NO
TEMP 8192 TEMPORARY LOCAL UNIFORM MANUAL ONLINE NOLOGGING NO NO
USERS 8192 PERMANENT LOCAL SYSTEM AUTO ONLINE LOGGING NO NO
EXAMPLE 8192 PERMANENT LOCAL SYSTEM AUTO ONLINE NOLOGGING NO YES
已選擇6行。
TABLESPACE_NAME INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE
-------------------- -------------- ----------- ----------- ----------- ------------
SYSTEM 65536 1 2147483645
SYSAUX 65536 1 2147483645
UNDOTBS1 65536 1 2147483645
TEMP 1048576 1048576 1 0
USERS 65536 1 2147483645
EXAMPLE 65536 1 2147483645
已選擇6行。
sys@rac1>
但有些有侯我們則會遇到臨時段沒有被釋放,TEMP表空間幾乎滿的狀況,甚至是我們重啟了資料庫仍沒有解決問題。下面介紹一下此種情況的處理方法。
yang@rac1>conn system/yang as sysdba
已連線。
sys@rac1>@showtbs.sql
TABLESPACE_NAME STATUS CONTENTS EXTENT_MAN total(M) free(M) used(M) utilization%
---------------- --------- --------- ---------- ---------- ---------- ---------- ------------
SYSAUX ONLINE PERMANENT LOCAL 683 35 648 94.83
UNDOTBS1 ONLINE UNDO LOCAL 80 50 30 37.89
USERS ONLINE PERMANENT LOCAL 1231 1228 4 .29
SYSTEM ONLINE PERMANENT LOCAL 1170 416 754 64.41
EXAMPLE ONLINE PERMANENT LOCAL 300 222 78 25.9
TEMP ONLINE TEMPORARY LOCAL 97 1 96 98.97
已選擇6行。
TABLESPACE_NAME BLOCK_SIZE CONTENTS EXTENT_MAN ALLOCATIO SEGMEN STATUS LOGGING FOR PLU
-------------------- ---------- --------- ---------- --------- ------ --------- --------- --- ---
SYSTEM 8192 PERMANENT LOCAL SYSTEM MANUAL ONLINE LOGGING NO NO
SYSAUX 8192 PERMANENT LOCAL SYSTEM AUTO ONLINE LOGGING NO NO
UNDOTBS1 8192 UNDO LOCAL SYSTEM MANUAL ONLINE LOGGING NO NO
TEMP 8192 TEMPORARY LOCAL UNIFORM MANUAL ONLINE NOLOGGING NO NO
USERS 8192 PERMANENT LOCAL SYSTEM AUTO ONLINE LOGGING NO NO
EXAMPLE 8192 PERMANENT LOCAL SYSTEM AUTO ONLINE NOLOGGING NO YES
已選擇6行。
TABLESPACE_NAME INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE
-------------------- -------------- ----------- ----------- ----------- ------------
SYSTEM 65536 1 2147483645
SYSAUX 65536 1 2147483645
UNDOTBS1 65536 1 2147483645
TEMP 1048576 1048576 1 0
USERS 65536 1 2147483645
EXAMPLE 65536 1 2147483645
已選擇6行。
解決辦法:
1 建立一個可共替換的臨時表空間temp02
sys@rac1>create temporary tablespace temp02 tempfile 'd:\oracle\oradata\oracl\temp02.dbf' size 512m
autoextend on next 1m maxsize unlimited;
表空間已建立。
2 更改資料庫的預設臨時表空間
sys@rac1>alter database default temporary tablespace temp02;
資料庫已更改。
3 刪除使用過大的臨時表空間
sys@rac1>drop tablespace temp including contents and datafiles;
表空間已刪除。
4 建立新的臨時表空間
sys@rac1>create temporary tablespace temp tempfile 'd:\oracle\oradata\oracl\temp01.dbf' size 512m au
toextend on next 1m maxsize unlimited;
表空間已建立。
5 重置資料庫的臨時表空間
sys@rac1>alter database default temporary tablespace temp;
資料庫已更改。
6 刪除臨時替代的臨時表空間。
sys@rac1>drop tablespace temp02 including contents and datafiles;
表空間已刪除。
sys@rac1>@showtbs.sql
TABLESPACE_NAME STATUS CONTENTS EXTENT_MAN total(M) free(M) used(M) utilization%
-------------------- --------- --------- ---------- ---------- ---------- ---------- ------------
SYSAUX ONLINE PERMANENT LOCAL 683 35 648 94.83
UNDOTBS1 ONLINE UNDO LOCAL 80 50 30 37.89
USERS ONLINE PERMANENT LOCAL 1231 1228 4 .29
SYSTEM ONLINE PERMANENT LOCAL 1170 416 754 64.41
EXAMPLE ONLINE PERMANENT LOCAL 300 222 78 25.9
TEMP ONLINE TEMPORARY LOCAL 512
已選擇6行。
TABLESPACE_NAME BLOCK_SIZE CONTENTS EXTENT_MAN ALLOCATIO SEGMEN STATUS LOGGING FOR PLU
-------------------- ---------- --------- ---------- --------- ------ --------- --------- --- ---
SYSTEM 8192 PERMANENT LOCAL SYSTEM MANUAL ONLINE LOGGING NO NO
SYSAUX 8192 PERMANENT LOCAL SYSTEM AUTO ONLINE LOGGING NO NO
UNDOTBS1 8192 UNDO LOCAL SYSTEM MANUAL ONLINE LOGGING NO NO
TEMP 8192 TEMPORARY LOCAL UNIFORM MANUAL ONLINE NOLOGGING NO NO
USERS 8192 PERMANENT LOCAL SYSTEM AUTO ONLINE LOGGING NO NO
EXAMPLE 8192 PERMANENT LOCAL SYSTEM AUTO ONLINE NOLOGGING NO YES
已選擇6行。
TABLESPACE_NAME INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE
-------------------- -------------- ----------- ----------- ----------- ------------
SYSTEM 65536 1 2147483645
SYSAUX 65536 1 2147483645
UNDOTBS1 65536 1 2147483645
TEMP 1048576 1048576 1 0
USERS 65536 1 2147483645
EXAMPLE 65536 1 2147483645
已選擇6行。
sys@rac1>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-689958/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【實驗】重建臨時表空間解決臨時表空間過大問題
- 【實驗】RESIZE方法解決臨時表空間過大問題
- 轉:Oracle 臨時表空間過大問題解決Oracle
- 臨時表空間已滿的解決方法
- ORACLE臨時表空間使用率過高的原因及解決方法Oracle
- oracle臨時表空間過大的原因&&處理Oracle
- 臨時表空間使用率過高的解決辦法
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- 【UNDO】使用重建UNDO表空間方法解決UNDO表空間過大問題
- ORACLE 臨時表空間滿了的原因解決方案Oracle
- 解決Oracle臨時表空間佔滿的問題Oracle
- ORACLE 臨時表空間使用率過高的原因及解決方案Oracle
- 【臨時表空間】11g中使用 SHRINK方法縮小臨時表空間和臨時檔案
- oracle的臨時表空間解決問題的步驟Oracle
- 【臨時表空間】11g中使用 SHRINK方法縮小臨時表空間和臨時檔案(續)
- oracle的臨時表空間Oracle
- 還原表空間過大的解決方案
- 臨時表空間的建立、刪除,設定預設臨時表空間
- 臨時表空間資料檔案損壞的解決
- oracle 臨時表空間Oracle
- oracle臨時表空間Oracle
- 臨時表空間ORA-1652問題解決
- 【臨時表空間組】臨時表空間組的建立、維護及應用
- 批量處理時臨時增加回滾表空間臨時表空間檔案
- Oracle 臨時表空間的概念Oracle
- ORACLE臨時表空間的清理Oracle
- 表空間滿的解決方法
- mysql臨時表,臨時表空間,ibtmp1表空間暴增原因初探MySql
- Oracle 臨時表空間概念Oracle
- oracle臨時表空間組Oracle
- Oracle Temp 臨時表空間Oracle
- 【儲存管理】建立臨時表空間組、建立臨時表空間組及使用
- oracle的臨時表空間寫滿磁碟空間,解決改問題的具體步驟Oracle
- 【TEMP】臨時表空間的工作原理及維護方法
- 臨時表空間的空間使用情況查詢
- ORACLE預設的臨時表空間Oracle
- oracle的臨時表空間temporary tablespaceOracle
- ORACLE 臨時表空間使用率過高分析Oracle