OERR: ORA-12519 TNS:no appropriate service handler found
客户端连接间歇性失败,报错ORA-12519查询解决方法:查看一下数据库现有的进程数,是否已经达到参数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 foundThe 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 0java_soft_sessionspace_limit integer 0license_max_sessions integer 0license_sessions_warning integer 0session_cached_cursors integer 50session_max_open_files integer 10sessions integer 600shared_server_sessions integerSQL> SHOW PARAMETER PROCESSNAME TYPE VALUE------------------------------------ ----------- ------------------------------aq_tm_processes integer 0db_writer_processes integer 2gcs_server_processes integer 2global_txn_processes integer 1job_queue_processes integer 1000log_archive_max_processes integer 4processes 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即可,说白了就是重启数据库。MySQL使用like搜索不区分大小写方法之一Oracle数据库服务器磁盘满导致数据库无法登陆,通过清理归档文件解决相关资讯 Oracle基础教程
- Oracle块编程返回结果集详解 (11/10/2013 10:45:58)
- Oracle基础教程之设置系统全局区 (08/22/2013 14:24:00)
- Oracle基础教程知识点总结 (06/18/2013 07:43:32)
| - Oracle基础教程之tkprof程序详解 (10/22/2013 11:49:50)
- Oracle基础教程之sqlplus汉字乱码 (07/18/2013 16:30:00)
- Oracle 管理之 Linux 网络基础 (02/16/2013 18:37:35)
|
本文评论 查看全部评论 (0)