开发者社区> 老牛的博客> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

ORA-12519错误的解决方案

简介: OERR: ORA-12519 TNS:no appropriate service handler found 客户端连接间歇性失败,报错ORA-12519 Cause: the l...
+关注继续查看

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:  检查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。

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

select * from v$license

=====================================================================================

在压力测试的时候,JDBC连接出现了ORA-12519错误。

连接是报错如下:

<2008-8-23 上午01时34分38秒 CST> <Warning> <JDBC> <BEA-001129> <Received exception while creating connection for pool "rac11g1": Listener refused the connection with the following error:

ORA-12519, TNS:no appropriate service handler found

The Connection descriptor used by the client was:

172.0.2.58:1521:rac11g1

检查了半天metalink,最终发现是由于Oracle初始化参数的设置问题导致了bug。

SQL> SHOW PARAMETER SESSION

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

java_max_sessionspace_size integer 0

java_soft_sessionspace_limit integer 0

license_max_sessions integer 0

license_sessions_warning integer 0

session_cached_cursors integer 50

session_max_open_files integer 10

sessions integer 600

shared_server_sessions integer

SQL> SHOW PARAMETER PROCESS

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

aq_tm_processes integer 0

db_writer_processes integer 2

gcs_server_processes integer 2

global_txn_processes integer 1

job_queue_processes integer 1000

log_archive_max_processes integer 4

processes integer 150

根据Oracle文档,SESSIONS和TRANSACTIONS的初始化参数应该源于PROCESSES参数,根据默认设置SESSIONS = PROCESSES * 1.1 + 5。

但是目前SESSIONS的设置达到了600,而PROCESSES的设置没有改变,仍然为150,导致了过多的用户会话连接到Oracle上时,Oracle没有足够的后台进程来支持这些会话。

详细的问题描述可以参考metalink的文档:Doc ID: Note:240710.1。

解决方法很简单,直接设置合适的PROCESSES产生就可以了。

=====================================================================================

修改process的值的方法二(针对LINUX系统):

先到ORACLE_BASE/admin/你的实例名/profile/目录下找到一个init.ora的文件,然后修改里面的process的值,然后将该文件拷贝到ORACLE_HOME/dbs目录下,并将文件重命名为initorcl.ora(其中的orcl为你的数据库实例名,我的数据库实例为orcl所以命名为 initorcl.ora)

用sys用户同时以sysoper身份登录sqlplus

即 sqlplus sys/sa as sysoper;

进入SQLPLUS后,先把数据库关闭,可以使用shutdown abort命令,也可以使用shutdown immediate命令,推荐使用shutdown abort命令。然后使用命令startup force即可,说白了就是重启数据库。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
54include对象
54include对象
9 0
在过滤器filter中获取spring管理bean的对象实例
在过滤器filter中获取spring管理bean的对象实例
41 0
laravel 5.6 登录验证码 captcha 引入
用户登陆注册, 不管前台后台, 如果掌握了手机短信和图形验证码, 那安全性会好很多, PHP上常见有两个captcha图形验证方式, gregwar/captcha和mews/captcha 参考下面的连接,用mews/captcha,感觉很方便。
6348 0
PLSQL不好用,提示ora-12514 错误解决方法
我的PLSQL不好用,提示ora-12514 错误时 我分两步干的: 1:用户名,密码,不写,提示错误后,cancel登陆 tools->preference左侧选->connection,右侧Oracle Home 里面选择OraDb10g_home1。
1386 0
Oracle 用户、对象权限、系统权限
原文:Oracle 用户、对象权限、系统权限   Oracle 用户、对象权限、系统权限 分类: Oracle 相关特性2010-06-23 11:48 16388人阅读 评论(1) 收藏 举报 oracleusersqltableconstraintssession --==...
714 0
Oracle 用户、对象权限、系统权限
Oracle 用户、对象权限、系统权限 分类: Oracle 相关特性2010-06-23 11:48 16388人阅读 评论(1) 收藏 举报 oracleusersqltableconstraintssession --=========================...
757 0
探索ORACLE之RMAN_07 参数文件丢失恢复
探索ORACLE之RMAN_07 参数文件丢失恢复 作者:吴伟龙   Name:Prodence Woo QQ:286507175  msn:hapy-wuweilong@hotmail.com   Oracle数据库的参数文件有两种一种是pfile(初始化参数文件),还有一种是spfile(服务器初始化参数文件);实际上spfile是pfile衍生过来的一新参数文件,应用9i以后的版本,在9i之前的版本都不支持,只支持pfile;而且pfile是不能通过oracle命令来进行备份的,只有spfile才支持备份。
880 0
探索ORACLE之RMAN_07控制文件丢失恢复
探索ORACLE之RMAN_07控制文件丢失恢复 作者:吴伟龙   Name:Prodence Woo QQ:286507175  msn:hapy-wuweilong@hotmail.com 1、     控制文件(controlfile)丢失恢复 基于控制文件的复合多路径性,它的丢失分为两种,一种是其中某个控制文件的损坏或丢失,另外一种是所有控制文件均丢失。
787 0
Oracle 用户、对象权限、系统权限
--================================ --Oracle 用户、对象权限、系统权限 --================================   一、用户与模式     用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作        SYS用户,缺省始终创建,且未被锁定,拥有数据字典及其关联的所有对象        SYSTEM用户,缺省始终创建,且未被锁定,可以访问数据库内的所有对象     模式(schema):是某个用户拥有所有对象的集合。
902 0
+关注
老牛的博客
喜欢研究数据库维护,互联网运营的朋友,可以加我QQ:52234858
519
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载