【Shared Server Mode】“專有伺服器模式”調整為“共享伺服器模式”
本文給出將資料庫執行狀態由“專有伺服器模式”調整為“共享伺服器模式”的方法。
專有伺服器模式 ---> 共享伺服器模式
Dedicatied Server Mode ---> Shared Server Mode
1.首先生成一份PFILE
sys@ora10g> create pfile from spfile;
File created.
2.到$ORACLE_HOME/dbs目錄,確認PFILE已經生成成功
ora10g@testdb /home/oracle$ cd $ORACLE_HOME/dbs
ora10g@testdb /oracle/app/oracle/product/10.2.0/db_1/dbs$ ls -l initora10g.ora
-rw-r--r-- 1 oracle oinstall 999 07-23 08:50 initora10g.ora
3.修改PFILE
ora10g@testdb /home/oracle$ vi $ORACLE_HOME/dbs/initora10g.ora
在initora10g.ora引數檔案的後面新增如下幾條關鍵引數!
shared_servers=3
max_shared_servers=60
dispatchers="(protocol=TCP)(serv=ora10g)(list=ora10g)(poo=on)(disp=6)(con=36)(sess=100)"
max_dispatchers=20
在這裡,我來分別解釋一下上面非常重要的四個引數設定後的含義:
shared_servers=3
註釋:資料庫啟動時,共享伺服器程式的最小值,這裡也就是說,先分配3個共享伺服器程式;
max_shared_servers=60
註釋:當上面3個程式無法滿足需要的時候,系統會自動擴充套件到這個最大值,也就是最大會分配60個共享伺服器程式;
dispatchers="(protocol=TCP)(serv=ora10g)(list=ora10g)(poo=on)(disp=6)(con=33)(sess=100)"
註釋:上面設定了共享伺服器程式的數量,這裡就需要設定另外一個很重要的程式--排程程式,分別說明其中的每一個引數
protocol=TCP:沒啥說的,支援的協議是TCP
serv=ora10g:指定監聽器的別名,注意這裡需要設定為在tnsnames.ora中的一個服務名,我這裡是ora10g
list=ora10g:指定在tnsnames.ora中的一個網路服務名,我這裡還是ora10g
poo=on:啟用共享池
disp=6:初始分配排程程式數量為6
con=36:每個排程程式最大網路連線數為36
sess=100:每個排程程式最大會話數為100
max_dispatchers=20
註釋:限制dispatchers最大數為20。
4.關閉資料庫
sys@ora10g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
5.透過上面的PFILE生成SPFILE
NotConnected@> create spfile from pfile='$ORACLE_HOME/dbs/initora10g.ora';
File created.
6.重啟資料庫(這時預設使用的引數檔案已經是剛剛生成的SPFILE)
NotConnected@> startup;
ORACLE instance started.
Total System Global Area 562036736 bytes
Fixed Size 2022312 bytes
Variable Size 163578968 bytes
Database Buffers 390070272 bytes
Redo Buffers 6365184 bytes
Database mounted.
Database opened.
7.確認上面四個重要引數已經生效
sys@ora10g> show parameter shared_servers
NAME TYPE VALUE
------------------ ------- ----------------------------
max_shared_servers integer 60
shared_servers integer 3
sys@ora10g> show parameter dispatchers
NAME TYPE VALUE
------------------ ------- ----------------------------------------
dispatchers string (protocol=TCP)(serv=ora10g)(list=ora10g)
(poo=on)(disp=5)(con=33)(sess=100)
max_dispatchers integer 20
8.共享伺服器程式情況檢視
正如上面的引數shared_servers=3設定的那樣,現在系統中已經初始化開啟了3個共享伺服器程式
資料庫中檢視方法:
sys@ora10g> select NAME,PADDR,STATUS,MESSAGES,BYTES from v$shared_server;
NAME PADDR STATUS MESSAGES BYTES
---- ---------------- ---------------- ---------- ----------
S000 000000008165E508 WAIT(COMMON) 870 150376
S001 000000008165ECF0 EXEC 1858 376240
S002 000000008165F4D8 EXEC 6078 807850
作業系統程式檢視方法:
sys@ora10g> !ps -ef | grep -v grep | grep ora_s0
oracle 7195 1 0 09:16 ? 00:00:01 ora_s000_ora10g
oracle 7197 1 0 09:16 ? 00:00:01 ora_s001_ora10g
oracle 7199 1 0 09:16 ? 00:00:02 ora_s002_ora10g
9.共享伺服器程式情況檢視
這裡也如上面的引數dispatchers中disp=6設定的那樣,現在系統中已經初始化開啟了6個排程程式
資料庫中檢視方法:
sys@ora10g> select NAME,NETWORK,STATUS from v$dispatcher;
NAME NETWORK STATUS
---- -------------------------------------------------- ----------------
D000 (ADDRESS=(PROTOCOL=tcp)(HOST=testdb)(PORT=23377)) WAIT
D001 (ADDRESS=(PROTOCOL=tcp)(HOST=testdb)(PORT=63510)) WAIT
D002 (ADDRESS=(PROTOCOL=tcp)(HOST=testdb)(PORT=22876)) WAIT
D003 (ADDRESS=(PROTOCOL=tcp)(HOST=testdb)(PORT=24477)) WAIT
D004 (ADDRESS=(PROTOCOL=tcp)(HOST=testdb)(PORT=47889)) WAIT
D005 (ADDRESS=(PROTOCOL=tcp)(HOST=testdb)(PORT=33295)) WAIT
6 rows selected.
作業系統程式檢視方法:
sys@ora10g> !ps -ef | grep -v grep | grep ora_d0
oracle 7185 1 0 09:16 ? 00:00:00 ora_d000_ora10g
oracle 7187 1 0 09:16 ? 00:00:00 ora_d001_ora10g
oracle 7189 1 0 09:16 ? 00:00:00 ora_d002_ora10g
oracle 7191 1 0 09:16 ? 00:00:00 ora_d003_ora10g
oracle 7193 1 0 09:16 ? 00:00:00 ora_d004_ora10g
oracle 9320 1 0 09:58 ? 00:00:00 ora_d005_ora10g
OK,到此,透過上面的簡單配置,資料庫已經由原來的專有伺服器模式配置成為了共享伺服器模式。
10.小結
對於共享伺服器模式的資料庫,其實配置關鍵就是圍繞以下四個引數展開的:
shared_servers=3
max_shared_servers=60
dispatchers="(protocol=TCP)(serv=ora10g)(list=ora10g)(poo=on)(disp=6)(con=36)(sess=100)"
max_dispatchers=20
什麼時候需要共享伺服器模式?
1)併發超高
2)資料庫server的訪問壓力過大,這種模式可以減少伺服器程式的數量
3)特殊需求
什麼時候不適合共享伺服器模式?
1)因為存在分配和響應使用者請求的過程,有時會有效能問題
2)能用專有伺服器模式的情況下就不用共享伺服器模式
Good luck
secooler
09.07.23
-- The End --
專有伺服器模式 ---> 共享伺服器模式
Dedicatied Server Mode ---> Shared Server Mode
1.首先生成一份PFILE
sys@ora10g> create pfile from spfile;
File created.
2.到$ORACLE_HOME/dbs目錄,確認PFILE已經生成成功
ora10g@testdb /home/oracle$ cd $ORACLE_HOME/dbs
ora10g@testdb /oracle/app/oracle/product/10.2.0/db_1/dbs$ ls -l initora10g.ora
-rw-r--r-- 1 oracle oinstall 999 07-23 08:50 initora10g.ora
3.修改PFILE
ora10g@testdb /home/oracle$ vi $ORACLE_HOME/dbs/initora10g.ora
在initora10g.ora引數檔案的後面新增如下幾條關鍵引數!
shared_servers=3
max_shared_servers=60
dispatchers="(protocol=TCP)(serv=ora10g)(list=ora10g)(poo=on)(disp=6)(con=36)(sess=100)"
max_dispatchers=20
在這裡,我來分別解釋一下上面非常重要的四個引數設定後的含義:
shared_servers=3
註釋:資料庫啟動時,共享伺服器程式的最小值,這裡也就是說,先分配3個共享伺服器程式;
max_shared_servers=60
註釋:當上面3個程式無法滿足需要的時候,系統會自動擴充套件到這個最大值,也就是最大會分配60個共享伺服器程式;
dispatchers="(protocol=TCP)(serv=ora10g)(list=ora10g)(poo=on)(disp=6)(con=33)(sess=100)"
註釋:上面設定了共享伺服器程式的數量,這裡就需要設定另外一個很重要的程式--排程程式,分別說明其中的每一個引數
protocol=TCP:沒啥說的,支援的協議是TCP
serv=ora10g:指定監聽器的別名,注意這裡需要設定為在tnsnames.ora中的一個服務名,我這裡是ora10g
list=ora10g:指定在tnsnames.ora中的一個網路服務名,我這裡還是ora10g
poo=on:啟用共享池
disp=6:初始分配排程程式數量為6
con=36:每個排程程式最大網路連線數為36
sess=100:每個排程程式最大會話數為100
max_dispatchers=20
註釋:限制dispatchers最大數為20。
4.關閉資料庫
sys@ora10g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
5.透過上面的PFILE生成SPFILE
NotConnected@> create spfile from pfile='$ORACLE_HOME/dbs/initora10g.ora';
File created.
6.重啟資料庫(這時預設使用的引數檔案已經是剛剛生成的SPFILE)
NotConnected@> startup;
ORACLE instance started.
Total System Global Area 562036736 bytes
Fixed Size 2022312 bytes
Variable Size 163578968 bytes
Database Buffers 390070272 bytes
Redo Buffers 6365184 bytes
Database mounted.
Database opened.
7.確認上面四個重要引數已經生效
sys@ora10g> show parameter shared_servers
NAME TYPE VALUE
------------------ ------- ----------------------------
max_shared_servers integer 60
shared_servers integer 3
sys@ora10g> show parameter dispatchers
NAME TYPE VALUE
------------------ ------- ----------------------------------------
dispatchers string (protocol=TCP)(serv=ora10g)(list=ora10g)
(poo=on)(disp=5)(con=33)(sess=100)
max_dispatchers integer 20
8.共享伺服器程式情況檢視
正如上面的引數shared_servers=3設定的那樣,現在系統中已經初始化開啟了3個共享伺服器程式
資料庫中檢視方法:
sys@ora10g> select NAME,PADDR,STATUS,MESSAGES,BYTES from v$shared_server;
NAME PADDR STATUS MESSAGES BYTES
---- ---------------- ---------------- ---------- ----------
S000 000000008165E508 WAIT(COMMON) 870 150376
S001 000000008165ECF0 EXEC 1858 376240
S002 000000008165F4D8 EXEC 6078 807850
作業系統程式檢視方法:
sys@ora10g> !ps -ef | grep -v grep | grep ora_s0
oracle 7195 1 0 09:16 ? 00:00:01 ora_s000_ora10g
oracle 7197 1 0 09:16 ? 00:00:01 ora_s001_ora10g
oracle 7199 1 0 09:16 ? 00:00:02 ora_s002_ora10g
9.共享伺服器程式情況檢視
這裡也如上面的引數dispatchers中disp=6設定的那樣,現在系統中已經初始化開啟了6個排程程式
資料庫中檢視方法:
sys@ora10g> select NAME,NETWORK,STATUS from v$dispatcher;
NAME NETWORK STATUS
---- -------------------------------------------------- ----------------
D000 (ADDRESS=(PROTOCOL=tcp)(HOST=testdb)(PORT=23377)) WAIT
D001 (ADDRESS=(PROTOCOL=tcp)(HOST=testdb)(PORT=63510)) WAIT
D002 (ADDRESS=(PROTOCOL=tcp)(HOST=testdb)(PORT=22876)) WAIT
D003 (ADDRESS=(PROTOCOL=tcp)(HOST=testdb)(PORT=24477)) WAIT
D004 (ADDRESS=(PROTOCOL=tcp)(HOST=testdb)(PORT=47889)) WAIT
D005 (ADDRESS=(PROTOCOL=tcp)(HOST=testdb)(PORT=33295)) WAIT
6 rows selected.
作業系統程式檢視方法:
sys@ora10g> !ps -ef | grep -v grep | grep ora_d0
oracle 7185 1 0 09:16 ? 00:00:00 ora_d000_ora10g
oracle 7187 1 0 09:16 ? 00:00:00 ora_d001_ora10g
oracle 7189 1 0 09:16 ? 00:00:00 ora_d002_ora10g
oracle 7191 1 0 09:16 ? 00:00:00 ora_d003_ora10g
oracle 7193 1 0 09:16 ? 00:00:00 ora_d004_ora10g
oracle 9320 1 0 09:58 ? 00:00:00 ora_d005_ora10g
OK,到此,透過上面的簡單配置,資料庫已經由原來的專有伺服器模式配置成為了共享伺服器模式。
10.小結
對於共享伺服器模式的資料庫,其實配置關鍵就是圍繞以下四個引數展開的:
shared_servers=3
max_shared_servers=60
dispatchers="(protocol=TCP)(serv=ora10g)(list=ora10g)(poo=on)(disp=6)(con=36)(sess=100)"
max_dispatchers=20
什麼時候需要共享伺服器模式?
1)併發超高
2)資料庫server的訪問壓力過大,這種模式可以減少伺服器程式的數量
3)特殊需求
什麼時候不適合共享伺服器模式?
1)因為存在分配和響應使用者請求的過程,有時會有效能問題
2)能用專有伺服器模式的情況下就不用共享伺服器模式
Good luck
secooler
09.07.23
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-609990/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【實驗】【Shared Server Mode】取消共享伺服器模式Server伺服器模式
- 共享伺服器模式(shared server)和專用伺服器模式(dedicated server)伺服器模式Server
- 如何基於共享伺服器模式shared server mode配置大池large pool之二伺服器模式Server
- 【實驗】【Shared Server Mode】專有伺服器連線還是共享伺服器連線確認方法Server伺服器
- 專用伺服器模式(MTS)和共享伺服器模式伺服器模式
- 共享模式 & 專有模式模式
- 如何檢視資料庫是專有伺服器模式還是共享伺服器模式資料庫伺服器模式
- oracle 10g在共享伺服器模式shared server如何配置大池large poolOracle 10g伺服器模式Server
- ORACLE專用伺服器模式(DEDICATED)與共享伺服器模式(SHARE)的區別Oracle伺服器模式
- 【Shared Server Mode】測試調整shared_servers引數對資料庫的影響Server資料庫
- 詳解Oracle的連線模式:專有模式和共享模式Oracle模式
- Oracle共享伺服器的連線模式Oracle伺服器模式
- 7、共享模式的檔案伺服器模式伺服器
- Oracle網路配置之共享模式和專有模式Oracle模式
- Oracle ----調節共享伺服器Oracle伺服器
- 共享池的調整與優化(Shared pool Tuning)優化
- 建立與Oracle資料庫伺服器連線的兩種連線模式(專用伺服器與共享伺服器)Oracle資料庫伺服器模式
- Oracle 專用模式(DEDICATED) 和 共享模式(SHARE)Oracle模式
- oracle實驗記錄 (SHARED server MODE)OracleServer
- [Linux] ntpdate slew模式調整時間Linux模式
- Oracle專有(dedicated)連線和共享(shared)連線Oracle
- 例項解析Oracle是共享模式還是專用模式Oracle模式
- Zabbix Agent active批量調整客戶端為主動模式監控客戶端模式
- MySQL伺服器的SQL模式MySql伺服器模式
- 部署:無伺服器部署模式伺服器模式
- JavaServiceLocatorPattern(伺服器定位模式)Java伺服器模式
- 網路io模式(伺服器請求應答模式)模式伺服器
- 【Mysql學習】SQL伺服器模式MySql伺服器模式
- 【Mysql 學習】SQL伺服器模式MySql伺服器模式
- ShardingSphere Mode 模式新起航:執行模式詳解模式
- Shared pool深入分析及效能調整
- 微火共享wifi代理專案盈利模式分析!WiFi模式
- 無伺服器模式 -Davide Taibi伺服器模式IDEAI
- oracle效能優化-共享池調整Oracle優化
- Shared pool深入分析及效能調整(一)
- Shared pool深入分析及效能調整(二)
- Go 1.18:工作區模式workspace modeGo模式
- Sphinx Ranking Mode(排序模式) (翻譯)排序模式