Oracle 服务器 ORA-12516 错误的处理过程

Oracle 服务器 ORA-12516 错误的处理过程

某用户的双节点Oracle服务器集群,用户在连接Oracle服务器时报如下错误:

查询资料发现,该错误出现的原因通常是到达了PROCESSES/SESSIONS参数指定的最大值限制,即数据库中当前的连接数已经超过它能够处理的最大值。

1、查询数据库中PROCESSES/SESSIONS参数的值,命令如下:

sql 复制代码
SELECT name, value FROM v$parameter WHERE name IN ('processes', 'sessions');

2、查询当前会话数与进程数,命令如下:

sql 复制代码
-- 查看当前会话数
SELECT COUNT(*) FROM v$session;

-- 查看当前进程数
SELECT COUNT(*) FROM v$process;

3、查看活跃会话详情,命令如下:

sql 复制代码
SELECT username, program, machine, COUNT(*) 
FROM v$session 
GROUP BY username, program, machine 
ORDER BY COUNT(*) DESC;

查询结果如下图所示:

发现有一个用户INTERFACE_HLYY创建了大量的连接。

4、使用如下命令终止会话:

sql 复制代码
ALTER SYSTEM KILL SESSION 'sid,serial#';

使用如下命令查询用户INTERFACE_HLYY的会话信息,并生成相应的终止会话的ALTER SYSTEM ...代码:

sql 复制代码
SELECT 'ALTER SYSTEM KILL SESSION ''' || sid || ',' || serial# || ''' IMMEDIATE;' 
FROM v$session 
WHERE username = 'INTERFACE_HLYY' 
AND status = 'INACTIVE'
AND last_call_et > 3600; -- 超过1小时不活动的会话

执行结果如下图所示:

执行上述命令生成的终止会话的代码。

重新查询当前会话数与进程数,发现已经降低到不到500,用户重新登录系统,不再报错,故障排除。

相关推荐
xiaogai_gai1 小时前
仅查询策略实战:从金蝶云·星空旗舰版定时拉取收料通知单
大数据·数据库·python
数据工匠老o1 小时前
异构数据库DDL同步:260条链路的结构变更自动适配方案
数据库·架构
张宇Joaquin2 小时前
AMD uProf 工具采集微架构特征使用介绍
服务器
这个DBA有点耶2 小时前
银行业市占率最高的国产数据库是谁?先搞清楚“市占率”的四种口径
数据库·程序员·架构
老李IT笔记2 小时前
连不上不一定是网不好:新系统不认的服务端配置卡在哪一档
运维·服务器·网络
刚入门的大一新生3 小时前
Linux-进程池
linux·运维·服务器
用户6279947182623 小时前
南大通用GBase 8a之基于审计日志的冷温热数据分析
数据库
数据库小学妹3 小时前
数据库运维五级成熟度:监控、备份、高可用怎么串起来
运维·数据库·监控
一个天蝎座的程序猿3 小时前
为了给报表提速,我把金仓KES的列存储折腾了个遍:聊聊KES的技术能力
数据库
飞越未来云城的霓虹飞猪3 小时前
AI 数据库地图:从 PostgreSQL 到向量数据库,一次看懂 AI 时代的数据底座
数据库