【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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 共享模式 & 專有模式模式
- Oracle共享伺服器的連線模式Oracle伺服器模式
- Oracle網路配置之共享模式和專有模式Oracle模式
- ShardingSphere Mode 模式新起航:執行模式詳解模式
- MySQL伺服器的SQL模式MySql伺服器模式
- 無伺服器模式 -Davide Taibi伺服器模式IDEAI
- 部署:無伺服器部署模式伺服器模式
- Go 1.18:工作區模式workspace modeGo模式
- 記一次華為雲重啟伺服器後遠端登入提示emergency mode(緊急模式)的解決方式伺服器模式
- [20210111]優化模式optimizer_mode.txt優化模式
- 微火共享wifi代理專案盈利模式分析!WiFi模式
- gitlab伺服器IP調整後修改domian或ipGitlab伺服器
- 共享池 shared pool
- Shader 中的顏色混合模式(Blend Mode)模式
- [20190115]關於共享服務與專用模式.txt模式
- 典型伺服器模式原理分析與實踐伺服器模式
- json server伺服器JSONServer伺服器
- SQL Server 2005效能調整二(zt)SQLServer
- Linux(伺服器程式設計):15---兩種高效的事件處理模式(reactor模式、proactor模式)Linux伺服器程式設計事件模式React
- 360瀏覽器極速模式怎麼開 360瀏覽器如何調整極速模式瀏覽器模式
- CSS書寫模式 Writing Mode text-combine-uprightCSS模式
- 雲伺服器centos6.5調整home根目錄大小伺服器CentOS
- Seata AT模式的整體流程模式
- 華為不只有 5G 還有專業級伺服器伺服器
- 行為型模式--策略模式模式
- 行為型模式:命令模式模式
- 設計模式專題-策略模式設計模式
- derby 資料庫 伺服器模式 無法訪問資料庫伺服器模式
- 從單伺服器模式到負載均衡設計伺服器模式負載
- 【知識分享】伺服器的防護幾種模式伺服器模式
- [重慶思莊每日技術分享]-ORACLE19C UNDO共享模式轉換為本地模式Oracle模式
- 設計模式-行為型模式-中介者模式設計模式
- ecs伺服器升級專用網路之後ftp無法使用主動模式伺服器FTP模式
- Windows Server 2022 NTP伺服器WindowsServer伺服器
- Safari暗模式新增外掛:Noir Dark Mode for Safari Mac版模式Mac
- redis配置檔案中的保護模式protected-modeRedis模式
- 行為型模式之策略模式模式
- 行為型模式:迭代器模式模式
- 行為型模式:中介者模式模式