`

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 最大连接数问题

    ### Oracle 最大连接数问题详解 #### 一、问题背景 在实际的部署环境中,Oracle 数据库经常会遇到连接数受限的问题。特别是在使用如 WebLogic 或 WebSphere 这类中间件时,通过连接池的方式虽然可以有效提升数据源...

    oracle修改最大连接数

    ### Oracle 修改最大连接数 在Oracle数据库环境中,调整最大连接数是一项重要的系统管理任务,它直接影响到数据库能够同时处理的会话数量。本篇将详细探讨如何通过Oracle参数来修改最大连接数,包括理解相关参数的...

    Oracle最大连接数

    ### Oracle 最大连接数 #### 知识点一:Oracle 数据库连接参数 在 Oracle 数据库管理系统中,数据库实例能够处理的最大并发用户连接数量是由 `processes` 参数控制的。此参数定义了数据库实例可以同时支持的最大...

    修改oracle最大连接数

    ### 修改Oracle最大连接数 在Oracle数据库环境中,最大连接数是指系统可以同时处理的最大并发用户连接数量。这一参数对于确保数据库性能稳定、响应快速至关重要。本文将详细介绍如何修改Oracle数据库中的最大连接数...

    oracle超出最大连接数方案

    超出最大会话数和Ora-00020超出最大进程数错误的解决方法 Ora-00018 Maximum number of sessions exceeded超出最大会话数

    修改数据库最大连接数以及linux系统下ORACLE数据库启动多实例参照.pdf

    数据库最大连接数修改与 Oracle 多实例启动在 Linux 系统下 一、修改 Oracle 数据库允许的最大连接数 Oracle 数据库的最大连接数可以通过修改参数文件或使用 alter system 语句来实现。下面是修改最大连接数的步骤...

    oracle连接数问题

    Oracle数据库的连接数问题主要表现为当并发用户数量超过系统预设的最大值时,新的连接请求将被拒绝,导致业务中断或响应延迟。这种现象通常与Oracle数据库的内存管理和进程控制有关。为了解决这个问题,我们需要对...

    ORACLE查看并修改最大连接数

    在Oracle数据库管理中,了解和调整最大连接数是至关重要的任务,这关乎到系统的稳定性和性能。Oracle数据库允许并发用户连接进行数据操作,而“最大连接数”就是系统能够同时处理的最大用户会话数量。本篇文章将深入...

    修改Oracle数据库连接数

    当数据库用户无法连接,或者在连接后被意外断开,这往往是因为Oracle数据库在创建时,最大连接数被设置得较小。这样的设置虽然能够满足一般轻量级的使用,但在多用户并发访问时,就会显得捉襟见肘。由于数据库重启...

    强制释放Oracle数据连接方案

    首先,我们需要了解当前数据库的最大连接数限制。可以通过以下SQL语句查询当前系统参数`processes`的值来获得这一信息: ```sql SELECT COUNT(*) FROM v$process; ``` 这条命令返回的结果表示的是当前活动进程的...

    更改Oracle数据库的用户连接数

    在Oracle数据库中,控制用户最大连接数的关键参数是`processes`。这个参数定义了Oracle实例可以同时处理的最大进程数,其中包括了后台进程。因此,调整`processes`参数的值可以直接影响到用户能够同时建立的最大连接...

    如何修改Oracle连接数

    本文将详细介绍如何修改Oracle数据库的连接数,以及解决过程中可能遇到的问题。 1. **查看当前会话和参数值**: 在Oracle环境中,可以使用`SELECT`语句从`v$session`视图获取当前的会话数。`SHOW PARAMETER`命令则...

    oracle连接数修改

    oracle 连接数查看 修改 设置 最大连接数 回话连接数 查看修改

    修改数据库最大连接数以及linux系统下ORACLE数据库启动多实例借鉴.pdf

    Oracle数据库最大连接数修改和Linux系统下Oracle数据库多实例启动 一、修改Oracle数据库最大连接数 Oracle数据库的最大连接数是指数据库允许的最大并发连接数,该数值可以通过修改数据库参数来实现。下面是修改...

    用Java类来测试Oracle最大连接数的程序

    通过本篇文章的分析,我们了解到如何使用Java编写程序来测试Oracle数据库的最大连接数,并对遇到的问题进行了详细的解释和解决建议。这对于优化数据库性能、提高系统的稳定性和可扩展性具有重要的意义。

    修改Oracle最大远程链接数的方法

    ### Oracle最大远程链接数概述 Oracle数据库的远程链接数是指从远程客户端(如应用程序服务器、其他数据库等)连接到Oracle实例的连接数量。这一参数对于确保数据库能够有效处理来自不同地理位置或不同服务的并发...

    怎样查看oracle当前的连接数

    `processes`参数指定了Oracle实例可以支持的最大进程数,这间接反映了最大连接数的限制。 2. **查看`sessions`参数**: ```sql SHOW PARAMETERS sessions; ``` `sessions`参数定义了可以同时打开的最大会话数...

Global site tag (gtag.js) - Google Analytics