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伺服器的實體記憶體或減少其它軟體所用記憶體。