ORA-12537错误的解决


SQL> conn sys/system@jytest as sysdba
ERROR:
ORA-12537: TNS:connection closed


1.processes参数设置太小。
进入设置processes方法:
Oracle的sessions和processes的关系是
        sessions=1.1*processes + 5
使用sys,以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=400 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;

而我出现这个故障不是processes参数设置太小造成的

2.内存使用完了
当OS的内存使用率达到90%以上时,既使是还可以再建立100个进程,但此时由于OS再也分配不出更多的内存来给ORACLE的服务进程了,所以监听器就没办法给进来和客户端连接启动一个专用的ORACLE SERVER PROCESS(我们知道,在DEDICATED SERVER模式,一个客户端连接的建立,ORACLE就会启动一个专用的SERVER PROCESS来服务这个客户端连接)。我们来检查一下OS的内存状况:
[oracle@weblogic28 ~]$ free
            total      used      free    shared    buffers    cached
Mem:      32949872  32709700    240172          0    213204  22118944
-/+ buffers/cache:  10377552  22572320
Swap:    32764556    600696  32163860

果然,OS的内存使用率已达99%了。
解决方法:
增加ORACLE服务器的物理内存或减少其它软件所用内存。

相关内容