不能连接Oracle数据库了,提示相关的错误
OERR: ORA-12519 TNS:no appropriate service handler found
客户端连接间歇性失败,报错ORA-12519
Cause: the listener could not find any available service handlers that are
appropriate for the client connection.
Action: run "lsnrctl services" to ensure that the instance(s) have registered
with the listener, and are accepting connections. 检查lsnrctl service ,instance已经注册,
状态显示ready时,可以连接。
When the listener believes the current number of connections has reached maximum load,
it may set the state of the service handler for an instance to "blocked" and begin refusing
incoming client connections with either of the following errors: ora-12519 or ora-12516
采用服务动态注册的方式,由PMON 通过SERVICE_UPDATE 来得到目前连接情况,但SERVICE_UPDATE 有时间间隔,
所以,listener显示的连接数和当前实际的连接数可能不同。
查询解决方法:
查看一下数据库现有的进程数,是否已经达到参数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。
查询数据库自启动以来最大的并发数量
修改最大连接数:
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;
2
有的时候我们需要调整oracle数据库的最大链接数,而这个链接数的调整是在oacle下的dbs目录下init.ora文件中调整的。
ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:
sessions=(1.1*process+5)
但是我们增加process数时,往往数据库不能启动了。这因为我们还漏调了一个unix系统参数:它是核心参数中的semmns,这是unix系统的信号量参数。每个process会占用一个信号量。semmns调整后,需要重新启动unix操作系统,参数才能生效。不过它的大小会受制于硬件的内存或ORACLE SGA。范围可从200——2000不等。
但是,Processes的修改不仅应该调整init<sid>.ora文件中的参数,而且应该调整OS的内核参数,象AIX,HPUX,Solaris,SCO,UNIXWare都是这样,OS的调整是需要重新启动的,而且这个参数的设置不能简单按照多少个终端要连到这个服务器上而定,最关键是考虑会有多少同时连上的session(在使用一些共享连接的中间件时,一般就不需要太大),当然还要考虑一些Oracle的后台进程,还有一些系统维护工作需要多一些连接等。
我的atmp大前置机器上对oracle调整的时候,其使用的是unixware操作系统,在做链接数调整的时候,要先对核心参数进行调整。
核心主要相关的参数的调整如下:
SHMMAX 1000000000
SHMMIN 1
SHMMNI 200
SHMSEG 15
SEMMNI 1000
SEMMSL 300
SEMMNS 230
SEMOPM 20
其中semmni,semmns,semmsl要加大,至少要比processes大18 ;
SEMMNI(10,10000;150):指定在核心中信号识别的数量。这是可以在任意给定时间被激活的唯一信号设置数量。缺省值是150。最大值由系统自动调整产生。
SEMMSL(25,300;150):指定每个信号识别中信号量的最大值。缺省值是25。
SEMMNS 除最大db外的所有db 的PROCESSES之和+2*最大db的PROCESSES+10*
实例数。如3个实例进程数分别为100、100、200,则=(100+100)+2*200+10*3=630
tyle="LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">SEMOPM(10,20;10):指定在每个系统调用semop中能够被执行的信号操作量的最大值。缺省值是10。
SHMMAX(131072,1073741824;524288):指定了共享内存部分大小的最大值。等于0.5
× 物理内存字节数
SHMMNI(10,1000;100):指定了系统范围内共享内存标识的最大值。
SHMSEG(6,15;6):指定了与每个进程相关连的共享内存块(或标识)的数量。缺省值是6。与每个进程相关连的共享内存块的最大值与进程拥有的未使用空间有关。因此,尽管一个进程拥有少于SHMSEG数值的共享内存块,它也有可能因为其有限的空间而不能与其它进程相联系。
init.ora中调整为:
processes = 50 # SMALL
#processes = 100 # MEDIUM
# processes = 200 # LARGE
From:http://gerrywxy.spaces.live.com/blog/cns!10FE174F8521A5F!206.entry
修改oracle 150 的最大连接数
使用sys,以sysdba权限登录:
c:"sqlplus /nolog
SQL>conn / as sysdba
SQL> show parameter processes;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processes integer 1
processes integer 150
SQL> alter system set processes=300 scope = spfile;
系统已更改。
SQL> show parameter processes;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processes integer 1
processes integer 150
SQL> create pfile from spfile;
文件已创建。
重启数据库,OK!
转至:http://edu.cnzz.cn/NewsInfo/26117.aspx
分享到:
相关推荐
当数据库连接数不够时,可能会出现客户端连接间歇性失败,报错 ORA-12519。 调整数据库连接数的步骤: 1. 查看当前会话数:使用SQL语句 `select count(*) from v$session;` 可以查看当前会话数。 2. 查看数据库...
在Istio环境中,间歇性连接重置问题是一个常见的挑战,尤其是在负载均衡和网络通信复杂的场景下。本文将深入探讨如何解决这个问题,基于题目中给出的【标题】"解决Istio中遇到的间歇性连接重置的问题1"和【描述】中...
这种模型非常适合物联网场景,其中设备可能需要间歇性地通信或者在有限的网络条件下工作。 MqttNetServer作为服务端,是整个MQTT通信的核心。它负责管理连接、处理客户端的订阅请求、存储发布到主题的消息以及将...
- **原因分析**: 间歇性无法获得IP地址可能是由于DHCP服务器问题或是设备配置错误。 - **解决方案**: 检查DHCP服务器设置,确认设备是否正确配置了IP获取方式。 17. **感觉ADSL上网速度比较慢** - **原因分析**...
针对单个工作站的间歇性错误,首先要排除账户和安全设置问题。通过网络测试仪检查用户到服务器的链路,测试网卡硬件和驱动,确认IP设置正确无重复。如果IP地址冲突,更改设置并重启设备以恢复正常网络连接。 以上...
与传统蓝牙相比,BLE设计用于间歇性或周期性的数据传输,非常适合传感器和其他电池供电的设备。 在Android中,BLE通信主要通过BluetoothGatt类来实现。这个类提供了连接、读写服务和特征值、订阅通知等功能。服务器...
如果某台服务器宕机但DNS仍分配流量,可能导致间歇性连接问题。 5. **检查DNS服务器转发器**:如果本地解析正常,但互联网解析不工作,检查DNS服务器是否使用转发器连接到ISP的DNS服务器。转发器的问题可能导致...
- 间歇性:周期性出现。 - 持久性:长期存在。 35. **冗余容错**: - 信息冗余:数据备份。 - 时间冗余:重复执行。 - 物理冗余:硬件冗余。 36. **RPC失败处理**: - 客户端定位失败、消息丢失、服务器崩溃...
- **事件触发器(Event Triggers):** 通过设置特定条件来触发日志记录,适用于追踪间歇性问题。 #### 操作系统和驱动程序工具 **应用场景:** 系统级的问题,如启动失败、资源耗尽或硬件故障。 - **启动日志记录...