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,用户重新登录系统,不再报错,故障排除。

相关推荐
wangchunting9 分钟前
VMware17 使用Rocky Linux 9.7系统
linux·运维·服务器
KmSH8umpK10 分钟前
Redis分布式锁进阶第十二篇
数据库·redis·分布式
hERS EOUS16 分钟前
MySQL 函数
数据库·mysql
gQ85v10Db41 分钟前
Redis分布式锁进阶第十六篇:番外高阶避坑篇 + 隐性埋点锁故障深挖 + 疑难杂症终极兜底方案
数据库·redis·分布式
S1998_1997111609•X1 小时前
论恶意注入污染蜜罐进程函数值取仺⺋以集团犯罪获取数据爬虫的轮系依据
网络·数据库·爬虫·网络协议·百度
许彰午1 小时前
# 从OOM到根治的完整过程——导出大数据的应急、根因分析与游标方案
java·大数据·数据库·系统架构
eLIN TECE1 小时前
nacos2.3.0 接入pgsql或其他数据库
数据库
青梅橘子皮1 小时前
Linux---权限
linux·运维·服务器
Jul1en_1 小时前
Claude 迁移 Codex 工作流迁移与更新
java·服务器·前端·后端·ai编程
曾几何时`1 小时前
MySQL(七)索引
数据库·mysql