Oracle連接滿了,無(wú)法登錄數(shù)據(jù)庫(kù),如何分析連接來(lái)源?
問(wèn)題現(xiàn)象:
收到數(shù)據(jù)庫(kù)連接數(shù)使用率高的告警:
[ID:xxx][CJC測(cè)試系統(tǒng):XXX][數(shù)據(jù)庫(kù)],連接數(shù)使用率偏高,the current value is 95.58 %[CJC],故障發(fā)生時(shí)間:2025-02-28 xx:xx:xx
嘗試登錄數(shù)據(jù)庫(kù):
cjc-db-01# sqlplus / as sysdba
SQL> select * from v$resource_limit;
select * from v$resource_limit
*
ERROR at line 1:
ORA-01012: not logged on
Process ID: 0
Session ID: 0 Serial number: 0
SQL> select status from v$instance;
select status from v$instance
*
ERROR at line 1:
ORA-01012: not logged on
Process ID: 0
Session ID: 0 Serial number: 0
告警日志如下:
Process W004 submission failed with error = 20
ORA-00020: maximum number of processes (430) exceeded
ORA-20 errors will not be written to the alert log for
the next minute. Please look at trace files to see all
the ORA-20 errors.
問(wèn)題分析:
臨時(shí)解決方案 重啟應(yīng)用 或 重啟數(shù)據(jù)庫(kù)釋放連接,但是如果不定位到連接來(lái)源,重啟后問(wèn)題仍有可能發(fā)生。
數(shù)據(jù)庫(kù)服務(wù)器,查看連接來(lái)源,可以通過(guò)netstat或監(jiān)聽(tīng)日志查看,本次通過(guò)netstat進(jìn)行查看:
netstat -ano | grep 1521 > 0228.log
more 0228.log
cat 0228.log|wc -l
445
cat 0228.log | grep 192.168.0.101|wc -l
394
可以看到,數(shù)據(jù)庫(kù)連接來(lái)源主要是 192.168.0.101 。
繼續(xù)查看 192.168.0.101 服務(wù)器上什么應(yīng)用連接的數(shù)據(jù)庫(kù):
登錄到這臺(tái)服務(wù)器:
通過(guò) netstat 命令檢查,查看到是 pid=6666 的java程序在連接數(shù)據(jù)庫(kù)。
root@cjc-xx-02:#netstat -lanp|grep 1521|more
tcp 0 0 192.168.0.101:**** 192.168.0.103:1521 ESTABLISHED 6666/java
tcp 0 0 192.168.0.101:**** 192.168.0.103:1521 ESTABLISHED 6666/java
tcp 0 0 192.168.0.101:**** 192.168.0.103:1521 ESTABLISHED 6666/java
tcp 0 0 192.168.0.101:**** 192.168.0.103:1521 ESTABLISHED 6666/java
......
當(dāng)前還有283個(gè)連接
root@cjc-xx-02:#netstat -lanp|grep 1521|wc -l
283
查看對(duì)應(yīng)的進(jìn)程
root@cjc-xx-02:#ps -ef|grep 6666
tomcat 6666 1 0 Feb24 ? 00:16:38 java -jar -Xms****M -Xmx****M xxxtestxxx.jar --spring.profiles.active=xxx
查找對(duì)應(yīng)的文件
root@cjc-xx-02:#find / -name xxxtestxxx.jar
解決方案:
通過(guò)服務(wù)器IP,進(jìn)程名,文件名等可以精確定位到具體的應(yīng)用,可以溝通臨時(shí)停止或重啟此應(yīng)用,最后排查此應(yīng)用連接不釋放的問(wèn)題。