博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ORA-12537:TNS:连接关闭 -------数据库最大连接数问题
阅读量:6231 次
发布时间:2019-06-21

本文共 2349 字,大约阅读时间需要 7 分钟。

端午节来加班,本来以为系统会运行正常,没想到数据库出现问题。

问题:

我自己用PLSQL登录实验,我也登陆不了,可是让同事实验,他一会能够登录,一会不能够登录。应用还是能够正常访问,只是PLSQL登录异常。

分析:

基于这种情况去百度,有的说是配置文件有问题,有的说是连接数,因为我的配置文件没有修改过,以前也是能够正常使用的,所以应该是链接数的问题。我们公司一个主要业务系统,业务很多,但是之前使用都是好好的,想到昨天我们组新搭建了一套环境,也是连接的同一个数据库,那就确定了,就是链接数的问题。

解决方法:


参考:

 --感谢这位网友,写得很详细

第一步,在cmd命令行,输入sqlplus / as sysdba

第二步,

1. 查看processes和sessions参数

  SQL> show parameter processes

  NAME                                  TYPE         VALUE

  db_writer_processes                  integer     1

  gcs_server_processes                 integer     0

  job_queue_processes                  integer     10

  log_archive_max_processes            integer     2

  processes                            integer     50

  SQL> show parameter sessions

  NAME                                  TYPE         VALUE

  license_max_sessions                 integer     0

  license_sessions_warning             integer     0

  logmnr_max_persistent_sessions       integer     1

  sessions                             integer     60

  shared_server_sessions               integer

  2. 修改processes和sessions值

  SQL> alter system set processes=300 scope=spfile;

  系统已更改。

  SQL> alter system set sessions=335 scope=spfile;

  系统已更改。

  3. 修改processes和sessions值必须重启oracle服务器才能生效

  ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:

  sessions=(1.1*process+5)

  摘(二)

  查询数据库当前进程的连接数

  select count(*) from v$process; --数据库中执行

    linux命令行执行

    ps -ef|grep LOCAL=NO|grep -v grep|cut -c 9-15|wc -l

    临时取消一部分连接,不能做到彻底解决问题。

    ps -ef|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9

  查看数据库当前会话的连接数:

  elect count(*) from v$session;

  查看数据库的并发连接数:

  select count(*) from v$session where status='ACTIVE';

  查看当前数据库建立的会话情况:

  select sid,serial#,username,program,machine,status from v$session;

 查询数据库允许的最大连接数:

  select value from v$parameter where name = 'processes';

  或者:show parameter processes;

  修改数据库允许的最大连接数:

  alter system set processes = 300 scope = spfile;

  (需要重启数据库才能实现连接数的修改)

  重启数据库:

  shutdown immediate;

  startup;

  查看当前有哪些用户正在使用数据:

  select osuser,a.username,cpu_time/executions/1000000||'s',sql_fulltext,machine

  from v$session a,v$sqlarea b

  where a.sql_address = b.address

  order by cpu_time/executions desc;

  备注:UNIX 1个用户session对应一个操作系统process,而Windows体现在线程。

  启动oracle

  su - oracle

  sqlplus system/ as sysdba   //进入sql

  startup                                      //启动数据库

  lsnrctl start                               //启动监听

  sqlplus "/as sysdba"

  shutdown immediate;

  startup mount;

  alter database open;

增加最大连接数有什么影响:

一般来说实际连接数的增长才会对增加系统资源的消耗,修改最大连接数只是允许数据库的连接数限制增加了,需要密切关注连接数上升主机方面的性能cpu,内存的使用率,如果主机负载过高,就得考虑硬件扩容,如果主机资源仍然较闲,则表明所设置的数据库连接数在此主机资源是可以匹配的。

本文转自aaa超超aaa 51CTO博客,原文链接:http://blog.51cto.com/10983441/1787740

转载地址:http://jhxna.baihongyu.com/

你可能感兴趣的文章
p4570 [BJWC2011]元素
查看>>
基础数据结构-线性表-顺序表的合并操作
查看>>
MFC 程序入口和执行流程
查看>>
Spring+SpringMVC+MyBatis深入学习及搭建(五)——动态sql
查看>>
【7】异常处理
查看>>
201621123057 《Java程序设计》第9周学习总结
查看>>
题目1081:递推数列 (矩阵快速幂解递推式)
查看>>
【转】 FRTO—虚假超时剖析
查看>>
html区块元素
查看>>
json数据结构
查看>>
使用classList来实现两个按钮样式的切换
查看>>
二分匹配 飞行员配对方案问题
查看>>
几个著名java开源缓存框架的介绍
查看>>
CSS核心内容:层叠和继承
查看>>
windwos phone 的listbox 的各种细节
查看>>
Resin
查看>>
理解Android虚拟机体系结构(转)
查看>>
Redis系列之(一):10分钟玩转Redis(转)
查看>>
调试逆向分为动态分析技术和静态分析技术(转)
查看>>
上传文件的大小限制 专题
查看>>