Dedicated Server์ Shared Server ์๋ฒ๋ฐฉ์ ์ค์
์ฌ์ฉ์๋ Database์ ์ง์ํ๊ณ Database๋ ํด๋น ์ง์์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํด์ค๋๋ค. ์ด๋ฌํ ๊ณผ์ ์์ ๋ด๋ถ์ ์ผ๋ก ๊ฒฐ๊ณผ๊ฐ๊น์ง ๋ฐํํด์ฃผ๋๋ฐ ์ค์ ๊ฐ๋ฅํ ์๋ฒ๋ฐฉ์์ด ๋๊ฐ์ง๊ฐ ์์ต๋๋ค. ๊ฐ ์ฌ์ฉ์ ๋ณ๋ก ํ๋ก์ธ์ค๋ฅผ ์ ๋ด๋งํฌํด์ฃผ๋ Dedicated Server ๋ฐฉ์๊ณผ ๋ฏธ๋ฆฌ ํ๋ก์ธ์ค๋ฅผ ๊ธฐ๋์์ผ ๋ค์ด์ค๋ ์์ฒญ๋ค์ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ Shared Process๊ฐ ์์ต๋๋ค.
Dedicated Server
Database์ ๋ณ๋ค๋ฅธ ์ค์ ์ ํ์ง ์๋ ๋ค๋ฉด Dedicated Server ๋ฐฉ์์ผ๋ก ์ค์ ๋ฉ๋๋ค. ๊ทธ๋ฆผ์์ ์ฒ๋ผ ๊ฐ ์ ์ ํ๋ก์ธ์ค์๊ฒ 1 ๋ 1๋ก ์ ๋ด๋งํฌํด์ฃผ๋ ์๋ฒ ํ๋ก์ธ์ค๊ฐ ์์ฑ๋ฉ๋๋ค. ์ฌ์ฉ์๋ก๋ถํฐ ์ฐ๊ฒฐ ์์ฒญ์ ํ์ ๋ Server Process๋ฅผ ์์ฑ์์ผ Connection์ ๋ง๋ค์ด ์ค๋๋ค.
์ฅ์
- ๋ช ๋ น ์ฒ๋ฆฌ๊ฐ ๋น ๋ฅด๋ค.
๋จ์
- ๋๊ณ ์๋ ํ๋ก์ธ์ค๊ฐ ์๊ฒจ resource ๋ญ๋น๊ฐ ๋ฐ์ํ๋ค. --> ์ ์ ํ๋ก์ธ์ค๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ํ์ฌ ์๋ฌด ์์ ์ ํ์ง ์์ผ๋ฉด ์๋ฒ ํ๋ก์ธ์ค๋ ์คํ๋์ด ์์ง๋ง ์๋ฌด๊ฒ๋ ํ๊ณ ์์ง ์๋๋ค.
Shared Server
Shared Server๋ ์ํ์ ๊ฐ๋ฉด ๋ฏธ๋ฆฌ ์ํ์๋ค์ด ์๋ฆฌ์์ ๋๊ธฐํ๊ณ ๋ฒํธํ๋ฅผ ๋ฝ์ ๊ณ ๊ฐ๋ค์ด ์์๋๋ก ์ํ์ฐฝ๊ตฌ์์ ์ ๋ฌด๋ฅผ ๋ณด๋ ๊ฒ๊ณผ ์ ์ฌํฉ๋๋ค. ๋ฏธ๋ฆฌ Server Process์ Dispatcher Process๋ฅผ ๊ธฐ๋์์ผ ๋๊ณ User Process๊ฐ ์ฐ๊ฒฐ ์์ฒญ์ ํ์๋ Listener๊ฐ ๋ฐ์์ Dipatcher์๊ฒ ๋ณด๋ด์ค๋๋ค. ๊ทธ๋ฌ๋ฉด ์์ฒญ์ด ๋ค์ด์์ ๋ Dispatcher๊ฐ ๋ฐ์์ SGA ๋ฉ๋ชจ๋ฆฌ์ Request Queue์์ ์์ฒญ ์์๋๋ก ๋ฃ์ต๋๋ค.
Request Queue์์ ์์ ์ด ์๋ ๊ฒ์ ํ์ธํ๊ณ ๋ฏธ๋ฆฌ ๊ธฐ๋๋์ด ์๋ Server Process๋ค์ ์์๋๋ก ์ผ์ ๋ฐ์์ ์ฒ๋ฆฌํฉ๋๋ค. ์ด๋ ๊ฒ ์งํ๋๋ฉด Dedicated Server์๋ ๋ค๋ฅด๊ฒ ๋๊ณ ์๋ Server Process์ ์๋ ์ค์ด๋ค ๊ฒ์ด๊ณ resource์ ๋ํ ๋ญ๋น๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
Server Process์์ ์์ ์ด ์๋ฃ๋์ด ๊ฒฐ๊ณผ๊ฐ์ User Process์๊ฒ ๋ฐํํ ๋๋ Response Queue๋ฅผ ์ฌ์ฉํฉ๋๋ค. 1๊ฐ ๋ฐ์ ์๋ Request Queue์๋ ๋ค๋ฅด๊ฒ Response Queue๋ ๊ฐ Dispatcher๋ง๋ค ์์ต๋๋ค. Dispatcher๋ Response Queue์ ๋ค์ด์จ ๊ฒฐ๊ณผ๋ฅผ User Process์๊ฒ ๋ณด๋ด์ค๋๋ค.
์ฅ์
- resource์ ๋ญ๋น๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
๋จ์
- sql๋ฌธ์ฅ์ ์ฒ๋ฆฌํ๋๋ฐ ๋น๊ต์ ๋๋ฆฝ๋๋ค.
์์ ์ฒ๋ฆฌ์ ๋ํ ์๊ฐ์ด ์กฐ๊ธ ๋ ๊ฑธ๋ฆฌ๋๋ผ๋ Resource์ ๋ํ ๋ญ๋น๋ฅผ ์ค์ด๋ ๊ฒ์ด ํจ์จ์ ์ด๊ธฐ ๋๋ฌธ์ ์ํฉ์ ๋ง๊ฒ Shared Server๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฒ๋ฐฉ์์ ๋ณํํด์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Shared Server ๋ฐฉ์์ผ๋ก ์ค์ ๋์ด ์๋๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฐ๊ฒฐ ๋ฐฉ์์ ๋ฏธ๋ฆฌ์ค์ ํ์ฌ ๋น ๋ฅธ ์ฒ๋ฆฌ๊ฐ ํ์ํ ํน์ ์์ ์ Dedicated Server ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํฉ๋๋ค.
Dedicated Server, Shared Server ์ค์ต
์ค์ตํ๊ฒฝ
OS : Red Hat Enterprise Linux Server release 6.10
DB : Oracle 11.2.0.1
SID: orcl
hostname : 601d2fce71dc
listener.ora ํ์ผ์ ์ค์ ์ ์๋์ ๊ฐ๊ณ ๋ฆฌ์ค๋์ ๋์ ๋ฑ๋ก์ ์ํด local_listener parameter์ ๊ฐ๋ "" Default ์ํ๋ก ์ค์ต ์งํํฉ๋๋ค.
$ORACLE_HOME/network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 601d2fce71dc)(PORT = 1521))
)
)
Dedicated Server ์ค์ต
Dedicate Server๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ค ๋ณ๋ค๋ฅธ ์ค์ต์ด ์์ต๋๋ค. tnsnames.oraํ์ผ์ ์ฐ๊ฒฐ ๋ฐฉ์์ ์ค์ ํ๊ณ Dedicated Server๋ก ๋ค์ด๊ฐ๋์ง ํ์ธํ๋ ์ค์ต์ ํด๋ณด๊ฒ ์ต๋๋ค.
$ORACLE_HOME/network/admin/tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 601d2fce71dc)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
ORCL_D =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 601d2fce71dc)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
[oracle@601d2fce71dc ~]$ sqlplus system/oracle@orcl
SYSTEM@orcl>
select
server
,service_name
from v$session
where username = 'SYSTEM';
์๋กญ๊ฒ ์ธ์ ์ ์ด๊ณ ์ ์์ ์๋ํด๋ณธ๋ค.
[oracle@601d2fce71dc ~]$ sqlplus system/oracle@orcl_d
SYSTEM@orcl_d>
select
server
,service_name
from v$session
where username = 'SYSTEM';
์ ์ ํ๋ก์ธ์ค๋ง๋ค 1๋1๋ก ์๋ฒ ํ๋ก์ธ์ค๊ฐ ์์ฑ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
Shared Server ์ค์ต
๋ชฉํ
- Shared server process ๊ฐ์๋ ์ด๊ธฐ 2๊ฐ, ์ต๋ 10๊ฐ ์์ฑํ๋ค.
- dispatcher ๊ฐ์๋ ์ด๊ธฐ 1๊ฐ, ์ต๋ 3๊ฐ ์์ฑํ๋ค.
- 400๊ฐ ์ธ์ ์ ๋์์ ์ด ์ ์๊ณ , ๊ทธ ์ค 5๊ฐ๋ dedicated session์ด ์ด๋ฆฌ๋๋ก ์ค์ ํ๋ค.
[oracle@601d2fce71dc ~]$ sqlplus system/oracle
SYSTEM@orcl> show parameter shared_server
SYSTEM@orcl> alter system set shared_servers = 2;
shared server process์ ์ด๊ธฐ ๊ฐฏ์ ๋ฅผ 2๊ฐ๋ก ์ง์ ํฉ๋๋ค.
SYSTEM@orcl> alter system set max_shared_servers = 10;
shared server process์ ์ต๋ ๊ฐฏ์๋ฅผ 10๊ฐ๋ก ์ง์ ํฉ๋๋ค.
SYSTEM@orcl> show parameter shared_server
SYSTEM@orcl> show parameter dispatcher
SYSTEM@orcl> alter system set dispatchers='(PROTOCOL=TCP)(dispatchers=1)';
dispatcher์ ์ด๊ธฐ ๊ฐฏ์๋ฅผ 1๋ก ์ง์ ํฉ๋๋ค.
SYSTEM@orcl> alter system set max_dispatchers = 10;
dispatcher์ ์ต๋ ๊ฐฏ์๋ฅผ 10์ผ๋ก ์ง์ ํฉ๋๋ค.
SYSTEM@orcl> show parameter dispatcher
SYSTEM@orcl> alter system set sessions=400 scope=spfile;
400๊ฐ์ session์ ๋์์ ์ด์ ์๋๋ก ์ค์ ํฉ๋๋ค.
SYSTEM@orcl> alter system set shared_server_sessions=395;
๊ทธ ์ค์์ 5๊ฐ๋ dedicated server๋ก ์ด์ ์๋๋ก ์ง์ ํฉ๋๋ค. ์ ์ฒด 400๊ฐ์ session ์ค์ 395๊ฐ์ ์ธ์ ์ shared server๋ก ์ง์ ํ์ฌ ์ค์ ๊ฐ๋ฅํฉ๋๋ค.
SYSTEM@orcl> conn / as sysdba
Connected.
SYS@orcl> shutdown immediate;
SYS@orcl> startup;
์ ์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ณ๊ฒฝํ์ผ๋ ์ฌ์คํํด์ค๋๋ค.
SYS@orcl> show parameter sessions
๋ชฉํ์ ๋ํ ๋ณ๊ฒฝ์ ์๋ฃํ์ผ๋ ํ์ธ์์ ์ ํด๋ณด๊ฒ ์ต๋๋ค.
[oracle@601d2fce71dc ~]$ ps -ef | grep ora_[ds]0
d00... : dispatcher
s00... : server process
OS๋จ์์ ์ฌ๋ผ์ ์๋ ํ๋ก์ธ์ค๋ฅผ ํ์ธํ๋ ์์ ์ ํด๋ดค์ต๋๋ค. ์ฐ๊ฒฐ๋ ์ธ์ ์ด ์๋๋ฐ๋ ๋ถ๊ตฌํ๊ณ ์ค์ ๋๋ก ์ด๊ธฐ์ 1๊ฐ์ dispatcher์ 2๊ฐ์ server process๊ฐ ๋์์ ธ ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ์ด์ ๋ ์ง์ ์ฐ๊ฒฐ์์ ์ ํตํด ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
tnsnames.ora ๋ณ๊ฒฝ
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 601d2fce71dc)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
ORCL_D =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 601d2fce71dc)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCL_S =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 601d2fce71dc)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = orcl)
)
)
ORCL_S๋ผ๋ ์ฐ๊ฒฐ ๋ณ์นญ์ผ๋ก SHARED ๋ฐฉ์์ ์ ์์ ์ค์ ํ์ต๋๋ค.
[oracle@601d2fce71dc ~]$ sqlplus system/oracle@orcl_s
SYSTEM@orcl_s>
select
server
,service_name
from v$session
where username = 'SYSTEM';
Shared Server ๋ฐฉ์์ผ๋ก ์ ์ํ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ธ์ ์ ํ๋ ๋ ๋ง๋ค์ด ๋๊ฐ์ด Shared ๋ฐฉ์์ผ๋ก ์ ์ํด๋ณด๊ฒ ์ต๋๋ค.
[oracle@601d2fce71dc ~]$ sqlplus system/oracle@orcl_s
SYSTEM@orcl_s>
select
server
,service_name
from v$session
where username = 'SYSTEM';
2๊ฐ์ Shared Server๋ก ์ ์ํ์ ๋ ํ๋๋ NONE์ผ๋ก ํ๊ธฐ๋ฉ๋๋ค. Shared Server์ ๊ฒฝ์ฐ ์์ ํ๊ณ ์์ ๋๋ง Shared๋ก ํ์๊ฐ ๋ฉ๋๋ค. ๋ค๋ฅธ ์ธ์ ์์๋ ์์ ์ ํ๊ณ ์์ง ์์ NONE์ผ๋ก ํ๊ธฐ ๋์์ต๋๋ค.
Dispatcher ํ์ธ
SYSTEM@orcl_s> select name, status from v$dispatcher;
Shared Server ํ์ธ
SYSTEM@orcl_s> select name, status from v$shared_server;
Shared Server process๋ค์ ์ํ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ํ์ฌ Shared Server๋ก ํ๋์ ์ธ์ ์ ์ ์ํ์ฌ EXEC ์ํ๋ก ํ์๋์๊ณ ๋๋จธ์ง ํ๋ก์ธ์ค๋ WAIT๋ก ํ๊ธฐ ๋์์ต๋๋ค.
๋๊ธ