zoukankan      html  css  js  c++  java
  • ORA-12518 TNS:监听程序无法分发客户机连接 解决办法

    查询的脚本:

    select count(*) from v$process; --取得数据库目前的进程数。
    
    select value from v$parameter where name = 'processes';     --取得进程数的上限。
    
    -- 修改的脚本, 须用 system 用户或是 sys 用户进行修改
    
    alter system set processes=1000 scope=spfile;
    
    alter system set sessions=1100 scope=spfile;

    我是用这一段来解决的

    SQL> connect sys/test as sysdba
    
    Was connected to an idle instance.
    
     
    
    SQL> show parameters dispatchers;
    
    ORA-01034: ORACLE not available
    
     
    
    SQL> connect SYS/SYSADMIN as sysdba
    
    Was connected to an idle instance.
    
     
    
    SQL> select count(*) from v$session;
    
     
    
    SQL> show parameter processes
    
     
    
    SQL> alter system set processes=1000 scope=spfile;
    
     
    
    SQL> alter system set sessions=1100 scope=spfile;
    
     
    
    SQL> select  name, (busy/(busy + idle)) "dispatcher busy rate" from v$dispatcher ; 
    
    
      重新登录就可以了
    环境:windows XP +Oracle 10g R2
    
     
    
    一、listener文件中的GLOBAL_DBNAME ,SID_NAME可能与实例名称不符,修改后,重启listener.
    
    二、专有服务器模式下processes值设的过小。
    
      可通过以下方法解决:
    
    
    
    
    
    
    
    
    1.cmd
    
    2.sqlplus
    
    3.connect sys/test as sysdba
    
    4.查看会话数、processes、sessions 
    
    
      
    
    
    
    
    
    
    
    
    SQL> select count(*) from v$session;
    
             COUNT(*)
    
      
    
            ----------
    
               45 
    
    
      
    
    
    
    
    
    
    
    
    SQL> show parameter processes
    
        NAME                                 TYPE        VALUE
    
        db_writer_processes                  integer     1
    
        gcs_server_processes                 integer     0
    
        job_queue_processes                  integer     10
    
        log_archive_max_processes            integer     2
    
        processes                            integer     50
    
    SQL> show parameter sessions
    
        NAME                                 TYPE        VALUE
    
        java_soft_sessionspace_limit         integer     0l
    
        icense_max_sessions                 integer     0
    
        license_sessions_warning             integer     0
    
        logmnr_max_persistent_sessions       integer     1
    
        sessions                             integer     60
    
        shared_server_sessions               integer 
    
    
      5.修改processes和sessions值:sessions=(1.1*process+5)
    
    
    
    
    
    
    
    
      SQL> alter system set processes=300 scope=spfile;
    
     系统已更改。
    
    SQL> alter system set sessions=335 scope=spfile;
    
       系统已更改。 
    
    
      6.重启数据库,使更改生效
    
      (不过我没有重启)
    
    三、共享模式下
    
    1.show parameters dispatchers;
    
    
    
    
    
    
    
    
    show parameters dispatchers;
    
    NAME TYPE VALUE
    
    dispatchers string (protocol=tcp)(service=oracle10xdb)
    
    max_dispatchers integer 
    
    
    2.确定是否有足够的dispatchers
    
    
    
    
    
    
    
    
    SQL> select name, (busy/(busy + idle)) "dispatcher busy rate" from v$dispatcher ; 
    
    NAME dispatcher busy rate
    
    ---- --------------------
    
    D000 .000121704
    
    D001 .000042597
    
    D002 .004935402 
    
    如果超过50%,则需要考虑增加更多的dispatchers; 
    
    
    3.改变dispathchers:
    
    
    
    
    
    
    
    
    SQL>alter system set dispatchers = '(protocol=tcp)(dispatchers=3)(service=oracle10xdb)';
    
    system altered 
    
    
    四、PGA内存设置太小
    
    注:该方法没试过。
    
    ------------------------------------------------------------------------------------------------------------------------------------------------
    
    按照如上我的解决方案:
    
    
    
    
    
    
    
    
    cmd调出命令行窗口 
    
    
    Microsoft Windows XP [Version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.
    
    C:Documents and SettingsAdministrator>sqlplus /nolog
    
    SQL*Plus: Release 10.2.0.1.0 - Production on 月 2月 20 13:45:30 2012
    
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    
     
    
    
    
    
    
    
    
    SQL> connect sys/test as sysdba
    
    Was connected to an idle instance.
    
     
    
    SQL> show parameters dispatchers;
    
    ORA-01034: ORACLE not available
    
     
    
    SQL> connect SYS/SYSADMIN as sysdba
    
    Was connected to an idle instance.
    
     
    
    SQL> select count(*) from v$session;
    
     
    
    SQL> show parameter processes
    
     
    
    SQL> alter system set processes=1000 scope=spfile;
    
     
    
    SQL> alter system set sessions=1100 scope=spfile;
    
     
    
    SQL> select  name, (busy/(busy + idle)) "dispatcher busy rate" from v$dispatcher ; 
    
    
      重新登录就可以了
  • 相关阅读:
    微信小程序 使用async await
    CSS currentColor 变量的使用
    wn.run万能命令
    (13)浮动布局(控制盒模型在页面的什么位置 什么是清浮动)
    (0)前端总结(HTML + CSS + JQ)
    (12)页面的布局(浮动布局)
    (11)盒模型
    (10)背景图片操作
    (9)字体操作
    (8)伪类选择器和鼠标悬停动画效果
  • 原文地址:https://www.cnblogs.com/wuyifu/p/4224170.html
Copyright © 2011-2022 走看看