專用伺服器模式(MTS)和共享伺服器模式
連接配接ORACLE伺服器一般有兩種方式:專用伺服器連接配接(dedicated server)和共享伺服器連接配接(shared server)。那麼兩者有啥差別和不同呢?下面我們将對這兩者的差別與不同一一剖析。
專用伺服器模式(dedicated server)模式
在專用伺服器模式中,使用者程序運作在用戶端的機器上,專用伺服器程序運作在資料庫伺服器,使用者程序和專用伺服器程序是兩種不同類型的程序。
對于專用伺服器模式,在使用者登入時,ORACLE總會建立一個新的服務程序,這通常稱為專用伺服器配置。這個伺服器程序會在會話生存期中專門為這個連接配接服務。對于每一個會話,都會生成一個新的專用伺服器程序,會話與專用伺服器程序之間存在一對一的映射關系。按照定義,這個專用伺服器不是執行個體的一部分。使用者程序(也就是想要連接配接資料庫的程式)會通過某種網絡通道(如TCP/IP Socket)與這個專用伺服器程序直接通信,并由這個伺服器程序接收和執行使用者程序送出的SQL。使用者程序與專用伺服器程序是一一對應關系。預設使用專用模式
專用伺服器模式(dedicated server)的一個很重要的特點就是UGA(使用者全局域)是存儲在PGA(程序全局域)中的,這個特性也很好說明了目前使用者的記憶體空間是按照程序來進行配置設定的。
專用伺服器模式适用場景:
1:隻有少量的用戶端連接配接系統或資料倉庫系統。資料集市系統等
2:聯機事務處理系統(OLTP)。當然聯機事務處理系統必須要符合下面兩個條件
A 使用者連接配接請求數大于共享程序
B 事務大部分是長事務或者大事務
共享伺服器模式(shared server)
共享伺服器(shared server),正式的說法是多線程伺服器(Multi-Threaded Server)或MTS。如果采用這種連接配接方式,就不會對每條使用者連接配接建立另外的線程或新的程序。在連接配接建立的時候,Listener首先接收到用戶端的建立連接配接的請求,然後Listener去生成一個叫做排程器(dipatcher)的程序與用戶端進行連接配接。排程器把把用戶端的請求放在SGA(系統全局域)的一個請求隊列中,然後在共享伺服器連接配接池中查找有無空閑的連接配接,然後讓這個空閑的伺服器程序進行處理。處理完畢以後再把處理結果傳回給使用者。共享伺服器模式的請求流程如下所示
利用共享伺服器,我們不必為10,000 個資料庫會話建立10,000 個專用伺服器(這樣程序或線程就太多了),而隻需建立很少的一部分程序/線程,顧名思義,這些程序/線程将由所有會話共享。這樣Oracle 就能讓更多的使用者與資料庫連接配接,否則很難連接配接更多使用者。如果讓我的機器管理10,000個程序,這個負載肯定會把它壓垮,但是管理100 個或者1,000 個程序還是可以的。采用共享伺服器模式,共享程序通常與資料庫一同啟動,使用ps指令可以看到這個程序。
資料庫連接配接概述
共享伺服器模式缺點:
采用專用伺服器連接配接模式比采用共享伺服器連接配接模式效率要高。因為ORACLE共享伺服器方式也有諸多缺點。
1)共享伺服器的代碼路徑比專用伺服器長,是以它天生就比專用伺服器慢。(這個觀點來自David Dai部落格)
2)存在人為死鎖的可能,因為它是串行的,隻要一個連接配接阻塞,則該伺服器程序上的所有使用者都被阻塞,并且極可能死鎖。
3)存在獨占事務的可能,因為如果一個會話的事務運作時間過長,它獨占共享資源,其它使用者隻能等待,而專用伺服器,每個用戶端是一個會話。
4)共享伺服器模式限制了某些資料庫特性,例如:不能單獨啟動和關閉執行個體,不能進行媒體恢複,不能使用Log Miner,并且SQL_TRACE沒有意義(因為是共享而不是目前會話的)。共享服務伺服器連接配接,會話的跟蹤資訊可能分布在不同的獨立跟蹤檔案中,重建會話比較困難。除非必須要用共享模式,如系統負載太重或特定的性能,否則專用伺服器是最佳選擇。
共享伺服器連接配接模式的優點在于伺服器程序的數量可以得到控制,不大可能出現連接配接數過多而造成伺服器記憶體崩潰。但是由于增加了複雜度以及請求相應的隊列,可能性能上會有所下降。
MTS減少的記憶體實際上是專用伺服器模式下每個使用者連接配接到作業系統程序所需的記憶體,但它卻使用SGA的Large_Pool來配置設定UGA,拆東牆補西牆,所減少的記憶體是很少的。如果使用者會話的連接配接和斷開很頻繁,資料庫程序的建立和删除的開銷會非常大,這種情況最好采用共享伺服器模式(否則,應該使用連接配接池技術)。如果用戶端一次連接配接終身使用(會話生命周期内),使用共享伺服器模式的意義不大。因為大部分時間,一個會話就連接配接到一個伺服器程序,無法共享伺服器程序。
判斷資料庫使用的連接配接模式
1:檢視V$SESSION視圖
SQL> select distinct server from v$session;
SERVER
---------
DEDICATED
NONE
如果SERVER字段的值除了DEDICATED,還有NONE,則說明目前執行個體啟動了共享伺服器,并且SERVER為NONE的會話正使用共享伺服器連接配接,同時,如果隻顯示有DEDICATED,則不能說明伺服器就一定工作在專用伺服器下面,此時也有可能啟動了共享模式。隻是目前連接配接到資料庫的都是專用伺服器模式。
2:通過參數shared_server判斷
如果shared_server值為0,則表示資料庫沒有啟動共享服務模式。 這個參數是配置shared server必須的,而且隻有這個參數是必須的。它指定了當執行個體啟動的時候 shared server process 啟動的數量,不要将這個參數設定得太大,否者啟動資料庫instance的時候就會花更多時間,ORACLE啟動過後會根據負載來動态調整shared_servers
SQL> show parameter shared_server
NAME TYPE VALUE
------------------------------------ -------------------------------- ------------------------------
max_shared_servers integer 40
shared_server_sessions integer
shared_servers integer 1
SQL>
max_shared_servers:oracle在同一個時刻最大能夠使用的shared server process.不要将這個參數設定小于shared_servers,如果動态修改shared_servers大于max_shared_servers,oracle會覆寫max_shared_servers的值,此時你需要修改max_shared_servers.同時也不能大于processes。這個參數是為了給占用很大資源操作而設的(批處理),為了預留一些process 給DBA任務(rman備份),
shared_server_sesions: 指定了總共允許的的shared server session 的數量。如果設定了這個參數,那麼就不要将這個值超過sessions,如果沒有設定這個值,那麼隻要還有空閑的session,就可以被使用。設定這個值是為專用連接配接預留的User Sessions.
3:通過lsnrctl services區分。
啟用了共享伺服器模式,可以通過排程器(dipatcher)的程序區分确認。
[oracle@DB-Server ~]$ lsnrctl services;
LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 06-JAN-2015 23:46:30
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.16.22)(PORT=1521)))
Services Summary...
Service "EPPS" has 2 instance(s).
Instance "EPPS", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0
LOCAL SERVER
Instance "EPPS", status READY, has 8 handler(s) for this service...
Handler(s):
"D006" established:0 refused:0 current:0 max:1022 state:blocked
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server.localhost.localdomain)(PORT=10895))
"D005" established:0 refused:0 current:0 max:1022 state:blocked
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server.localhost.localdomain)(PORT=2469))
"D004" established:0 refused:0 current:0 max:1022 state:blocked
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server.localhost.localdomain)(PORT=13008))
"D003" established:0 refused:0 current:0 max:1022 state:blocked
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server.localhost.localdomain)(PORT=17578))
"D002" established:2 refused:0 current:1 max:1022 state:blocked
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server.localhost.localdomain)(PORT=44614))
"D001" established:2 refused:0 current:1 max:1022 state:blocked
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server.localhost.localdomain)(PORT=32323))
"D000" established:1 refused:0 current:1 max:1022 state:blocked
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server.localhost.localdomain)(PORT=22216))
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
Service "EPPS_XPT" has 1 instance(s).
Instance "EPPS", status READY, has 8 handler(s) for this service...
Handler(s):
"D006" established:0 refused:0 current:0 max:1022 state:blocked
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server.localhost.localdomain)(PORT=10895))
"D005" established:0 refused:0 current:0 max:1022 state:blocked
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server.localhost.localdomain)(PORT=2469))
"D004" established:0 refused:0 current:0 max:1022 state:blocked
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server.localhost.localdomain)(PORT=13008))
"D003" established:0 refused:0 current:0 max:1022 state:blocked
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server.localhost.localdomain)(PORT=17578))
"D002" established:2 refused:0 current:1 max:1022 state:blocked
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server.localhost.localdomain)(PORT=44614))
"D001" established:2 refused:0 current:1 max:1022 state:blocked
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server.localhost.localdomain)(PORT=32323))
"D000" established:1 refused:0 current:1 max:1022 state:blocked
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server.localhost.localdomain)(PORT=22216))
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
沒有啟用共享伺服器模式,則不會有排程器(dipatcher)的程序
[oracle@DB-Server ~]$ lsnrctl services;
LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 06-JAN-2015 23:56:25
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.16.22)(PORT=1521)))
Services Summary...
Service "EPPS" has 1 instance(s).
Instance "EPPS", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0
LOCAL SERVER
The command completed successfully
其他一些不能完全确認的判斷方式。
select * from v$shared_server; ---有記錄,且STATUS字段為WAIT(COMMON),則說明啟動共享;
---status為TERMINATED或者無記錄,則說明沒有啟動共享伺服器
select * from v$dispatcher; ---有無記錄都不能說明啟動共享伺服器,隻能說明是配置了dispatchers參數
select * from v$circuit ; ---有記錄說明目前有使用共享模式的連接配接,無記錄則不能判定伺服器模式
關閉資料庫共享模式
隻需要将參數shared_servers設定為0,即可關閉資料庫的共享模式。執行該腳本後,所有以共享方式連接配接到資料庫都不能成功,但是未釋放的共享連接配接會繼續保持連接配接,直到斷開為止。
alter system set shared_servers=0;
如果同時将參數shared_servers和max_shared_servers都設定為0,那麼共享連接配接方式将被終結。所有的共享方式連接配接都會斷開(已經連接配接的會話也會斷開)
SQL> show parameter shared_servers
NAME TYPE VALUE
------------------------------------ -------------------------------- --------
max_shared_servers integer 40
shared_servers integer 4
SQL> alter system set shared_servers=0 scope=both;
System altered.
SQL> alter system set max_shared_servers=0 scope=both;
System altered.
開啟資料庫共享模式
預設情況下,資料庫都是專用伺服器模式,如何開啟共享伺服器模式呢? 一般隻需要設定shared_servers這個參數,将其值設定為大于0即可開啟伺服器共享模式。其他的共享伺服器參數可以不用設定,但是最好也設定一下max_shared_servers參數
SQL> alter system set shared_servers=1 scope=both;
System altered.
SQL> alter system set max_shared_servers =24 scope=both;
System altered.
但是在實際測試情況中發現,參數dispatchers也會影響到資料庫開啟共享伺服器模式,如下所示,将參數dispatchers設定為空,shared_servers設定為1
SQL> show parameter shared
NAME TYPE VALUE
------------------------------------ -------------------------------- --------
hi_shared_memory_address integer 0
max_shared_servers integer 0
shared_memory_address integer 0
shared_pool_reserved_size big integer 26843545
shared_pool_size big integer 0
shared_server_sessions integer
shared_servers integer 0
SQL> alter system set dispatchers='' scope=both;
System altered.
SQL> alter system set shared_servers=1 scope=both;
System altered.
SQL>
此時以共享連接配接方式方式連接配接資料庫會遭遇“ORA-12523: TNS: 監聽程式無法找到适用于客戶機連接配接的例程"錯誤。設定參數dispacthers後即可開啟共享連接配接模式。如果參數dispacthers不為空,那麼隻要設定了參數shared_servers大于0即可。
SQL> alter system set dispatchers='(PROTOCOL=TCP)';
System altered.
結論:如果dispatches參數設定為空的話,不能啟動共享伺服器。
關于參數dispatchers的設定,可以使用下面指令
alter system set dispatchers='(protocol=TCP)(disp=8)(serv=xxx)’
前面表示的是協定,disp表示排程器(dipatcher)的程序數量,service分别指定要采用共享伺服器模式的服務名稱。使用上面的模式指定隻啟動某個服務的共享模式,如果要設定所有服務都使用共享模式,則設定為:
alter system set dispatchers='(PROTOCOL=TCP)';
如何判斷某個會話采用的那種連接配接方式呢?
SELECT SID, USERNAME, OSUSER, MACHINE,TERMINAL, SERVER FROM V$SESSION WHERE USERNAME IS NOT NULL;
COL USERNAME FOR A20
COL OSUSER FOR A10
COL MACHINE FOR A20
COL TERMINAL FOR A20;
SELECT SID, USERNAME, OSUSER, MACHINE,TERMINAL, SERVER
FROM V$SESSION
USERNAME為NULL表示的是資料庫背景程序,
2:檢視連接配接資料庫的tns配置檔案,如下所示
1:以共享伺服器模式連接配接資料庫
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.16.22)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = epps)
)
)
2:以專用伺服器模式連接配接資料庫
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.16.22)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = epps)
)
)
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.16.22)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = epps)
)
)
參考資料:
http://blog.csdn.net/tianlesoftware/article/details/5695784
http://wenku.baidu.com/view/9b0f7f8a84868762caaed57c.html
http://www.itpub.net/thread-1714191-1-1.html
ORACLE中STATUS為INACTIVE但是SERVER為SHARED狀态的會話淺析
我們知道當ORACLE資料庫啟用共享伺服器模式時,通過共享伺服器模式連接配接到資料庫的會話是有一些特征的。在v$session裡面,其SERVER的狀态一般為SHARED和NONE, 為SHARED時,表示目前會話正在執行SQL語句,其占用共享伺服器程序,會話的STATUS狀态為ACTIVE;當會話狀态STATUS處于INACITVE時,它的SERVER字段值一般為NONE,意味着此時并沒有共享伺服器程序服務該會話,這個詳細請見v$session中server為none與shared值解析 這篇部落格。但是最近在一資料庫中突然見到一些會話STATUS為INACTIVE,但是SERVER狀态為SHARED的會話,如下所示:
其實發現這個問題是因為在追查一個TNS-12535的問題時發現的。當時突然出現短暫的資料庫(Oracle 10g R2)連接配接不上的情況,nmon監控發現當時的整體資源開銷都非常小,也分析過AWR、ASH報告,并沒有發現很特殊的情況,但是在bdump下面發現shared server程序生成的trc檔案。例如下面一個 epps_d004_24858.trc,截圖所示:
在這篇部落格”TNS-12535: TNS:operation timed out案例解析”裡面我分析、構造過出現TNS-12535錯誤的場景。但是我們分析ASH報告和查詢dba_hist_active_sess_history時發現出現問題的時間段,active會話的數量不超過4個。是以可以排除是這種情形。後面檢查發現共享伺服器模式的會話居然有STATUS為INACTIVE但是SERVER為SHARED狀态的會話,而且數量較多,本身這台伺服器的max_shared_servers參數為32,是以當大量INACTIVE會話一直占用shared server程序時,當ACITVE會話需要shared server服務程序時就會由于shared server程序不夠而處于等待狀态,時間長了就會出現TNS-12535錯誤。那麼就有可能出現active session不多,但是連接配接不上資料庫的這種情況。分析至此,那麼就有兩個問題需要解決:1 為什麼INACTIVE的會話會占用shared server程序不釋放? 2 這個分析必須要經測試驗證确認. 3:如何解決這個問題?
SQL> show parameter max_shared_servers;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers integer 32
SQL>
關于第一個問題,剛剛開始一直沒有找到答案,後面才在oracle metalink上面找到了答案,官方文檔High Number Of Shared Servers Usage In 10g When Compared To 9i (文檔 ID 444950.1)裡面有相關介紹,如下摘抄所示:
APPLIES TO:
Oracle Server - Enterprise Edition - Version: 9.2.0.1 to 10.2.0.3
This problem can occur on any platform.
SYMPTOMS
On 10g having a shared server configuration and seeing many sessions with "STATUS" "INACTIVE" but still these sessions are not releasing the shared server process.
When you query from V$SESSION
SQL>select sid,server,status FROM v$session WHERE SID='154';
SID SERVER STATUS
---------- --------- --------
154 SHARED INACTIVE
In 9i The shared server process is released.
SQL> select SID,Server,STATUS from V$Session where SID=10;
10 NONE INACTIVE
In 10g Since the sessions are not releasing the shared server processes, Number of shared server processes increases and will cause new connections to terminate with a message max limit(MAX_SHARED_SERVERS) for shared_servers exceeded.
If you trace the session then you will observe the following wait events.
WAIT #0: nam='virtual circuit status' ela= 30000256 circuit#=7 status=2 p3=0
obj#=-1 tim=745725456
*** 2006-11-28 14:46:43.906
WAIT #0: nam='virtual circuit status' ela= 30000250 circuit#=7 status=2 p3=0
obj#=-1 tim=775725785
CAUSE
When using WORKAREA_SIZE_POLICY=AUTO, In 10g for certain operations (Like SORT) SQL memory can intentionally spill into the PGA of the shared server rather than taking up space in shared memory. When data spills to the PGA the session has to stay tied to that specific shared server. And hence the Process in Inactive can still be holding a shared server until it is terminated.
SOLUTION
The behavior observed is expected in 10g when WORKAREA_SIZE_POLICY is set to automatic.
Use WORKAREA_SIZE_POLICY=MANUAL to prevent the SORT operation to spill over the PGA. This will make sure the session doesn't require any more shared server process and the SHARED_SERVER will be released by the process when it is in INACTIVE status.
BUG 5689608 can be referred for more information
REFERENCES
BUG:5689608
- INACTIVE SESSION IS NOT RELEASING SHARED SERVER PROCESS
當資料庫參數WORKAREA_SIZE_POLICY = AUTO時,在10g中對于某些SQL操作(如SORT)所用的SQL記憶體,可能有意地放入( spill over這裡沒有翻譯為溢出)共享伺服器的PGA當中,而不是占用共享記憶體(shared memroy)中的空間。 當資料放入到PGA時,會話必須保持綁定到該特定的共享伺服器(shared server)。 是以,處于非活動狀态的程序仍可以持有共享伺服器,直到會話終止。
另外,解決方案裡面也介紹,可以将參數WORKAREA_SIZE_POLICY設定為MANUAL,這樣可以阻止排序操作将資料放入PGA當中。這個設定可以確定會話不會要求更多的共享伺服器程序,并且當會話變成INACTIVE狀态時,共享伺服器很快就能釋放。
那麼第一個問題解決了,接下來我們來看第二個問題,後面我觀察時,發現出現問題的時候,ACTIVE和INACTVIE的shared server數量等于32了. 那麼我們接下來看看,如何構造這種狀态的會話
在共享連接配接方式的會話1中執行下面SQL
SQL> show user;
USER is "TEST"
SQL> create table test as select * from dba_objects;
Table created.
SQL> create or replace package cursor_package as
2 cursor mycursor is select * from test order by object_name;
3 end;
4 /
Package created.
SQL> begin
2 open cursor_package.mycursor;
3 end;
4 /
PL/SQL procedure successfully completed.
SQL> create or replace procedure test_case is
2 l_row TEST%rowtype;
3 begin
4 if cursor_package.mycursor%isopen then
5 fetch cursor_package.mycursor into l_row;
6 end if;
7 end;
8 /
Procedure created.
SQL> select sys_context('userenv', 'sid') from dual;
SYS_CONTEXT('USERENV','SID')
--------------------------------------------------------------------------------
932
如上所示,我們知道這個會話ID為932,此時開啟另外一個會話2,檢視會話ID為932的狀态。如下所示
SQL> select sid, serial#, status ,server from v$session where sid=932;
SID SERIAL# STATUS SERVER
---------- ---------- -------- ---------
932 23 INACTIVE NONE
在會話1中執行下面SQL語句,如下截圖所示:
SQL> exec test_case;
PL/SQL procedure successfully completed.
SQL>
然後去會話2中檢查會話ID為932的狀态,此時就會出現STATUS為INACTIVE,SERVER狀态為SHARED的會話狀态了。
關于如何解決這個問題,我們并沒有将将參數WORKAREA_SIZE_POLICY設定為MANUAL,因為修改這個參數過後,需要調整sort_area_size,hash_area_size等參數. 在複雜環境下,一個固定值比較難滿足各個時段的需求。這個資料庫執行個體本身max_shared_server的值(32)比較小,我們将其調整為48, 另外本身設定了一個crontab作業, 定期清理那些空閑超過一段時間的INACTIVE會話。
High Number Of Shared Servers Usage In 10g When Compared To 9i (文檔 ID 444950.1)
V$SESSION是基礎資訊視圖,用于找尋使用者SID或SADDR。不過,它也有一些列會動态的變化,可用于檢查使用者。在該視圖中,每一個連接配接到資料庫執行個體中的session都擁有一條記錄,包括使用者session及背景程序如DBWR,LGWR,arcchiver等等。
V$SESSION視圖包含很多列,涉及到session資訊、client資訊以及application資訊等。其中,server列資訊表示該session的連接配接類型,也就是咱們常說的共享伺服器連接配接或者專用伺服器連接配接。那有沒有其他伺服器連接配接類型呢?下面我們就看一下Oracle11g官方文檔中server列的幾個取值:
- DEDICATED
- SHARED
- PSEUDO
- POOLED
- NONE
其中,DEDICATED表示專用伺服器連接配接,SHARED表示共享伺服器連接配接,這兩個大家較為熟悉;
PSEUDO和kill session相關,如果發出ALTER SYSTEM去終止session的會話,等待60秒後沒有終止session,會收到一個資訊表明session已辨別為終止。被标記為終止的session在v$seession的status為KILLED,對應的server值可能為PSEUDO;
PO
OLED和Oracle 11g推出的駐留連接配接池(Database Resident Connection Pool)特性相關,駐留連接配接池提供了資料庫層面上的連接配接池管理機制,為應對高并發、短會話前端應用進行有益的嘗試,
OLED表示使用駐留連接配接池技術的連接配接;
NONE表示空閑的共享伺服器連接配接。
About Me
...............................................................................................................................
● 本文整理自網絡,大部分來源于潇湘隐者的部落格
● 本文在itpub(http://blog.itpub.net/26736162)、部落格園(http://www.cnblogs.com/lhrbest)和個人微信公衆号(xiaomaimiaolhr)上有同步更新
● 本文itpub位址:http://blog.itpub.net/26736162/abstract/1/
● 本文部落格園位址:http://www.cnblogs.com/lhrbest
● 本文pdf版及小麥苗雲盤位址:http://blog.itpub.net/26736162/viewspace-1624453/
● 資料庫筆試面試題庫及解答:http://blog.itpub.net/26736162/viewspace-2134706/
● QQ群:230161599 微信群:私聊
● 聯系我請加QQ好友(646634621),注明添加緣由
● 于 2017-04-28 09:00 ~ 2017-04-30 22:00 在魔都完成
● 文章内容來源于小麥苗的學習筆記,部分整理自網絡,若有侵權或不當之處還請諒解
● 版權所有,歡迎分享本文,轉載請保留出處
拿起手機使用微信用戶端掃描下邊的左邊圖檔來關注小麥苗的微信公衆号:xiaomaimiaolhr,掃描右邊的二維碼加入小麥苗的QQ群,學習最實用的資料庫技術。
![]()
專用伺服器模式(MTS)和共享伺服器模式 ![]()
專用伺服器模式(MTS)和共享伺服器模式
![]()
專用伺服器模式(MTS)和共享伺服器模式 ![]()
專用伺服器模式(MTS)和共享伺服器模式 ![]()
專用伺服器模式(MTS)和共享伺服器模式