臨時表空間已滿的解決方法
臨時表空間主要用來存放由排序、匯總、索引產生的臨時資料。
臨時表空間已滿的解決方法:
以下方法均經過我實際操作,可行方法。
一、利用中轉臨時表空間:新建一個臨時表空間,修改預設臨時表空間
1. create temporary tablespace temp2 tempfile ‘D:\ORACLE\ORADATA\ORCL\TEMP02.dbf’ size 20M reuse autoextend on next 640k maxsize unlimited; --建立中轉表空間
2. alter database default temporary tablespace temp2;--修改預設表空間
3. drop tablespace temp including contents and datafiles;--刪除原來的臨時表空間
4. create temporary tablespace temp tempfile ‘D:\ORACLE\ORADATA\ORCL\TEMP.dbf’ size 20M reuse autoextend on next 640k maxsize unlimited;--重新建立臨時表空間
5. alter database default temporary tablespace temp;--重置預設臨時表空間為temp表空間
6. drop tablespace temp2 including contents and datafile;--刪除中轉用的臨時表空間
7. alter user scott temporary tablespace temp;--重新指定使用者臨時表空間為重建的臨時表空間
二、重啟資料庫(上次遇到這個問題時,重啟庫之後資料庫突然變得很慢,不知道是否跟我做了alter system flush shared_pool操作有關,過段時間後,速度正常了)
三、Kill掉正在使用臨時段的程式
1. 檢視誰在使用臨時段
SELECT se.username, SID, serial#, sql_address, machine, program, TABLESPACE,
segtype, CONTENTS
FROM v$session se, v$sort_usage su
WHERE se.saddr = su.session_addr
2. Kill掉這些程式
alter system kill session ‘sid,serial#’
3. 對temp表空間進行碎片整理
alter tablespace temp coalesce;(不能對臨時表空間進行碎片整理?)
四、使用診斷時間
1、確定temp表空間的ts#
select ts#, name from ts$;
0,SYSTEM
1,UNDOTBS1
2,SYSAUX
3,TEMP
4,USERS
5,UNDOTBS2
6,EXAMPLE
7,HR_DATA
8,TEMP2
9,TEMP1
2、執行清理操作
3、alter session set events ‘immediate trace name DROP_SEGMENTS level 4’;
其中,level值為ts#+1;
檢視錶空間使用情況:
SELECT a.tablespace_name "表空間名(M)", total / 1024 / 1024 "表空間大小(M)",
free / 1024 / 1024 "表空間剩餘大小(M)",
(total - free) / 1024 / 1024 "表空間使用大小(M)",
ROUND ((total - free) / total, 4) * 100 "使用率 %"
FROM (SELECT tablespace_name, SUM (BYTES) free
FROM dba_free_space
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM (BYTES) total
FROM dba_data_files
GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name
order by 5 desc;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10314474/viewspace-616902/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE 臨時表空間滿了的原因解決方案Oracle
- 解決Oracle臨時表空間佔滿的問題Oracle
- 臨時表空間過大的解決方法
- 表空間滿的解決方法
- 【實驗】重建臨時表空間解決臨時表空間過大問題
- system表空間爆滿解決方法
- oracle的臨時表空間寫滿磁碟空間,解決改問題的具體步驟Oracle
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- 臨時表空間被佔滿的原因查詢
- ORACLE 中undo表空間爆滿的解決方法Oracle
- 【實驗】RESIZE方法解決臨時表空間過大問題
- 【臨時表空間】11g中使用 SHRINK方法縮小臨時表空間和臨時檔案
- ORACLE臨時表空間使用率過高的原因及解決方法Oracle
- oracle的臨時表空間解決問題的步驟Oracle
- 【臨時表空間】11g中使用 SHRINK方法縮小臨時表空間和臨時檔案(續)
- oracle的臨時表空間Oracle
- 臨時表空間的建立、刪除,設定預設臨時表空間
- 臨時表空間資料檔案損壞的解決
- Oracle undo表空間爆滿的解決Oracle
- oracle 臨時表空間Oracle
- oracle臨時表空間Oracle
- 臨時表空間ORA-1652問題解決
- 轉:Oracle 臨時表空間過大問題解決Oracle
- ORA-01114錯誤原因及解決方法(臨時表空間壞掉、或者滿了)
- 【臨時表空間組】臨時表空間組的建立、維護及應用
- 批量處理時臨時增加回滾表空間臨時表空間檔案
- 臨時表空間使用率過高的解決辦法
- Oracle 臨時表空間的概念Oracle
- ORACLE臨時表空間的清理Oracle
- mysql臨時表,臨時表空間,ibtmp1表空間暴增原因初探MySql
- Oracle 臨時表空間概念Oracle
- oracle臨時表空間組Oracle
- Oracle Temp 臨時表空間Oracle
- 【儲存管理】建立臨時表空間組、建立臨時表空間組及使用
- 【TEMP】臨時表空間的工作原理及維護方法
- 臨時表空間的空間使用情況查詢
- ORACLE預設的臨時表空間Oracle
- oracle的臨時表空間temporary tablespaceOracle