臨時表空間ORA-1652問題解決
1 某業務系統資料庫告警如下:
Tue Dec 14 16:50:14 2021
ORA-1652: unable to extend temp segment by 128 in tablespace TEMP1
2 在17:00 檢視臨時表空間,幾個節點進行檢視,使用率為 0% ;但為什麼會報臨時表空間不足?距離告警時間只有10分鐘。
節點 1
TABLESPACE_NAME Total(MB) Used(MB) Free(MB) Pct. Free(%)
------------------------------ ---------- ---------- ---------- ------------
TEMP1 215040 0 215040 100
TEMP 155647 3 155644 100
TEMP2 28672 0 28672 100
節點 2 :
TABLESPACE_NAME Total(MB) Used(MB) Free(MB) Pct. Free(%)
------------------------------ ---------- ---------- ---------- ------------
TEMP1 215040 0 215040 100
TEMP 155647 2 155645 100
TEMP2 28672 0 28672 100
3
根據
ASH
檢視
16:40-16:50
執行的相關
SQL
,在節點
2
上發現如下
SQL
進行排序。
4 檢視相關 SQL 的執行計劃,發現進行排序耗費的臨時表空間為 18E ,即為 18*1024*1024G ,這明顯應該是寫的 SQL 有問題,產生笛卡爾積的結果。
5 使用 PLSQL 進行對相關 SQL 進行格式化,發現此 SQL 沒有 where 條件,故導致笛卡爾積。
select table_A.CONS_ID as "CONS_ID", table_A.CUST_ID as "CUST_ID",
...................
'' as "TYPE_CODE"
from table_A, table_B, table_C, table_D order by ORG_NO, table_A.CONS_NO
6 原因分析:
在查詢臨時表空間是否夠用?如果是RAC,則每個節點都需要進行查詢,原因為RAC環境下,臨時表空間為共用的,
即在節點1查詢臨時表空間是夠用的,在節點2有可能已經耗盡。如果事件已經發生,不能通過當前會話查詢出耗盡臨時表空間的SQL,那麼可以通過生成每個節點的ASH,檢視頂級事件中是否有sort關鍵字的SQL,並檢視執行計劃,來驗證是否耗盡臨時表空間。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996316/viewspace-2848056/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- mysql臨時表,臨時表空間,ibtmp1表空間暴增原因初探MySql
- 臨時表空間使用率過高的解決辦法
- 萬萬沒想到,我在夜市地攤解決了MySQL臨時表空間難題~~MySql
- oracle臨時表空間相關Oracle
- 4.2.1.8規劃臨時表空間
- 刪除臨時表空間組
- MySQL InnoDB臨時表空間配置MySql
- 2.5.7 建立預設臨時表空間
- MySQL 5.7 新特性 共享臨時表空間及臨時表改進MySql
- oracle建立臨時表空間和資料表空間以及刪除Oracle
- 臨時表空間和回滾表空間使用率查詢
- oracle建立使用者,表空間,臨時表空間,分配許可權步驟詳解Oracle
- 消除臨時表空間暴漲的方法
- SQLServer如何釋放tempdb臨時表空間SQLServer
- MYSQL造資料佔用臨時表空間MySql
- oracle 臨時表空間的增刪改查Oracle
- oracle11g 查詢臨時表空間的使用率和正在使用臨時表空間的使用者Oracle
- 臨時表空間被佔滿的原因查詢
- 為什麼問題空間與解決方案空間如此重要? - Nikhil Gupta
- LINUX 解決時間同步問題(NTP)Linux
- 檢視oracle臨時表空間佔用率的檢視Oracle
- 解決Ubuntu虛擬機器佔用空間與實際空間不符問題Ubuntu虛擬機
- 解決MongoDB儲存時間時差的問題MongoDB
- 【問題解決】使用YYYY-MM-dd時間轉換問題
- 解決docker容器存放目錄磁碟空間滿了問題Docker
- Oracle 12C RMAN備份佔用大量臨時表空間Oracle
- dbms_lob儲存過程導致臨時表空間100%儲存過程
- Oracle表空間切換路徑,解決硬碟滿導致的ORA-01653問題Oracle硬碟
- interval 分割槽表clob預設表空間指定問題
- [20210528]oracle大表空間預分配問題.txtOracle
- 查詢過去一段時間內某條sql使用的臨時表空間大小SQL
- ORACLE ORA-1652的解決方法Oracle
- 若依解決VUE前端時間顯示問題Vue前端
- Java 8 的日期與時間問題解決方案Java
- 12C關於CDB、PDB 臨時temp表空間的總結
- Jenkins臨時空間不足處理辦法Jenkins
- undo表空間使用率過高解決