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

相关推荐
zuoerjinshu4 小时前
sql实战解析-sum()over(partition by xx order by xx)
数据库·sql
maosheng11465 小时前
RHCSA的第一次作业
linux·运维·服务器
NocoBase5 小时前
【2.0 教程】第 1 章:认识 NocoBase ,5 分钟跑起来
数据库·人工智能·开源·github·无代码
Hoshino.417 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
恒创科技HK7 小时前
通用型云服务器与计算型云服务器:您真正需要哪些配置?
运维·服务器
Oueii8 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
未来龙皇小蓝8 小时前
【MySQL-索引调优】11:Group by相关概念
数据库·mysql·性能优化
2401_831824969 小时前
使用Fabric自动化你的部署流程
jvm·数据库·python
源远流长jerry9 小时前
在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
linux·服务器·网络·tcp/ip·ubuntu·架构·ip
njidf9 小时前
Python日志记录(Logging)最佳实践
jvm·数据库·python