一次ORA-600故障的處理
日期:20080203
關鍵字:
ora-600 kksscl-inf-inl-loop
Connection aborted by peer: socket write error
java.sql.SQLException: 無法從套接字讀取更多的資料
內容:
收到開發人員發來的郵件,告知JAVA應用程式 執行系統一段時間後,報“獲取資料庫連線失敗”,“無法從套接字獲取更多資料”,要求解決此問題
內容:
收到開發人員發來的郵件,告知JAVA應用程式 執行系統一段時間後,報“獲取資料庫連線失敗”,“無法從套接字獲取更多資料”,要求解決此問題
附件中的日誌摘抄部分內容如下:
java.sql.SQLException: Io 異常: Connection aborted by peer: socket write error
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
at oracle.jdbc.driver.OracleStatement.
at oracle.jdbc.driver.OracleConnection.privateCreateStatement(OracleConn
ection.java:772)
at oracle.jdbc.driver.OracleConnection.createStatement(OracleConnection.
java:712)
at weblogic.jdbc.pool.Connection.createStatement(Connection.java:356)
......
java.sql.SQLException: 無法從套接字讀取更多的資料
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
......
到現場後首先檢查報警日誌,其中有以下資訊:
Sat Feb 02 15:44:06 2008
Errors in file d:oracleadmingljkudumpgljk_ora_3200.trc:
ORA-00600: internal error code, arguments: [kksscl-inf-inl-loop], [1521], [199], [199], [955], [955], [], []
Sun Feb 03 12:26:07 2008
Errors in file d:oracleadmingljkudumpgljk_ora_3364.trc:
ORA-00600: internal error code, arguments: [kksscl-inf-inl-loop], [1521], [23], [23], [103], [103], [], []
透過檢視UDUMP下的日誌,找出有以下SQL語句:
select yhdm,yhmc,yhmm,dh,qxjgdm,sybz,sydz,fysz,color
from gljk_xt_yhxx t
where yhdm=(select SWRY_DM from P12366_CTAIS2_USER where NAME=:"SYS_B_0")
.......
上網查了一下資料,有以下原因可能會造成此類錯誤:
1 資料庫版本需要升級(目前是9201+windows2000 as)
2 表或索引上有資料壞塊
3 SESSION之間的阻塞
4 初始化引數設定
參考metalink文件:ORA-600[kksscl-inf-inl-loop] during heavy load with CURSOR_SPACE_FOR_TIME=TRUE
計劃處理此問題的步驟如下:
1 找ORACLE支援(公司不出錢,這一步跳過去)
2 掃描表及索引,檢視是否有壞塊,如果有,進行壞塊修復,或表及索引的重建
3 在應用停了之後,升級資料庫到9204,檢查以下初始化引數
cursor_space_for_time=false
session_cached_cursors=0
cursor_sharing=force
4 在下次錯誤發生,檢視阻塞的SESSION
如果是因為SESSION阻塞,造成的應用程式中的錯誤,修改以下初始化引數
- set TIMED_STATISTICS=FALSE
- set _row_cache_cursors=20 or more (10 default)
- don't do any kind of tracing
檢查過程:
SQL> select 'ANALYZE TABLE '||table_name||' VALIDATE STRUCTURE CASCADE ;' from user_tables;
發現問題:
SQL> ANALYZE TABLE gs12366_gljk.GLJK_YSWG_LIST VALIDATE STRUCTURE CASCADE ;
ANALYZE TABLE gs12366_gljk.GLJK_YSWG_LIST VALIDATE STRUCTURE CASCADE
*
ERROR 位於第 1 行:
ORA-01499: table/index cross reference failure - see trace file
開發人員還有一些附加的要求:
系統設計的是定期將gljk_yswg_list中的資料刪除後放在歷史表中(2733918條記錄),但總是有一些資料在插入時提示列值過大,而兩個表結構一樣,也找不到原因.
積累到現在共有205045條記錄,
處理過程:
先檢視空閒的表空間,確認是否有足夠的空間來儲存臨時資料
1 create table wang_temp1 as select * from GLJK_YSWG_LIST where skssq>'2008' ;
-- 共有87114條
2 create table wang_temp2 as select * from GLJK_YSWG_LIST where skssq-- 共有205045條
3 停掉所有相關的JAVA應用
4 備份表上的建索引指令碼,rename table GLJK_YSWG_LIST;
5 rename table ww_temp1 to GLJK_YSWG_LIST;
6 執行建立索引指令碼,補充上索引.(表上沒有觸發器,如果有,還需要還原)
7 進入測試查詢
8 將wang_temp2中的資料插入到歷史表GLJK_YSWG_HISTORY_LIST中.如果批次插入失敗,寫一個簡單的儲存過程進行插入,並捕捉不能插入的記錄,分析原因進行解決.
9 處理完畢後,刪除中轉表wang_temp1 wang_temp2
在此做個記錄,以供以後出現類似問題時參考.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/271063/viewspace-999054/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【故障處理】ORA-600:[13013],[5001]故障處理
- OracleORA-03113 ORA-600 [4193]故障處理Oracle
- 模擬一則ORA-600 [4194][][]故障並處理
- 微服務的故障處理微服務
- linux故障處理Linux
- 故障分析 | Greenplum Segment 故障處理
- 記一次一波三折的Mysql故障處理MySql
- GPON網路故障如何處理?GPON網路故障處理流程
- 記一次一波三折的Oracle RAC故障處理Oracle
- MySQL show processlist故障處理MySql
- Oracle更新Opatch故障處理Oracle
- teams登入故障處理
- Oracle 11g ORA-600 [kjbrcrcvt:lms] 問題處理Oracle
- hbase 故障的處理方案。 (轉載文章)
- NO.A.0001——zabbix常見故障的處理
- 線上故障處理手冊
- TS - 處理故障的一些通用方法
- 【故障處理】TNS-04610問題
- GaussDB(分散式)例項故障處理分散式
- Oracle 10g RAC故障處理Oracle 10g
- ORA-01591錯誤故障處理
- 如何處理HTTP 503故障問題?HTTP
- Oracle 11.2.0.4 Dataguard兩則故障處理Oracle
- TiDB故障處理之讓人迷惑的Region is UnavailableTiDBAI
- Oracle DG同步失敗故障處理(二)Oracle
- 體檢伺服器nginx故障處理伺服器Nginx
- Oracle client安裝the jre is 0故障處理Oracleclient
- 資料中心儲存系統故障的處理方式
- 恆訊科技教你處理伺服器硬碟的故障伺服器硬碟
- 【故障處理】ORA-3113 "end of file on communication channel"
- hillstone現場故障處理指導手冊
- 金融行業現場故障處理實錄行業
- 【故障處理】ORA-28547: connection to server failed, probableServerAI
- 叢集故障處理之處理思路以及健康狀態檢查(三十二)
- Spark 叢集執行任務失敗的故障處理Spark
- 一次壞塊的處理過程(一)
- 一次壞塊的處理過程(二)
- 一次烏龍的SSH攻擊處理
- [20190531]ORA-600 kokasgi1故障模擬與恢復.txt