以下的文章会向你介绍Oracle并发连接数在什么的情况下是可以设置,在什么的情况下是不可以对其进行设置的,以及相关的查询解决方案的介绍。以下就是文章的具体内容的介绍,希望你会有所收获,
OERR: ORA-12519 TNS:no appropriate service handler found
客户端连接间歇性失败,报错ORA-12519
Cause:thelistenercouldnotfindanyavailableservicehandlersthatare appropriatefortheclientconnection. Action:run"lsnrctlservices"toensurethattheinstance(s)haveregistered withthelistener,andareacceptingconnections.
检查lsnrctl service ,instance已经注册,
状态显示ready时,可以连接。
Whenthelistenerbelievesthecurrentnumberofconnectionshasreachedmaximumload, itmaysetthestateoftheservicehandlerforaninstanceto"blocked"andbeginrefusing incomingclientconnectionswitheitherofthefollowingerrors:ora-12519orora-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并发连接数:
altersystemsetprocesses=300scope=spfile;
重启数据库:
shutdownimmediate; startup;
查看当前有哪些用户正在使用数据
SELECTosuser,a.username,cpu_time/executions/1000000||'s',sql_fulltext,machine fromv$sessiona,v$sqlareab wherea.sql_address=b.addressorderbycpu_time/executionsdesc;
2
有的时候我们需要调整oracle数据库的***链接数,而这个链接数的调整是在oacle下的dbs目录下init.ora文件中调整的。
Oracle并发连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:
sessions=(1.1*process+5)
但是我们增加process数时,往往数据库不能启动了。这因为我们还漏调了一个unix系统参数:它是核心参数中的semmns,这是unix系统的信号量参数。每个process会占用一个信号量。semmns调整后,需要重新启动unix操作系统,参数才能生效。不过它的大小会受制于硬件的内存或ORACLE SGA。范围可从200