2009-01-14 12:37 【轉】TNS-12516問題重現及預防處理
作者: Tomac(http://tomac.itpub.net)
發表於: 2008.09.04 10:53
分類: 資料庫
出處: http://tomac.itpub.net/post/8359/470150
---------------------------------------------------------------最近系統出現了TNS-12516問題,錯誤提示TNS:listener could not find available handler with matching protocol stack,
第一反應想到是listener出現了問題,於是把監聽停止,然後重新啟動。再從客戶端登入,錯誤依然。想到可能這個系統 , 沒有被釋放。好再系統為RAC配置,把該節點重新啟動,恢復正常。
總想再認真看一下此錯誤是如何發生的,於是在測試環境進行了測試。
(1)調小process引數
alter system process = 20 scope=spfile;
(2)重新啟動
shutdown immediate;
startup;
(3)從客戶端登入使用者。登入第5個的時候出現了錯誤的提示。
sqlplus tmp/tmp@db1
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 9月 3 19:27:26 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-12516: TNS:監聽器找不到符合協定堆疊的可用處理程式
輸入使用者名稱:
(4) 檢視登入情況。此時從主機登入也無法進行,process已經完全被使用。退出一個客戶端,
方可登入。檢視情況如下:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select count(*) from v$session;
COUNT(*)
----------
18
SQL> select count(*) from v$process;
COUNT(*)
----------
19
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
[oracle@T2 log]$ ps -ef | grep LOCAL
oracle 19371 1 0 16:56? 00:00:00 oraclendg(LOCAL=NO)
oracle 19893 1 0 17:01? 00:00:00 oraclendg(LOCAL=NO)
oracle 24865 1 0 17:54? 00:00:00 oraclendg(LOCAL=NO)
oracle 30558 1 1 18:52? 00:00:00 oraclendg(LOCAL=NO)
oracle 30593 18342 0 18:52 pts/0 00:00:00 grep LOCAL
[oracle@T2 log]$ ps -ef | grep ora_
oracle 18915 1 0 16:52? 00:00:00 ora_pmon_ndg
oracle 18917 1 0 16:52? 00:00:00 ora_psp0_ndg
oracle 18919 1 0 16:52? 00:00:00 ora_mman_ndg
oracle 18921 1 0 16:52? 00:00:00 ora_dbw0_ndg
oracle 18923 1 0 16:52? 00:00:00 ora_lgwr_ndg
oracle 18925 1 0 16:52? 00:00:00 ora_ckpt_ndg
oracle 18927 1 0 16:52? 00:00:01 ora_smon_ndg
oracle 18929 1 0 16:52? 00:00:00 ora_reco_ndg
oracle 18931 1 0 16:52? 00:00:00 ora_cjq0_ndg
oracle 18933 1 0 16:52? 00:00:01 ora_mmon_ndg
oracle 18935 1 0 16:52? 00:00:00 ora_mmnl_ndg
oracle 18968 1 0 16:52? 00:00:00 ora_qmnc_ndg
oracle 18978 1 0 16:52? 00:00:00 ora_q000_ndg
oracle 18980 1 0 16:52? 00:00:00 ora_q001_ndg
oracle 30595 18342 0 18:52 pts/0 00:00:00 grep ora_
(5) 結論,TNS-12516的確是process不足引起的。v$process比v$session多1在於PSEUDO程式。
(6) 引申問題:process 為20,而 v$process 中的資料為 19,並且PSEUDO沒有spid, 2個程式被什麼使用了呢?
(7) 雖然系統中process設定的足夠大,但是仍然會出現此問題。一些非正常退出系統的連線,會遺留在系統中佔用
process.可以使用下述sql檢查。
select t2.*
from v$sessioin t1, v$process t2
where t1.paddr(+) = t2.addr
and t1.paddr is null;
END.
發表於: 2008.09.04 10:53
分類: 資料庫
出處: http://tomac.itpub.net/post/8359/470150
---------------------------------------------------------------最近系統出現了TNS-12516問題,錯誤提示TNS:listener could not find available handler with matching protocol stack,
第一反應想到是listener出現了問題,於是把監聽停止,然後重新啟動。再從客戶端登入,錯誤依然。想到可能這個系統 , 沒有被釋放。好再系統為RAC配置,把該節點重新啟動,恢復正常。
總想再認真看一下此錯誤是如何發生的,於是在測試環境進行了測試。
(1)調小process引數
alter system process = 20 scope=spfile;
(2)重新啟動
shutdown immediate;
startup;
(3)從客戶端登入使用者。登入第5個的時候出現了錯誤的提示。
sqlplus tmp/tmp@db1
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 9月 3 19:27:26 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-12516: TNS:監聽器找不到符合協定堆疊的可用處理程式
輸入使用者名稱:
(4) 檢視登入情況。此時從主機登入也無法進行,process已經完全被使用。退出一個客戶端,
方可登入。檢視情況如下:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select count(*) from v$session;
COUNT(*)
----------
18
SQL> select count(*) from v$process;
COUNT(*)
----------
19
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
[oracle@T2 log]$ ps -ef | grep LOCAL
oracle 19371 1 0 16:56? 00:00:00 oraclendg(LOCAL=NO)
oracle 19893 1 0 17:01? 00:00:00 oraclendg(LOCAL=NO)
oracle 24865 1 0 17:54? 00:00:00 oraclendg(LOCAL=NO)
oracle 30558 1 1 18:52? 00:00:00 oraclendg(LOCAL=NO)
oracle 30593 18342 0 18:52 pts/0 00:00:00 grep LOCAL
[oracle@T2 log]$ ps -ef | grep ora_
oracle 18915 1 0 16:52? 00:00:00 ora_pmon_ndg
oracle 18917 1 0 16:52? 00:00:00 ora_psp0_ndg
oracle 18919 1 0 16:52? 00:00:00 ora_mman_ndg
oracle 18921 1 0 16:52? 00:00:00 ora_dbw0_ndg
oracle 18923 1 0 16:52? 00:00:00 ora_lgwr_ndg
oracle 18925 1 0 16:52? 00:00:00 ora_ckpt_ndg
oracle 18927 1 0 16:52? 00:00:01 ora_smon_ndg
oracle 18929 1 0 16:52? 00:00:00 ora_reco_ndg
oracle 18931 1 0 16:52? 00:00:00 ora_cjq0_ndg
oracle 18933 1 0 16:52? 00:00:01 ora_mmon_ndg
oracle 18935 1 0 16:52? 00:00:00 ora_mmnl_ndg
oracle 18968 1 0 16:52? 00:00:00 ora_qmnc_ndg
oracle 18978 1 0 16:52? 00:00:00 ora_q000_ndg
oracle 18980 1 0 16:52? 00:00:00 ora_q001_ndg
oracle 30595 18342 0 18:52 pts/0 00:00:00 grep ora_
(5) 結論,TNS-12516的確是process不足引起的。v$process比v$session多1在於PSEUDO程式。
(6) 引申問題:process 為20,而 v$process 中的資料為 19,並且PSEUDO沒有spid, 2個程式被什麼使用了呢?
(7) 雖然系統中process設定的足夠大,但是仍然會出現此問題。一些非正常退出系統的連線,會遺留在系統中佔用
process.可以使用下述sql檢查。
select t2.*
from v$sessioin t1, v$process t2
where t1.paddr(+) = t2.addr
and t1.paddr is null;
END.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-733370/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORA-609,ORA-12537問題處理
- 【Oracle】ORA-12537: TNS:connection closed 問題處理Oracle
- ora-12537 TNS:connection closed的問題處理
- create pfile時報ORA-27037問題的處理
- [轉]ORA-00020處理思路及防範
- 二、Git 問題彙總及處理Git
- GridLayout的使用及問題處理
- mysql常用語句及問題處理MySql
- GoldenGate常見問題及處理Go
- 比預想嚴重:FireFox現影像處理漏洞Firefox
- ORA-12516問題處理
- PHP5.2.4安裝中出現問題及處理過程PHP
- mysql5.7安裝及問題處理MySql
- 傳輸表空間及問題處理
- 處理網站中的重複內容問題網站
- 關於RVKRED07 信貸重構處理問題
- 【問題處理】ORA-00376 file xx cannot be read at this time
- BizTalk Adapter for FTP訪問小型機問題及處理APTFTP
- rman建立catalog過程及問題處理
- ORA-03137: TTC protocol internal error: [12333]分析及處理ProtocolError
- WINDOWS下面ORA-12560的問題處理Windows
- 資料庫主機重啟卡住問題處理分享資料庫
- 新建partition出現 device busy問題處理dev
- SPM12之fMRI批次預處理——NII檔案處理
- BREW常見問題解答(FAQ 5)-處理器和事件處理 (轉)事件
- 【問題處理】處理alert警告日誌中出現無法找到libocr*.so檔案問題
- React TSLint中常見的問題及處理方法React
- Centos7 配置靜態ip及問題處理CentOS
- Docker使用Calico網路模式配置及問題處理Docker模式
- 總結logminer使用及各種問題處理
- ORACLE 11G EM 配置命令及問題處理Oracle
- Ubuntu無法解析域名DNS指向127.0.0.53問題處理UbuntuDNS
- 處理問題的方法
- perl中文處理問題
- 漢字處理問題?
- xml處理的問題XML
- 貨品問題處理
- [git] git問題處理Git