歡迎和大家交流技術相關問題:
郵箱: jiangxinnju@163.com
博客園地址: http://www.cnblogs.com/jiangxinnju
GitHub地址: https://github.com/jiangxincode
知乎地址: https://www.zhihu.com/people/jiangxinnju
-
PROCESSES: http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams188.htm#sthref560
-
SESSIONS: http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams220.htm#sthref647
-
TRANSACTIONS: http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams248.htm
-
Oracle 11gR2之前:sessions=(1.1*processes) + 5
-
Oracle 11gR2之后:sessions=(1.5*porcesses) + 22
當Oracle需要啟動新的process而又已經達到processes參數時,就會報錯:
00020, 00000, "maximum number of processes (%s) exceeded"
// *Cause: All process state objects are in use.
// *Action: Increase the value of the PROCESSES initialization parameter.
當數據庫連接的並發用戶已經達到sessions這個值時,又有新session連進來,就會報錯
00018, 00000, "maximum number of sessions exceeded"
// *Cause: All session state objects are in use.
// *Action: Increase the value of the SESSIONS initialization parameter.
如何使用sqlplus查看、修改processes呢?使用sys,以sysdba權限登錄:
show parameter processes; --顯示:processes integer 150
show parameter sessions; --顯示:sessions integer 165
select count(*) from v$process; --顯示當前processes數目
select count(*) from v$session; --顯示當前sessions數目
alter system set processes=400 scope = spfile; --顯示系統已更改
show parameter processes; --顯示:processes integer 150
create pfile from spfile; --顯示:文件已創建。
--重啟數據庫
shutdown immediate;
startup
--重啟監聽
lsnrctl stop/start/status
show parameter processes; --顯示:processes integer 400
show parameter session; --顯示:sessions integer 445