Oracle ๋คํธ์ํฌ ํต์ ๋ฐฉ๋ฒ
์ธ๋ถ์์ Oracle์๋ฒ๋ฅผ ํต์ ํ๊ธฐ ์ํด์๋ Listener๋ฅผ ํตํด ํต์ ์ ํ๊ฒ๋ฉ๋๋ค. Listener๊ฐ ํด์ฃผ๋ ์์ ์ Connection์ ๋ง๋ค์ด์ฃผ๋ ๊ฒ ์ ๋๋ค. ์๋ฒ ๊ตฌ์ฑ ๋ฐฉ์์๋ฐ๋ผ ์กฐ๊ธ ๋ค๋ฅด์ง๋ง ๊ธฐ๋ณธ Dedicated Server์์ Connection์ด๋ User Process์ Server Process๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ๊ฒ์ ๋๋ค. ์ฆ, ํ๋ฒ ์ธ์ฆ ๋ ์ธ๋ถ์ฌ์ฉ์๊ฐ Oracle Database์์์ ์์ ์ ์ง์ ๋ Server Process๋ฅผ ํตํด ํ ์ ์๋๋ก ์ฐ๊ฒฐํด์ค๋๋ค. ์ต์ด์ ํ๋ฒ Connection์์ ์ ํตํด ์ธ์ ์ ์์ ฉํด์ค๋๋ค.
Database์์ ํต์ ๊ตฌ์กฐ๋ฅผ ๋ดค์๋ ์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ํต์ ํ๋ 2 Tier ๋ฐฉ์์ด ์๊ณ , ๋๋ถ๋ถ ์ฌ์ฉ๋๋ ๋ฐฉ์์ผ๋ก App๋ฅผ ํ๋ฒ ๊ฑธ์ณ ํต์ ํ๋ ๋ฐฉ์์ธ 3 Tier๊ฐ ์์ต๋๋ค.
2 Tier
์ง์ Database์ ๋ถ๋ ๊ตฌ์กฐ ์ ๋๋ค. ์ฝ๊ฒ ์ดํดํ์๋ฉด Sqlplus๋ฅผ ์ด์ฉํด์ ํฐ๋ฏธ๋์ ๋ช ๋ น์ ์ง์ ์์ ํ๋ ๊ฒ์ ๋๋ค.
3 Tier
๋ช ๋ น์ ์ง์ ์ฌ์ฉํ์ง ์๊ณ ์ฝ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํ Application์ ํตํด Database์ ํต์ ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์น์ฌ์ดํธ์์ ํ์๊ฐ์ ์ ํ๊ณ ๊ฐ์ ๋ฒํผ์ ๋๋ ์๋ ํด๋น ์ ๋ณด๊ฐ Database์ ์ ์ฅ๋๋ฏ์ด ๋ช ๋ น์ ๋ชจ๋ฅด๋๋ผ๋ Application์ด Database์ ํต์ ์์ ์ ํด์ค๋๋ค.
Listener ๊ตฌ์ฑ
Oracle์ ์ด๋ฌํ ์ธ๋ถ ํต์ ์ Listener๋ฅผ ํตํด์ ์งํํ๊ณ $ORACLE_HOME/network/admin/listener.ora๋ผ๋ ํ์ผ์ ํตํด ๊ด๋ฆฌ๊ฐ ๋ฉ๋๋ค. Listener๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ ์ ๋จผ์ ๊ธฐ์กด์ ์๋ Listener ์ ๋ณด๋ฅผ ์ญ์ ํ๊ณ listner์ ์ํ๋ฅผ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
์ค์ต ์ค๋น
OS : OEL 5.4
DB : Oracle 12.1.0.2
SID: newdb, PROD(1๊ฐ ์๋ฒ์ 2๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค)
hostname : host01
[newdb@host01 ~]$ cd $ORACLE_HOME/network/admin
[newdb@host01 admin]$ ls
listener.ora samples shrept.lst sqlnet.ora tnsnames.ora
[newdb@host01 admin]$ rm *
rm: cannot remove `samples': Is a directory
[newdb@host01 admin]$ ls
samples
[newdb@host01 admin]$ lsnrctl status
LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 09-JUL-2020 14:52:19
Copyright (c) 1991, 2014, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused
listener.ora ํ์ผ๋ง ์ง์๋ ๋์ง๋ง ์์ผ๋ก์ ์ค์ต์ ์ํด ํด๋น ๊ฒฝ๋ก์ ๋ชจ๋ ํ์ผ์ ์ง์ฐ๊ณ ์งํํ์ต๋๋ค. lsnrctl ๋ช ๋ น์ ์ฌ์ฉํด์ listener์ ๋ณด๊ฐ ์๋ค๋ฉด ์ค์ต ์ค๋น๋ ์๋ฃ๋ ๊ฒ ์ ๋๋ค.
1. Oracle Net Manager ์ฌ์ฉ
๋ชฉํ
-LISTENER1 ์ด๋ฆ์ ๋ฆฌ์ค๋๋ฅผ ๊ตฌ์ถ
-newdb ๋ฑ๋ก
-PROD ๋ฑ๋ก
-13000 ํฌํธ ์ฌ์ฉ
[newdb@host01 admin]$ netmgr
netmgr ๋ช ๋ น์ ์ฌ์ฉํด์ Oracle Net Manager ์คํํฉ๋๋ค.
GUI ๋ชจ๋์์ ์คํ๊ฐ๋ฅํฉ๋๋ค. Local์ "+" ๊ธฐํธ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ฆฌ์ค๋์ ์ด๋ฆ์ LISTENER1์ผ๋ก ์ง์ ํฉ๋๋ค.
์๋จ์ Select box์์ Listening Location์ ์ ํํ๊ณ ์ ๋ณด๋ฅผ ์ ๋ ฅํฉ๋๋ค. ํฌํธ๋ 13000์ผ๋ก ์ง์ ํ๊ณ Host์ IP ํน์ OS์ ๋ฑ๋ก๋ host๋ช ํน์ ๋๋ฉ์ธ๋ช ์ผ๋ก๋ ์ ๋ ฅ ๊ฐ๋ฅํฉ๋๋ค.
newdb@host01 admin]$ vi /etc/hosts
Host๋ช ๊ณผ ๊ด๋ จ๋ ๋ด์ฉ์ ์ ๊ฒฝ๋ก์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค. ํด๋น ์๋ฒ๋ host01์ด๋ผ๋ host๋ช ์นญ์ผ๋ก ์ง์ ๋์ด ์์ต๋๋ค.
์๋จ Selectbox์์ Database Services๋ก ๋ณ๊ฒฝํฉ๋๋ค. ํด๋น ์ ๋ณด๋ค์ ํ์ธํ๊ณ ์ ๋ ฅํ๊ณ newdb์ ์ ๋ณด๋ฅผ ์ ๋ ฅํด์ค๋๋ค. Oracle Home Directory๋ ์ด๋ฏธ ํ๊ฒฝ๋ณ์๋ก ์ง์ ๋์ด ์์ด ๊ฒฝ๋ก์ ๋ํ ์ ๋ณด๊ฐ ๋ฏธ๋ฆฌ ์ ๋ ฅ๋์ด์ ธ ์์ต๋๋ค.
Add Database ๋ฒํผ์ ํด๋ฆญํ์ฌ ์ด๋ฒ์๋ PROD์ ๋ํ ์ ๋ณด๋ฅผ ์ ๋ ฅํด์ค๋๋ค. ์ด์ ํ์ํ ์ ๋ณด๋ฅผ ๋ชจ๋ ์ ๋ ฅํ์ผ๋ ์ข์ธก ์๋จ์ File - Save Network Configuration์ ํด๋ฆญ ํ์ฌ ์ ์ฅํด์ค๋๋ค.
[newdb@host01 ~]$ cd $ORACLE_HOME/network/admin
[newdb@host01 admin]$ ls
listener.ora samples
[newdb@host01 admin]$ vi listener.ora
์ค์ ์์ ์ ๋๋ฌ์ผ๋ listener.oraํ์ผ์ ํ์ธํ์ฌ ์ ๋ ฅํ ์ ๋ณด๊ฐ ์๋์ง ํ์ธํด์ฃผ๊ณ listener๋ฅผ ์คํํด๋ณด๊ฒ ์ต๋๋ค.
[newdb@host01 ~]$ lsnrctl start listener1
๋ฆฌ์ค๋ ์คํ ๋ช ๋ น์ lsnrctl start <๋ฆฌ์ค๋๋ช > ํ์์ผ๋ก ์คํ๊ฐ๋ฅํฉ๋๋ค. ๋ฆฌ์ค๋๋ช ์ ์ ์ธํ๋ฉด default ๋ฆฌ์ค๋์ธ LISTENER๋ผ๋ ๋ช ์นญ์ ๋ฆฌ์ค๋๋ฅผ ์คํํ๊ฒ ๋ฉ๋๋ค. default ๋ฆฌ์ค๋์ ๋ํ ์ค๋ช ์ ์ถํ ๋ค๋ฅธ ๊ธ์์ ์งํํ๊ฒ ์ต๋๋ค.
์ค์ต๋๋ก listener1์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ํฌํธ 13000๋ฒ PROD์ newdb์ ๋ํ instance์ ๋ณด๊ฐ ๋ฑ๋ก๋์์ต๋๋ค. ํด๋น status๊ฐ UNKNOWN์ผ๋ก ๋จ๋ ๊ฒ์ ์ ์ ๋ฑ๋ก์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ถํ ๋ค๋ฅธ ๊ธ์์ ๋ค๋ฃจ๊ฒ ์ต๋๋ค.
2. Oracle Net Configuration Assistant ์ฌ์ฉ
Oracle Net Manager๊ณผ๋ ๋ค๋ฅด๊ฒ Instance๋ฑ๋ก์ ํ ์ ์์ต๋๋ค.
๋ชฉํ
-LISTENER2 ์ด๋ฆ์ ๋ฆฌ์ค๋๋ฅผ ๊ตฌ์ถ
-13010 ํฌํธ ์ฌ์ฉ
[oracle@host01 ~]$ netca
Listener configuration ์ฒดํฌํฉ๋๋ค.
๋ฆฌ์ค๋ ์ถ๊ฐ ์์ ์ ์ํด Add ์ฒดํฌ
LISTENER2๋ผ๋ ๋ช ์นญ์ผ๋ก ๋ฆฌ์ค๋๋ฅผ ์์ฑํฉ๋๋ค.
TCP ํ๋กํ ์ฝ์ ์ฌ์ฉํฉ๋๋ค.
ํฌํธ๋ 13010๋ฒ์ผ๋ก ์ง์ ํฉ๋๋ค.
๋ฆฌ์ค๋๋ ๋์ด์ ์ถ๊ฐํ์ง ์์ ๊ฒ ์ด๊ธฐ ๋๋ฌธ์ NO.
LISTENER2๋ฅผ ๋ฐ๋ก ์คํํฉ๋๋ค.
์ค์ ์ด ์๋ฃ๋์์ต๋๋ค. ์ด์ listener.ora ํ์ผ์ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
[newdb@host01 ~]$ cd $ORACLE_HOME/network/admin
[newdb@host01 admin]$ vi listener.ora
LISTENER2์ ๋ํ ์ ๋ณด๊ฐ ๋ฑ๋ก๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. SID_LIST_LISTENER1์ ์ ๋ณด์ฒ๋ผ ๋ฆฌ์ค๋์ ๋ฑ๋กํ๋ ์๋น์ค๋ฅผ ๊ธฐ์ฌํด์ฃผ๋ ๊ฒ์ด ์ ์ ๋ฑ๋ก์ ๋๋ค.
[newdb@host01 admin]$ lsnrctl status listener2
๋ฆฌ์ค๋์ ๋ํ ์ํ๋ฅผ ํ์ธํด๋ณด์ง๋ง ๋ฑ๋ก๋ ์๋น์ค๊ฐ ์๊ธฐ ๋๋ฌธ์ ์๋น์ค์ ๋ํ ์ ๋ณด๋ ๋์ค์ง ์์ต๋๋ค. ์๋ฌด๋ฐ ์๋น์ค๋ ๋ฑ๋กํ์ง ์๊ณ ๋ฆฌ์ค๋๋ง ์์ฑ๋๋ค๋ฉด ์๋ฌด๋ฐ ํ์๊ฐ ์๋ ๋ฆฌ์ค๋๊ฐ ๋ฉ๋๋ค. ํ์ง๋ง, ์ด๋ ๊ฒ ์๋น์ค๋ฅผ ๋ฑ๋กํ์ง ์์ ๋ฆฌ์ค๋์๊ฒ๋ ์๋น์ค๋ฅผ ์๋์ผ๋ก ๋ฑ๋กํ๋ ๋์ ๋ฑ๋ก ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋์ ๋ฑ๋ก์ ์๋ ๋งํฌ๋ฅผ ํตํด ์งํํ๊ฒ ์ต๋๋ค.
๋๊ธ