数据库ORA-12516/12519错误

项目场景:

提示:这里简述项目相关背景:
新开发的系统需要去连接已经运行一段时间的数据库服务器读写表中的数据


问题描述

提示:这里描述项目中遇到的问题:

在新开发系统中测试连接数据库失败,提示错误代码:ORA-12519,无法连接数据库。在数据库服务器本机上使用SYSTEM用户测试连接也失败,提示错误代码:ORA-12516;在数据库服务器上以SYSTEM用户登录报错


原因分析:

出现该错误的原因是到达了PROCESSES/SESSIONS参数指定的最大值限制,PMON进程会会告诉监听器当前配置的限制,有空闲连接时,才会允许新的连接进来,通俗讲就是:数据库里当前的连接数已经超过它能够处理的最大值。


解决方案:

提示:这里填写该问题的具体解决方案:

由于已知连接该数据库的进程数量远远小于当时配置的最大连接数,需要排查是哪个进程或服务器在不断连接占用监听程序。
(1)首先查询连接数(process)配置

1show parameter processes---查看连接数配置
2select count(*) from v$process;----查看当前连接数	

(2)登录数据库服务器,打开任务管理器,在 性能 页中打开资源监视器,在网络一栏中找到TCP连接—端口号排序(Oracle默认1521),可以看到大量来自同一服务器的请求。
大量来自同一服务器的请求
(3)经过排查为新上系统采用了断线重连机制,数据断开连接后自动重新连接,未能成功连接且在程序里没有设置最大尝试次数或终止,造成了此故障发生。由于新上系统还在测试阶段中,直接重启新系统服务器成了最方便的方式,重启完成后,数据库登录恢复正常。
(4)也可以通过增加连接数(process)和session的方式来处理:

1  show parameter processes---查看连接数配置
2  select count(*) from v$process----查看当前连接数	
3  show parameter session----查看session配置
4  select count(*) from v$session----查看当前session数	
5  alter system set processes=300 scope=spfile---增加连接数
6  alter system set session=335 scope=spfile--增加session数=1.1*连接数+5

修改完成后需要重启数据库才会生效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值