ORA-12537:TNS:连接关闭   -------数据库最大连接数问题

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

问题:

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

分析:

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

解决方法:


参考:

http://blog.sina.com.cn/s/blog_4df2251d0100hkzv.html --感谢这位网友,写得很详细

第一步,在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,内存的使用率,如果主机负载过高,就得考虑硬件扩容,如果主机资源仍然较闲,则表明所设置的数据库连接数在此主机资源是可以匹配的。

时间: 2024-10-16 03:20:45

ORA-12537:TNS:连接关闭   -------数据库最大连接数问题的相关文章

错误:ORA-12537: TNS: 连接关闭

问题描述: 今天早上上班的时候,突然同事跟我说,昨天访问尚好的数据库现在无法正常连接.服务器上已连接的项目没有报连接失败,但是无法进行正常的数据访问.通过PL/SQL工具连接的时候,出现"错误:ORA-12537:TNS 连接关闭"错误. 问题分析: 由于之前出现过由于数据库的监听突然挂掉,导致连接异常,虽然那时通过PL/SQL工具连接时报的异常不是这个,但是为了排除这方面的原因,还是检查了下数据库的监听情况. 通过命令lsnrctl status,查看到数据库的监听是正常的. 因为无

plsql 连接oralce数据库,报ora 12557 tns 协议适配器不可加载错误

使用plsql 连接oracle 数据库报ora 12557 错误: 解决方案: 1:首先确保服务中的service以及监听器都开启 2:F:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN下的tnsnames配置文件中的字符串连接是否配置 这个路径根据你的oracle安装路径有关 3:如果还是不行,删除注册表里面的环境变量oracle_home,默认只想路径 cmd——rededit—— HKEY_LOCAL_MECHINE——S

Win7x64中使用PowerDesigner连接Oralce数据库报“[Oracle][ODBC][Ora]ORA-12154:TNS:无法解析指定的连接标识符”错误解决方法

错误描述 操作系统是Win7 x64,Oracle服务端是Oracle11g x64,客户端是Oracle10gR2 x86. 使用PL-SQL Developer连接正常 使用系统ODBC连接正常.这里要注意的是,64位系统默认启动的是64位ODBC数据源管理器,默认指向的是服务端连接,所以需要为Oracle服务端也配置TNS Service Name,否则同样会连接报错.PowerDesigner默认启动的是32位的ODBC数据源管理器,程序路径为“%SystemRoot%\SysWOW64

oracle用cmd货plsql登录oracle实例提示“ORA :12170”TNS:连接超时

1,cmd ------ ping ip地址:查看网络问题,能否ping通ip地址 2,cmd ------ tnsping ip地址(或服务器的实例名SID)“ ①如果出现"TNS-12535:操作超时" 提示,可能是服务器端防火墙没有关闭,关闭防火墙即可: ②如果出现下图显示,则证明没有问题: ” 3,cmd ------ netstat - na 查看1521端口是否关闭 ①如果显示关闭,则需要在防火墙设置中将1521端口设为例外: ②如果出现下图显示,则证明没有问题: 4,cm

java连接oracle数据库,关闭连接出现异常:java.sql.SQLRecoverableException: IO Error: Connection reset

java.sql.SQLRecoverableException: IO Error: Connection reset at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:612) at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:5094) at com.sms.send.StartTaskNew.run(SmsSend.java

PHP中用PDO方法打开连接关闭mysql数据库

代码如下: 1 <meta http-equiv="content-type" content="text/html" charset="utf-8"/> 2 <h1>用PDO方法连接数据库!-姚远的博客</h1> 3 <form method="POST" action="<?php echo iconv("GB2312","UTF-8&

连接oracle数据库出现:ORA-12505,TNS:listener does not currently know of SID given in connect descriptor

Java使用 jdbc:oracle:thin:@11.1.0.14:1521:orcl 连接oracle数据库出现: ORA-12505,TNS:listener does not currently know of SID given in connect descriptor 错误. 表明服务器上sid为orcl的服务并不存在,可以换个方式直接连接服务:把最后一个冒号换为斜杠.顺利连上数据库 jdbc:oracle:thin:@11.1.0.14:1521/orcl

PHP中用mysqli面向对象打开连接关闭mysql数据库

代码如下: 1 <meta http-equiv="content-type" content="text/html" charset="utf-8"/> 2 <h1>用mysqli面向对象方法连接数据库!-姚远的博客</h1> 3 <form method="POST" action="<?php echo htmlspecialchars($_SERVER['PHP

PHP中用mysqli面向过程打开连接关闭mysql数据库

代码如下: 1 <meta http-equiv="content-type" content="text/html" charset="utf-8"/> 2 <h1>用mysqli面向过程方法连接数据库!-姚远的博客</h1> 3 <form method="POST" action="<?php echo iconv("GB2312","