oracle 连接相关

有的时候我们需要调整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要加大至少要比processes18 

SEMMNI1010000150):指定在核心中信号识别的数量。这是可以在任意给定时间被激活的唯一信号设置数量。缺省值是150。最大值由系统自动调整产生。

SEMMSL25300150):指定每个信号识别中信号量的最大值。缺省值是25
SEMMNS 
除最大db外的所有db PROCESSES之和+2*最大dbPROCESSES+10*

实例数。如3个实例进程数分别为100100200,则=100+100+2*200+10*3=630

    SEMOPM102010):指定在每个系统调用semop中能够被执行的信号操作量的最大值。缺省值是10

    SHMMAX1310721073741824524288):指定了共享内存部分大小的最大值。等于0.5

× 物理内存字节数

SHMMNI101000100):指定了系统范围内共享内存标识的最大值。

SHMSEG6156):指定了与每个进程相关连的共享内存块(或标识)的数量。缺省值是6。与每个进程相关连的共享内存块的最大值与进程拥有的未使用空间有关。因此,尽管一个进程拥有少于SHMSEG数值的共享内存块,它也有可能因为其有限的空间而不能与其它进程相联系。


init.ora中调整为:

processes = 50                                           # SMALL  

#processes = 100                                            # MEDIUM 

# processes = 200                                            # LARGE  


From:http://gerrywxy.spaces.live.com/blog/cns!10FE174F8521A5F!206.entry

 

修改oracle 150 的最大连接数

使用sys,以sysdba权限登录:

c:\sqlplus /nolog
SQL>conn / as sysdba

SQL> show parameter processes;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processes integer 1
processes integer 150

SQL> alter system set processes=300 scope = spfile;

系统已更改。

SQL> show parameter processes;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processes integer 1
processes integer 150

SQL> create pfile from spfile;

文件已创建。


重启数据库,OK!

From:http://www.blogjava.net/gf7/archive/2007/03/13/103556.html

 

如何查看当前ORACLE的连接数?
如何查看ORACLE的最大连接数?
如何更改ORACLE的最大连接数?

如何查看当前ORACLE的最大进程数?
如何查看ORACLE的最大进程数?
如何修改ORACLE的最大进程数?

如何查看授权的ORACLE用户数和最大连接数,如何修改?
用户数,进程数及用户数之间有什么关系?


2007-11-23 12:28  smallflower 
SQL> select count(*) from v$session  #连接数
SQL> Select count(*) from v$session where status=''ACTIVE'' #并发连接数
SQL> show parameter processes  #最大连接
SQL> alter system set processes = value scope = spfile;重启数据库  #修改连接

unix 1个用户session 对应一个操作系统 process 
而 windows体现在线程 

From: http://bbs.loveunix.net/archiver/tid-78831.html

其中的processes就是要调整的最大连接数的数目,我们只要调整这个参数就可以了,其它的参数可以保持默认值。

你可能感兴趣的:(oracle,integer,unix,数据库,archive,session,oracle)