1.process 和session的概念:
process:這個參數限制了可以鏈接到SGA的操做系統進程數(或者是Windows 系統中的線程數),這個總數必須足夠大,從而可以適用於後臺進程與全部的專用服務器進程,此外,共享服務器進程與調度進程的數目也被計算在內.此外,共享 服務器進程與調度進程的數目也被計算在內.所以,在專用服務器環境中,這是一種限制併發鏈接數的方法.
疑點一:可以鏈接到SGA的操做系統進程數,這種進程包括哪些進程? Windows系統中的線程數,是指全部與oracle相關的進程的線程數之和?
疑點二:在共享服務器和專用服務器環境中,算法有什麼不一樣?
哪位兄弟瞭解比較透徹,請指點一下,拜謝!
Sessions:是被應用於oracle層次而非操做系統層次.在不考慮經過專用服務器或共享服務器進行登陸的狀況下,這個參數限制了對指定實例的併發登錄數.
疑問:在C/架構中,是指Oracle用戶登錄創建的會話數?在B/S架構中又怎麼算呢?
2,儘管概念不是很明白,遇到這種問題還得幹活先:java
2.1 查看session:算法
select * from v$session where username is not null數據庫
select username,count(username) from v$session where username is not null group by username服務器
2.2 當前鏈接數:session
select count(*) from v$process架構
2.3 查看鏈接數參數的設置狀況併發
select value from v$parameter where name = 'processes'oracle
2.4 Select count(*) from v$session where status='ACTIVE' #併發鏈接數編輯器
1).經過SQLPlus修改
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;
文件已建立。
重啓數據庫,OK!
SQL> shutdown immediate;
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啓動。
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
數據庫裝載完畢。
數據庫已經打開。
SQL> show parameter processes;
NAME TYPE VALUE
------------------------------------ ----------- ----------------
aq_tm_processes integer 0
db_writer_processes integer 1
gcs_server_processes integer 0
job_queue_processes integer 10
log_archive_max_processes integer 2
processes integer 400
SQL> show parameter session;
NAME TYPE VALUE
------------------------------------ ----------- ----------------
java_max_sessionspace_size integer 0
java_soft_sessionspace_limit integer 0
license_max_sessions integer 0
license_sessions_warning integer 0
logmnr_max_persistent_sessions integer 1
session_cached_cursors integer 0
session_max_open_files integer 10
sessions integer 445
shared_server_sessions integer
SQL>
【注:sessions是個派生值,由processes的值決定,公式sessions=1.1*process + 5】
2).經過修改oracle配置文件進行修改
修改SPFILEORCL.ORA文件中的processes的值。8.1.5中是init.ora文件,在9i中修改init.ora文件是無效的,這個文件因爲是一個二進制的文件,不能直接使用notepad此類的編輯器打開。
不然會報錯誤ORA-27101 Shared memory realm does not exist。使用UltraEdit或者EditPlus之類的能夠編輯二進制文件的編輯器打開此文件(直接編輯二進制文件),而後在Windows服務中從新啓動Oracle服務器便可。
3).經過Oracle Enterprise Manager Console在圖形化管理器中修改
a.以系統管理員的身份登入
b.進入數據庫的例程-配置-通常信息-全部初始化參數
c.修改processes的值
d.Sessions的值由公式sessions=1.1*process + 5派生獲得ide