修改ORACLE最大连接数

Oracle连接超限修改,ORA-00064,ORA-12571,ORA-24324及用户连接查看

[日期:2012-11-09] 来源:Linux社区  作者:cswggod [字体: ]
 
(一) 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<sid>.ora文件中的参数,而且应 该调整OS的内核参数,象AIX,HPUX,Solaris,SCO,UNIXWare都是这样,OS的调整是需要重新启动的,而且这个参数的设置不能简 单按照多少个终端要连到这个服务器上而定,最关键是考虑会有多少同时连上的session(在使用一些共享连接的中间件时,一般就不需要太大),当然还要 考虑一些Oracle的后台进程,还有一些系统维护工作需要多一些连接等。
 
1.数据库连接超限时,新的连接会失败,查看数据库允许连接数
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
2
processes integer
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
150
#--------------数据库连接数是150,修改连接数
SQL>
SQL> alter system set processes=5000 scope=spfile;
系统已更改。
SQL> alter system set sessions=5000 scope=spfile;
系统已更改。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORA-00064: object is too large to allocate on this O/S (1,4800000)
SQL> startup
ORA-00064: object is too large to allocate on this O/S (1,4800000)
#-----------------------------以上修改最大连接数失败,最大连接数与OS有关、
#-----------------------------不考虑OS是最大连接数可能修改失败
linux
 
 
 
 
2.修改最大连接数错误ORA-00064,数据库启动不了
 
#----------------------(1) Oracle SYS DBA连接,此时因为ORA-12571错误,其他用户无法连接
SQL> conn sys/oracle@orcl as sysdba
已连接到空闲例程。
 
#----------------------(2)以pfile 启动数据库
 
SQL> startup pfile='D:\oracle\admin\orcl\pfile\init.ora.105201216493' open
ORACLE 例程已经启动。
 
Total System Global Area  135338868 bytes
Fixed Size                  453492 bytes
Variable Size            109051904 bytes
Database Buffers          25165824 bytes
Redo Buffers                667648 bytes
数据库装载完毕。
数据库已经打开。
 
#----------------------(3)重建spfile,是oracle正常启动
SQL> create spfile from pfile='D:\oracle\admin\orcl\pfile\init.ora.105201216493';
 
文件已创建。
 
#----------------------最大连接数为修改
 
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
2
processes                            integer
 
NAME                                TYPE
------------------------------------ ----------------------
VALUE
------------------------------
150
SQL>
/*------------------3. 修改processes和sessions值必须重启oracle服务器才能生效
 
ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:
 
sessions=(1.1*process+5)
 
----------------------*/
 
#----------------------(4)重启数据库,使重建的SPFILE生效
 
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
 
Total System Global Area  135338868 bytes
Fixed Size                  453492 bytes
Variable Size            109051904 bytes
Database Buffers          25165824 bytes
Redo Buffers                667648 bytes
数据库装载完毕。
数据库已经打开。
 
#----------------------(5)修改最大连接数与spfile,重启生效;若连接生效scope=both
SQL> alter system set processes=300 scope=spfile;
 
系统已更改。
 
SQL>
SQL> alter system set sessions=335 scope=spfile;
 
系统已更改。
 
SQL>
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
 
Total System Global Area  139533192 bytes
Fixed Size                  453512 bytes
Variable Size            113246208 bytes
Database Buffers          25165824 bytes
Redo Buffers                667648 bytes
数据库装载完毕。
数据库已经打开。
 
#----------------------(6)查看最大连接数
 
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
2
processes                            integer
 
NAME                                TYPE
------------------------------------ ----------------------
VALUE
------------------------------
300
SQL>
 
#------------------数据库连接数是300

猜你喜欢

转载自yhq1212.iteye.com/blog/2268509