ORA-12710 錯誤深入解析
前一段一直在忙11g CBO的測試和多個專案雜事,沒有太多時間更新該部落格
了。想想還是不能太懶了,就把前幾天替客戶解決ora-12710錯誤分析張貼出來。
問題:
客戶使用應用程式時候,每天多次發生資料庫連線錯誤ora-12710,該問題持
續發生了很長一段時間,一直沒有找到解決的辦法。
日誌資訊:
listener.log:沒有出現相關的連線錯誤資訊
alertSID.log:沒有出現相關連線錯誤資訊
sqlnet.log的錯誤資訊如下:
---------------------------------------------------------------------------
Fatal NI connect error 12170.
VERSIOTNS for IBM/AIX RISC System/6000: Version 10.2.0.4.0 - Production
Time: 05-MAY-2011 21:34:38rotocol Adapter for IBM/AIX RISC System/6000: Versio
Tracing not turned on.
Tns error struct:
ns main err code: 12535
TNS-12535: TNS:operation timed out
ns secondary err code: 12560
nt main err code: 505
TNS-00505: Operation timed out
nt secondary err code: 78
nt OS err code: 0
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=XXX)(PORT=60871))
問題分析及解決:
1、該錯誤發生沒有一定的時間規律,有時候一個小時多次,有時候一個小時沒有;
2、從listener.log中沒有看到相關錯誤日誌,可以基本排除連線配置的問題
3、ns secondary code 12560是net session錯誤,ns有兩層(primary和
secondary)屬於第二層錯誤;NT是網路交易,有nt(1), nt(2)和nt(3),其錯誤程式碼
是78。
4、其他公司的DBA一直認為是防火牆的配置有問題,網管方面認為已經全放開了,
不可能是他們問題。其實防火牆是會造成該問題出現,通常需要將SQLNET fixup協
議,DPI,SQLNET inspection,SQL fixup,SQL AL(juniper)關閉。但我的經驗
是如果是防火牆的功能,其最終的錯誤程式碼不應該是78,而是100多(這個是猜
測,沒有正式的文件進行考證)。
5、錯誤程式碼78,我通常是認為因為連線數量的限制或者連線記憶體的限制而不讓連
接,所以開始查引數processes的設定問題,檢查設定為1000,遠遠滿足客戶現有
需要,檢查alert.log日誌中沒有該錯誤,通常表示應用程式中不存在啟動多個連線命
令,所以也排除了應用造成的問題,所以焦點聚集在連線記憶體限制。
6、登陸到oracle使用者,使用ulimit -a ,發現AIX使用者下memory=32M,修改/etc
/security/limits檔案中oracle使用者rss=-1。修改後問題消失。
總結:
搞技術的人有一個通病就是往往把問題複雜化,我最近碰到的幾個問題,看是非
常複雜,但最終的解決結果都是非常簡單。
了。想想還是不能太懶了,就把前幾天替客戶解決ora-12710錯誤分析張貼出來。
問題:
客戶使用應用程式時候,每天多次發生資料庫連線錯誤ora-12710,該問題持
續發生了很長一段時間,一直沒有找到解決的辦法。
日誌資訊:
listener.log:沒有出現相關的連線錯誤資訊
alertSID.log:沒有出現相關連線錯誤資訊
sqlnet.log的錯誤資訊如下:
---------------------------------------------------------------------------
Fatal NI connect error 12170.
VERSIOTNS for IBM/AIX RISC System/6000: Version 10.2.0.4.0 - Production
Time: 05-MAY-2011 21:34:38rotocol Adapter for IBM/AIX RISC System/6000: Versio
Tracing not turned on.
Tns error struct:
ns main err code: 12535
TNS-12535: TNS:operation timed out
ns secondary err code: 12560
nt main err code: 505
TNS-00505: Operation timed out
nt secondary err code: 78
nt OS err code: 0
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=XXX)(PORT=60871))
問題分析及解決:
1、該錯誤發生沒有一定的時間規律,有時候一個小時多次,有時候一個小時沒有;
2、從listener.log中沒有看到相關錯誤日誌,可以基本排除連線配置的問題
3、ns secondary code 12560是net session錯誤,ns有兩層(primary和
secondary)屬於第二層錯誤;NT是網路交易,有nt(1), nt(2)和nt(3),其錯誤程式碼
是78。
4、其他公司的DBA一直認為是防火牆的配置有問題,網管方面認為已經全放開了,
不可能是他們問題。其實防火牆是會造成該問題出現,通常需要將SQLNET fixup協
議,DPI,SQLNET inspection,SQL fixup,SQL AL(juniper)關閉。但我的經驗
是如果是防火牆的功能,其最終的錯誤程式碼不應該是78,而是100多(這個是猜
測,沒有正式的文件進行考證)。
5、錯誤程式碼78,我通常是認為因為連線數量的限制或者連線記憶體的限制而不讓連
接,所以開始查引數processes的設定問題,檢查設定為1000,遠遠滿足客戶現有
需要,檢查alert.log日誌中沒有該錯誤,通常表示應用程式中不存在啟動多個連線命
令,所以也排除了應用造成的問題,所以焦點聚集在連線記憶體限制。
6、登陸到oracle使用者,使用ulimit -a ,發現AIX使用者下memory=32M,修改/etc
/security/limits檔案中oracle使用者rss=-1。修改後問題消失。
總結:
搞技術的人有一個通病就是往往把問題複雜化,我最近碰到的幾個問題,看是非
常複雜,但最終的解決結果都是非常簡單。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/354732/viewspace-695018/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- nbu client錯誤解析client
- 深入理解 HDFS 錯誤恢復
- $home/.dmrc已被忽略錯誤解析
- 網站域名解析為什麼錯誤?域名解析錯誤怎麼解決?網站
- 域名解析錯誤如何解決?
- XML DOM 解析器錯誤概述XML
- 深入解析Apache DolphinScheduler容錯機制Apache
- Python UnboundLocalError和NameError錯誤根源解析PythonError
- Windows 8啟用錯誤程式碼解析Windows
- 如何判斷DNS解析故障?如何解決DNS解析錯誤?DNS
- Yii2 之錯誤處理深入分析
- 深入理解 JavaScript 錯誤和堆疊追蹤JavaScript
- 【Oracle】TNS-12154 錯誤解析Oracle
- 深入分析ora-600 2662錯誤系列一
- Sybase果然強,連錯誤的SQL都能解析SQL
- Windows平臺 ORA-12560 錯誤解析Windows
- 深入解析Scheduler
- 深入解析AsyncTask
- qt深入解析QT
- 深入 Go 的錯誤處理機制,理解設計思想Go
- 深入 Go 的錯誤處理機制,學會如何使用Go
- 深入探討Java中的異常與錯誤處理Java
- IIS 7.5 解析錯誤 命令執行漏洞解決方案
- 雲伺服器如何解決DNS解析錯誤故障伺服器DNS
- 儲存過程ORA-04068之錯誤解析儲存過程
- MJExtension原理深入解析
- 深入解析 Java OutOfMemoryErrorJavaError
- 新特性解讀 | MySQL 8.0錯誤日誌深入過濾(上)MySql
- await 錯誤捕獲實現方式原始碼示例解析AI原始碼
- 關於VS報無法解析外部符號的錯誤符號
- Sql server內部函式fn_PhysLocFormatter存在解析錯誤SQLServer函式ORM
- ORACLE 異常錯誤 錯誤號大全Oracle
- 【GoLang 那點事】深入 Go 的錯誤處理機制 (一) 使用Golang
- ORA-01536: space quota exceeded for tablespace 錯誤的深入分析
- nginx 錯誤除錯Nginx除錯
- rac錯誤除錯除錯
- 深入解析DLL劫持漏洞
- ThreadLocal原理深入解析thread