ORACLE ORA-12520 : TNS:listener could not find available handler for requested type of server

简介:

    我们在客户端通过监听连接连接数据库的时候常常会遇到下面两个错误,特别在新搭建的环境中 

 
  1. ORA-12520: TNS:listener could not find available handler for requested type of server 
  2.  
  3. or 
  4.  
  5. ORA-12514: TNS:listener does not currently know of service requested in connect descriptor 

    这种情况的原因很多,也包括有很BUG会导致,下面介绍遇得最多的三种情况。

  1,10g rac环境

    在10g rac环境中,默认创建的数据库(不管是dbca还是命令方式创建的),默认local_listener没有配置在vip上面,所以会遇到上面的错误,这个错误在客户那里遇到过几次了。不过在11G后创建数据库会自己配置LOCAL_LISTENER到VIP地址上面。

    手动修改local_listener到vip地址就可以了。

 
  1. 节点1: 
  2. SQL>Alter system set LOCAL_LISTENER="(address=(protocol=tcp)(host=192.168.100.50)(port=1521))" scope=both sid='power1';  
  3.  
  4. 节点2: 
  5. SQL>Alter system set LOCAL_LISTENER="(address=(protocol=tcp)(host=192.168.100.50)(port=1521))" scope=both sid='power2';  

  2,process

     默认创建数据库的process值是150,一般我们在创建数据库的时候都会修改这个值的大小,但是有些工程师常常忘记修改这个值,这样当process达到149时,后面的连接就会报上面的错误,我们通过下面的视图来查看v$resource_limit.

 
  1. SQL> set lines 170 
  2. SQL> select * from gv$resource_limit where rownum <3; 
  3.  
  4.    INST_ID RESOURCE_NAME                  CURRENT_UTILIZATION MAX_UTILIZATION INITIAL_ALLOCATION   LIMIT_VALUE 
  5. ---------- ------------------------------ ------------------- --------------- -------------------- -------------------- 
  6.          1 processes                                       50              58        150                  150 
  7.          1 sessions                                        62              72        247                  247 

     如果processes的值达到149后,我们可以通过下面的命令来修改。

 
  1. SQL> alter system set processes=1000 scope=spfile sid='*'
  2.  
  3. System altered. 

    不过很悲剧,这个参数是静态参数,修改后要重启instance才会生效。

 3,pmon进程出问题

   我们现在的监听一般都是配置的动态监听,由pmon这个进程来负责监听的注册与管理,如果当pmon出现hang的时候,也就意思差监听可能出问题了。






     本文转自7343696 51CTO博客,原文链接:http://blog.51cto.com/luoping/1062670,如需转载请自行联系原作者



相关文章
|
Oracle 关系型数据库 数据库
ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist的原因分析
        今天突然接到同事电话,说oracle数据库连接不上了,我远程过去用pl/sql developer登录,提示ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist.意思是oracle无法使用,共享内存领域不存在。
2218 0
|
SQL Oracle 关系型数据库
Oracle数据库ORA-12516:“listener could not find available handler with matching protocol stack!“问题解决方法
Oracle数据库ORA-12516:“listener could not find available handler with matching protocol stack!“问题解决方法
526 0
Oracle数据库ORA-12516:“listener could not find available handler with matching protocol stack!“问题解决方法
|
Oracle 关系型数据库 Linux
|
Oracle 关系型数据库 数据库
RMAN-04006: error from auxiliary database: ORA-01034: ORACLE not available
在使用rman duplicate复制standby数据库的时候,由于standby数据库实例必须处于非mount状态,所以主数据库直接连接是会报错的,需要在standby数据库服务上的监听器上配置静态的服务名,如下:$GRID_HOME/network/admin/listener.
1464 0
|
15天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
56 7
|
1月前
|
Oracle 关系型数据库 数据库
|
1月前
|
关系型数据库 分布式数据库 数据库
PolarDB PostgreSQL版:Oracle兼容的高性能数据库
PolarDB PostgreSQL版是一款高性能的数据库,具有与Oracle兼容的特性。它采用了分布式架构,可以轻松处理大量的数据,同时还支持多种数据类型和函数,具有高可用性和可扩展性。它还提供了丰富的管理工具和性能优化功能,为企业提供了可靠的数据存储和处理解决方案。PolarDB PostgreSQL版在数据库领域具有很高的竞争力,可以满足各种企业的需求。
|
1月前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(3)
Oracle数据库基本概念理解(3)
18 2
|
1月前
|
Oracle 关系型数据库 数据库
如何利用 Docker 安装 Oracle 数据库
【2月更文挑战第14天】
94 0
|
15天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
41 5