• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ORACLE 最大连接数的问题
    show parameter processes;
    然后
    更改系统连接数
    alter system set processes=1000 scope=spfile;
    下面是具体的操作步骤与说明
    问题描述:客户端连接数据库报错
    ORA-12516: TNS: 监听程序无法找到匹配协议栈的可用句柄
    解决过程:
    1。查看当前会话数、processes和sessions值,发现session数和2个参数的值已经非常逼近
    SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 10月 9 15:50:21 2006
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    SQL> conn / as sysdba
    已连接。
    SQL> select count(*) from v$session;
    COUNT(*)
    ----------
    45

    SQL> show parameter processes
    NAME TYPE VALUE
    ------------------------------------ ----------- ----------------------
    aq_tm_processes integer 0
    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_max_sessionspace_size integer 0
    java_soft_sessionspace_limit integer 0
    license_max_sessions integer 0
    license_sessions_warning integer 0
    logmnr_max_persistent_sessions integer 1
    sessions integer 60
    shared_server_sessions integer

    2。修改processes和sessions值
    SQL> alter system set processes=300 scope=spfile;
    系统已更改。
    SQL> alter system set sessions=300 scope=spfile;
    系统已更改。

    3。查看processes和sessions参数,但更改并未生效
    SQL> show parameter processes
    NAME TYPE VALUE
    ------------------------------------ ----------- ----------------------
    aq_tm_processes integer 0
    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_max_sessionspace_size integer 0
    java_soft_sessionspace_limit integer 0
    license_max_sessions integer 0
    license_sessions_warning integer 0
    logmnr_max_persistent_sessions integer 1
    sessions integer 60
    shared_server_sessions integer

    4。重启数据库,使更改生效
    SQL> shutdown immediate

    SQL> startup

    SQL> show parameter processes
    NAME TYPE VALUE
    ------------------------------------ ----------- ----------------------
    aq_tm_processes integer 0
    db_writer_processes integer 1
    gcs_server_processes integer 0
    job_queue_processes integer 10
    log_archive_max_processes integer 2
    processes integer 300
    SQL> show parameter sessions
    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
    logmnr_max_persistent_sessions integer 1
    sessions integer 335
    shared_server_sessions integer
    最后测试加大连接数到50,100都没报ORA-12516错误。

    有的时候我们需要调整oracle数据库的最大链接数,而这个链接数的调整是在oacle下的dbs目
    录下init.ora文件中调整的。
    ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:
    sessions=(1.1*process+5)
    但是我们增加process数时,往往数据库不能启动了。这因为我们还漏调了一个unix系统参数:
    它是核心参数中的semmns,这是unix系统的信号量参数。每个process会占用一个信号量。semmns
    调整后,需要重新启动unix操作系统,参数才能生效。不过它的大小会受制于硬件的内存或ORACLE
    SGA。范围可从200——2000不等。
    但是,Processes的修改不仅应该调整init.ora文件中的参数,而且应该调整OS的内核
    参数,象AIX,HPUX,Solaris,SCO,UNIXWare都是这样,OS的调整是需要重新启动的,而且这个参数
    的设置不能简单按照多少个终端要连到这个服务器上而定,
    最关键是考虑会有多少同时连上的session(在使用一些共享连接的中间件时,一般就不需要太大),
    当然还要考虑一些Oracle的后台进程,还有一些系统维护工作需要多一些连接等。
    我的atmp大前置机器上对oracle调整的时候,其使用的是unixware操作系统,在做链接数调整
    的时候,要先对核心参数进行调整。
    核心主要相关的参数的调整如下:
    SHMMAX 1000000000
    SHMMIN 1
    SHMMNI 200
    SHMSEG 15
    SEMMNI 1000
    SEMMSL 300
    SEMMNS 230
    SEMOPM 20
    其中semmni,semmns,semmsl要加大,至少要比processes大18 ;
    SEMMNI(10,10000;150):指定在核心中信号识别的数量。这是可以在任意给定时间被激活的唯
    一信号设置数量。缺省值是150。最大值由系统自动调整产生。
    SEMMSL(25,300;150):指定每个信号识别中信号量的最大值。缺省值是25。
    SEMMNS 除最大db外的所有db 的PROCESSES之和+2*最大db的PROCESSES+10*实例数。如3个实例进
    程数分别为100、100、200,则=(100+100)+2*200+10*3=630
    SEMOPM(10,20;10):指定在每个系统调用semop中能够被执行的信号操作量的最大值。
    缺省值是10。
    SHMMAX(131072,1073741824;524288):指定了共享内存部分大小的最大值。
    等于0.5×物理内存字节数
    SHMMNI(10,1000;100):指定了系统范围内共享内存标识的最大值。
    SHMSEG(6,15;6):指定了与每个进程相关连的共享内存块(或标识)的数量。缺省值是6。与每
    个进程相关连的共享内存块的最大值与进程拥有的未使用空间有关。因此,尽管一个进程拥有少于
    SHMSEG数值的共享内存块,它也有可能因为其有限的空间而不能与其它进程相联系。
    init.ora中调整为:
    processes = 50 # SMALL
    #processes = 100 # MEDIUM
    # processes = 200 # LARGE
    其中的processes就是要调整的最大连接数的数目,我们只要调整这个参数就可以了,其它的参数可
    以保持默认值。
    您可能感兴趣的文章:
    • 常用的Oracle doc命令(收藏)
    • Oracle 多行记录合并/连接/聚合字符串的几种方法
    • Oracle中字符串连接的实现方法
    • php连接oracle数据库及查询数据的方法
    • plsql连接oracle数据库报ora 12154错误解决方法
    • Oracle SQL Developer连接报错(ORA-12505)的解决方案(两种)
    • Oracle数据远程连接的四种设置方法和注意事项
    • PL/SQL Dev连接Oracle弹出空白提示框的解决方法分享
    • ORACLE查看并修改最大连接数的具体步骤
    • Excel VBA连接并操作Oracle
    • python连接oracle数据库实例
    • 深入分析C#连接Oracle数据库的连接字符串详解
    • Java开发Oracle数据库连接JDBC Thin Driver 的三种方法
    • C#利用ODP.net连接Oracle数据库的操作方法
    • oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法
    • Oracle 数据库连接查询SQL语句
    • 连接Oracle数据库时报ORA-12541:TNS:无监听程序的图文解决教程
    • Oracle客户端的安装与远程连接配置方法分享
    • WINDOWS下使用DOS命令行连接oracle数据库
    上一篇:oracle 删除重复数据
    下一篇:oracle 层次化查询(行政区划三级级联)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ORACLE 最大连接数的问题 ORACLE,最大,连接,数,的,问题,