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

相关推荐
倔强的石头_17 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤3 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
Sinclair3 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
Rockbean4 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
爱可生开源社区4 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
茶杯梦轩4 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
随逸1774 天前
《从零搭建NestJS项目》
数据库·typescript
海天鹰5 天前
【免费】PHP主机=域名+解析+主机
服务器
加号35 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql