0
点赞
收藏
分享

微信扫一扫

ORA-12519, 00000, “TNS:no appropriate service handler found“

Spinach菠菜 2022-03-24 阅读 59

问题

在这里插入图片描述

模拟报错

模拟会话数

for ((i=0;i<10;i++)); do  sqlplus / as sysdba  2>/dev/null & done

在这里插入图片描述

sqlplus db_username/db_password@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=IP地址)(PORT=1521)))(CONNECT_DATA=(ORACLE_SID=baipx1)))

在这里插入图片描述

查看参数
在这里插入图片描述
查看连接数
在这里插入图片描述

解决方案

方案1 临时解决

查看连接数最多的

select b.machine, b.program, count(*) 
from v$process a, v$session b where a.addr = b.paddr 
and b.username is not null
group by b.machine, b.program 
order by count(*) desc;

在这里插入图片描述
查看会话连接情况

SET LINESIZE 100
COLUMN spid FORMAT A10
COLUMN username FORMAT A10
COLUMN program FORMAT A45
 
SELECT s.inst_id,
       s.sid,
       s.serial#,
       p.spid,
       s.username,
       s.program
FROM   gv$session s
       JOIN gv$process p ON p.addr = s.paddr AND p.inst_id = s.inst_id
WHERE  s.type != 'BACKGROUND';

在这里插入图片描述
批量Kill 会话

SELECT 'alter system disconnect session ''' || sid || ',' || serial# ||
       ''' immediate;'
  FROM (SELECT SID, SERIAL#, INST_ID, MODULE, STATUS
          FROM gv$session S
         WHERE S.USERNAME IS NOT NULL
           AND S.LAST_CALL_ET >= 2 * 60 * 60
           AND S.STATUS = 'INACTIVE'
         ORDER BY INST_ID ASC);

在这里插入图片描述

SELECT SID, SERIAL#, INST_ID, MODULE, STATUS
FROM gv$session S
WHERE S.USERNAME IS NOT NULL
AND S.LAST_CALL_ET >= 2 * 60 * 60
AND S.STATUS = 'INACTIVE'
ORDER BY INST_ID ASC;

在这里插入图片描述

kill 会话

解决方案2 根本解决

show parameter processes
alter system set processes=2000 scope=spfile sid='*';

重启库

show parameter processes
举报

相关推荐

0 条评论