zoukankan      html  css  js  c++  java
  • ORA-12518: TNS:listener could not hand off client connection

    一、ORA-12518: TNS:listener could not hand off client connection

    在团队成员增多时,常常出现“无法分发client连接”等问题。在网上搜索一番后,终于攻克了该问题,现将解决方式总结例如以下,以供參考和以后备用。

    更改SPFILEORCL.ORA文件里的process

    F:oracleproduct10.2.0db_1databaseSPFILEORCL.ORA

    原因:团队成员增多,原有数据库设置不够用,导致连接plsql和启动tomcat时常常抛出“无法分发client连接”的异常。

    解决方式:

    第一步:调整process和session值

    1. 检查process和session是否够用。

    a)使用plsql连接到oracle,查看process进程数:

    select count(*) from v$process; --取得数据库眼下的进程数。
    select value from v$parameter where name = 'processes';     --取得进程数的上限。
    b)查看session会话数:

    select count(*) from v$session; --取得数据库眼下的会话数。
    select value from v$parameter where name = 'sessions'; --取得会话数的上限。
    查看当前process和sessions是否接近上限值。若接近,能够将其增大。

    2. 调整这两个參数值大小。

    系统进程数process和系统会话数session之间存在一个关系:

    process数=session数*1.1+5

    我们在配置时參考该规律进行设定。

    a)  改动process值

    alter system set processes=1000 scope=spfile;   --将process值改为1000

    b)  改动session值

    alter system set sessions=1105 scope=spfile;    --将sessions值改为1105

    3. 备份pfile,重新启动oracle

    a) 改动完毕后,备份pfile

    create pfile from spfile;   --从spfile(执行时配置)创建pfile(系统配置)

    c)  重新启动oracle

    重新启动的方法有非常多种,能够重新启动oracle服务,或者重新启动数据库。Windows下能够直接重新启动服务。


    第二步:改动dispatchers个数

    假设第一步解决不了问题。能够进行第二步的操作。

    1.查看当前dispatchers个数,和dispatchers使用率

    select name,busy,status,accept,idle from v$dispatcher;  --查看当前dispatchers个数和部分信息。一般默认安装的库仅仅有一个。

    select name,(busy/(busy+idle))*100 "busy rate%" from v$dispatcher; --查看dispatchers使用率

    假设使用率大于50%,则要考虑添加dispatchers个数。

    2.调整dispatchers个数

    alter system set dispatchers='(protocol=tcp)(dispatchers=3)(service=youroracleservicenameXDB)';

    --改动dispatchers个数为3.

    3. 重新启动oracle。


    当重新启动服务的时候,出现没有监听程序的错误


    二.ORA-12541: TNS:无监听程序

    1:F:oracleproduct10.2.0db_1 etworkadminlistener.ora 中加入例如以下代码:

     (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = F:oracleproduct10.2.0db_1)
          (PROGRAM = extproc)
        )    

    # listener.ora Network Configuration File: F:oracleproduct10.2.0db_1
    etworkadminlistener.ora
    # Generated by Oracle configuration tools.
    
    SID_LIST_LISTENER =
      (SID_LIST =
    	 (SID_DESC =
        (GLOBAL_DBNAME = orcl)
        (ORACLE_HOME = F:oracleproduct10.2.0db_1)
        (SID_NAME = orcl)
        ) 	
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = F:oracleproduct10.2.0db_1)
          (PROGRAM = extproc)
        )    
      )
    
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
          (ADDRESS = (PROTOCOL = TCP)(HOST = wl-fe65b9e18e24)(PORT = 1521))
        )
      )
    
    注意:重新启动 listener 和service  


    因为上述更改了spfileorcl.ora,可能导致此文件丢失,导致 oracle 不可用

    三、oralce不可用

    创建SPFILEORCL.ORA文件,注意:SPFILEORCL,ORCL是实例的名字

    F:oracleproduct10.2.0db_1databaseSPFILEORCL.ORA

    cmd中执行:

    sqlplus /nolog
    conn / as sysdba;
    create spfile='F:oracleproduct10.2.0db_1databaseSPFILEORCL.ORA' from pfile='F:oracleproduct10.2.0adminorclpfileinit.ora.7292014151052'; 

    故当出现此错误的是,先创建SPFILEORCL.ORA文件,然后更改监听错误,重新启动监听和服务就可以

  • 相关阅读:
    [ jquery 选择器 :hidden ] 此方法选取匹配所有不可见元素,或者type为hidden的元素
    剑指 Offer 03. 数组中重复的数字 哈希
    LeetCode 1736. 替换隐藏数字得到的最晚时间 贪心
    Leetcode 1552. 两球之间的磁力 二分
    Leetcode 88. 合并两个有序数组 双指针
    LeetCode 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?
    LeetCode 1743. 相邻元素对还原数组 哈希
    LeetCode 1745. 回文串分割 IV dp
    剑指 Offer 47. 礼物的最大价值 dp
    剑指 Offer 33. 二叉搜索树的后序遍历序列 树的遍历
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4373598.html
Copyright © 2011-2022 走看看