Oracle并发连接数的设置方案

以下的文章会向你介绍Oracle并发连接数在什么的情况下是可以设置,在什么的情况下是不可以对其进行设置的,以及相关的查询解决方案的介绍。以下就是文章的具体内容的介绍,希望你会有所收获,

OERR: ORA-12519 TNS:no appropriate service handler found

客户端连接间歇性失败,报错ORA-12519

 

  1. Cause: the listener could not find any available service handlers that are  
  2. appropriate for the client connection.  
  3. Action: run "lsnrctl services" to ensure that the instance(s) have registered  
  4. with the listener, and are accepting connections.   

 

检查lsnrctl service ,instance已经注册,

状态显示ready时,可以连接。

 

  1. When the listener believes the current number of connections has reached maximum load,  
  2. it may set the state of the service handler for an instance to "blocked" and begin refusing  
  3. incoming client connections with either of the following errors: ora-12519 or ora-12516  

 

采用服务动态注册的方式,由PMON 通过SERVICE_UPDATE 来得到目前连接情况,但SERVICE_UPDATE 有时间间隔,

所以,listener显示的Oracle并发连接数和当前实际的连接数可能不同。

查询解决方法:

查看一下数据库现有的进程数,是否已经达到参数processes的大小。

1.select count(*) from v$process; 取得数据库目前的进程数。

2.select value from v$parameter where name = 'processes'; 取得进程数的上限。

3.如已达到上限,修改initSID.ora中的processes的大小。

4.重新启动数据库到nomount状态下,执行create spfile from pfile; 并startup open。

查询数据库自启动以来最大的并发数量

修改最大Oracle并发连接数:

 

  1. alter system set processes = 300 scope = spfile

重启数据库:

 

  1. shutdown immediate;  
  2. startup;  

 

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

 

  1. SELECT osuser, a.username,cpu_time/executions/1000000||'s', sql_fulltext,machine  
  2. from v$session a, v$sqlarea b  
  3. where a.sql_address =b.address order by cpu_time/executions desc;  

 

2

有的时候我们需要调整oracle数据库的最大链接数,而这个链接数的调整是在oacle下的dbs目录下init.ora文件中调整的。

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

 

  1. sessions=(1.1*process+5) 

但是我们增加process数时,往往数据库不能启动了。这因为我们还漏调了一个unix系统参数:它是核心参数中的semmns,这是unix系统的信号量参数。每个process会占用一个信号量。semmns调整后,需要重新启动unix操作系统,参数才能生效。不过它的大小会受制于硬件的内存或ORACLE SGA。范围可从200

你可能感兴趣的:(oracle)