專用伺服器模式(MTS)和共享伺服器模式
專用伺服器模式(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)';
如何判斷某個會話採用的那種連線方式呢?
1:檢視V$SESSION檢視
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://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.3This 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;
SID SERVER STATUS
---------- --------- --------
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.
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.
can be referred for more information
REFERENCES
- 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;
POOLED和Oracle 11g推出的駐留連線池(Database Resident Connection Pool)特性相關,駐留連線池提供了資料庫層面上的連線池管理機制,為應對高併發、短會話前端應用進行有益的嘗試,POOLED表示使用駐留連線池技術的連線;
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群,學習最實用的資料庫技術。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2138307/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 共享伺服器模式(shared server)和專用伺服器模式(dedicated server)伺服器模式Server
- ORACLE專用伺服器模式(DEDICATED)與共享伺服器模式(SHARE)的區別Oracle伺服器模式
- Oracle 專用模式(DEDICATED) 和 共享模式(SHARE)Oracle模式
- 【Shared Server Mode】“專有伺服器模式”調整為“共享伺服器模式”Server伺服器模式
- 如何檢視資料庫是專有伺服器模式還是共享伺服器模式資料庫伺服器模式
- 共享模式 & 專有模式模式
- Oracle共享伺服器的連線模式Oracle伺服器模式
- 7、共享模式的檔案伺服器模式伺服器
- 建立與Oracle資料庫伺服器連線的兩種連線模式(專用伺服器與共享伺服器)Oracle資料庫伺服器模式
- 詳解Oracle的連線模式:專有模式和共享模式Oracle模式
- Oracle網路配置之共享模式和專有模式Oracle模式
- 例項解析Oracle是共享模式還是專用模式Oracle模式
- 【實驗】【Shared Server Mode】取消共享伺服器模式Server伺服器模式
- oracle 專用伺服器連線與共享伺服器連線的概念和區別Oracle伺服器
- 轉貼pub_共享伺服器及專用伺服器的學習筆記伺服器筆記
- MySQL伺服器的SQL模式MySql伺服器模式
- 部署:無伺服器部署模式伺服器模式
- JavaServiceLocatorPattern(伺服器定位模式)Java伺服器模式
- 生產模式MTO&MTS的區別模式
- 網路io模式(伺服器請求應答模式)模式伺服器
- 【Mysql學習】SQL伺服器模式MySql伺服器模式
- 【Mysql 學習】SQL伺服器模式MySql伺服器模式
- 如何檢視系統是 dedicate 或 MTS 模式模式
- ecs伺服器升級專用網路之後ftp無法使用主動模式伺服器FTP模式
- 無伺服器模式 -Davide Taibi伺服器模式IDEAI
- 微火共享wifi代理專案盈利模式分析!WiFi模式
- 如何基於共享伺服器模式shared server mode配置大池large pool之二伺服器模式Server
- oracle 10g在共享伺服器模式shared server如何配置大池large poolOracle 10g伺服器模式Server
- 【CONNECT】Oracle連線方式詳細介紹(專用/共享伺服器)Oracle伺服器
- 典型伺服器模式原理分析與實踐伺服器模式
- oracle 10g 10.2.0.5關閉共享伺服器模式資料庫報MMNL absent for %u secsOracle 10g伺服器模式資料庫
- Linux(伺服器程式設計):15---兩種高效的事件處理模式(reactor模式、proactor模式)Linux伺服器程式設計事件模式React
- 代理伺服器和虛擬專用網路比較伺服器
- 用Python實現設計模式——建造者模式和原型模式Python設計模式原型
- Oracle ----調節共享伺服器Oracle伺服器
- [20190115]關於共享服務與專用模式.txt模式
- 應用伺服器和web伺服器的區別伺服器Web
- 從單伺服器模式到負載均衡設計伺服器模式負載