`

修改oracle最大连接数

阅读更多
1。查看当前会话数、processes和sessions值,发现session数和2个参数的值已经非常逼近
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 10月 9 15:
50:21 2006Copyright (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数据库环境中,调整最大连接数是一项重要的系统管理任务,它直接影响到数据库能够同时处理的会话数量。本篇将详细探讨如何通过Oracle参数来修改最大连接数,包括理解相关参数的...

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

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

    oracle 最大连接数问题

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

    Oracle最大连接数

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

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

    因此,合理配置数据库的最大连接数对于保障系统的稳定运行至关重要。 #### 一、理解Oracle数据库连接参数 在Oracle数据库中,控制用户最大连接数的关键参数是`processes`。这个参数定义了Oracle实例可以同时处理的...

    ORACLE查看并修改最大连接数

    本篇文章将深入探讨如何查看和修改Oracle数据库的最大连接数。 首先,我们来看如何查看当前的最大连接数。在Oracle中,这个参数通常由`PROCESSES`初始化参数控制。你可以通过SQL查询来获取这个值: ```sql SELECT ...

    修改Oracle数据库连接数

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

    如何修改Oracle连接数

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

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

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

    oracle连接数修改

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

    oracle连接数问题

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

    强制释放Oracle数据连接方案

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

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

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

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

    1. **增加最大连接数**:检查并修改Oracle实例的`init.ora`或`spfile`文件中的`OPEN_CURSORS`和`SESSIONS_MAX`参数。 2. **调整后台进程**:适当增加`DBWR_PROCESSES`、`LGWR_IO_SLAVES`等参数,以确保有足够的后台...

    怎样查看oracle当前的连接数

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

    ORACLE 最大连接数的问题

    然后 更改系统连接数 alter system set processes=1000 scope=spfile; 下面是具体的操作步骤与说明问题描述:客户端连接数据库报错 ORA-12516: TNS: 监听程序无法找到匹配协议栈的可用句柄 解决过程: 1。查看当前...

    数据库创建spfile及修改最大连接数

    本文详细介绍了如何在Oracle数据库中创建spfile以及如何修改最大连接数的过程。通过创建spfile,可以提高数据库的安全性和性能;而通过调整最大连接数,可以根据业务需求合理分配资源,避免不必要的性能瓶颈。这些...

Global site tag (gtag.js) - Google Analytics