-Oracle Listener ๋์ ๋ฑ๋ก

์ค์ตํ๊ฒฝ
OS : Red Hat Enterprise Linux Server release 6.10
DB : Oracle 11.2.0.1
SID: newdb, PROD(1๊ฐ ์๋ฒ์ 2๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค)
hostname : 601d2fce71dc
Oracle Listener๋ฅผ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ์๋ ๋๊ฐ์ง๊ฐ ์์ต๋๋ค. ๋์ ๋ฑ๋ก๊ณผ ์ ์ ๋ฑ๋ก. ์ ์ ๋ฑ๋ก์ listener.oraํ์ผ์ ์ง์ ์๋น์ค๋ฅผ ๋ฑ๋กํด์ฃผ๋ ๋ฐฉ๋ฒ ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ์๋ ๋งํฌ๋ฅผ ํตํด ํ์ธํฉ๋๋ค.
[Oracle] Listener ๋คํธ์ํฌ ๊ตฌ์ฑ ์ ์ ๋ฑ๋ก listener.ora ์์ฑ
Oracle ๋คํธ์ํฌ ํต์ ๋ฐฉ๋ฒ ์ธ๋ถ์์ Oracle์๋ฒ๋ฅผ ํต์ ํ๊ธฐ ์ํด์๋ Listener๋ฅผ ํตํด ํต์ ์ ํ๊ฒ๋ฉ๋๋ค. Listener๊ฐ ํด์ฃผ๋ ์์ ์ Connection์ ๋ง๋ค์ด์ฃผ๋ ๊ฒ ์ ๋๋ค. ์๋ฒ ๊ตฌ์ฑ ๋ฐฉ์์๋ฐ๋ผ ์กฐ๊ธ ๋ค๏ฟฝ๏ฟฝ
myjamong.tistory.com
์ ์ ๋ฑ๋ก VS ๋์ ๋ฑ๋ก
์ ์ ๋ฑ๋ก๊ณผ ๋์ ๋ฑ๋ก์ ๊ฐ์ฅ ํฐ ์ฐจ์ด๋ Oracle Instance๊ฐ ๋ฆฌ์ค๋๋ฅผ ์๋์ผ๋ก ์ธ์ ํ๋๋ ๋ชปํ๋๋์ ์ฐจ์ด์ ๋๋ค. ์ ์ ๋ฑ๋ก์ listener.oraํ์ผ์ ์ง์ ์๋น์ค๋ฅผ ๋ฑ๋กํด์ฃผ๋ ๊ฒ์ด๋ค. ๋์ ๋ฑ๋ก์ PMON์ด๋ผ๋ ํ๋ก์ธ์ค๊ฐ LREGํ๋ก์ธ์ค๋ฅผ ํตํด ๋ฆฌ์ค๋์ ๋ฑ๋ก ๊ฐ๋ฅํ ์๋น์ค๋ฅผ ์๋์ผ๋ก ๋ฑ๋กํด์ฃผ๋ ๊ฒ ์ ๋๋ค.
listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 601d2fce71dc)(PORT = 1521))
)
)
LISTENER1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 601d2fce71dc)(PORT = 1522))
)
SID_LIST_LISTENER1 =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = newdb)
(ORACLE_HOME = /opt/oracle/app/product/11.2.0/dbhome_1)
(SID_NAME = newdb)
)
(SID_DESC =
(GLOBAL_DBNAME = PROD)
(ORACLE_HOME = /opt/oracle/app/product/11.2.0/dbhome_1)
(SID_NAME = PROD)
)
)
listener.oraํ์ผ์ ์์ ๊ฐ์ด ๊ตฌ์ฑํด๋ดค์ต๋๋ค. ์ฐ์ 2๊ฐ์ ๋ฆฌ์ค๋๋ฅผ ์คํ์ํค๊ณ ์ํ๋ฅผ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
[oracle@601d2fce71dc ~]$ lsnrctl start
[oracle@601d2fce71dc ~]$ lsnrctl start listener1
๊ฐ๊ฐ ๋ฆฌ์ค๋๋ฅผ ์คํํฉ๋๋ค. start ๋ช ๋ น ๋ค์ ๋ฆฌ์ค๋ ๋ช ์ ์ ๋ ฅํ์ง ์์ผ๋ฉด LISTENER๋ผ๋ default ๋ช ์นญ์ ๋ฆฌ์ค๋๋ฅผ ์คํํด์ค๋๋ค.
[oracle@601d2fce71dc ~]$ lsnrctl ser

LISTENER ๋ฆฌ์ค๋์ ์๋น์ค๋ฅผ ํ์ธํด์ค๋๋ค. ๊ฐ๊ฐ ์๋น์ค์ ์ํ๊ฐ READY๋ก ๋ณด์ฌ์ง๋๋ค.
[oracle@601d2fce71dc ~]$ lsnrctl ser listener1

LISTENER1 ๋ฆฌ์ค๋์ ์๋น์ค๋ฅผ ํ์ธํด์ค๋๋ค. ์ด๋ฒ์๋ UNKNOWN์ด๋ผ๋ ์ํ๊ฐ์ด ๋ณด์ฌ์ง๋๋ค. ์ด๋ค ์ฐจ์ด๋ฅผ ๊ฐ๊ณ ์๋์ง ์์๋ณด๊ฒ ์ต๋๋ค.
UNKNOWN VS READY
์ฐ์ listener.oraํ์ผ์ ๋ฑ๋ก๋์ด ์๋ ์ ๋ณด๋ฅผ ํ์ธํด๋ณด๋ฉด LISTENER ๋ฆฌ์ค๋๋ LISTENER1 ๋ฆฌ์ค๋์ ๋ค๋ฅด๊ฒ ์๋น์ค๋ฅผ ๋ฑ๋กํ์ง๋ ์์๋๋ฐ ์๋ฒ์ค์ ์ํ๊ฐ ๋ณด์ฌ์ง๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ๋ฐ๋ก ๋์ ๋ฑ๋ก๊ณผ ์ ์ ๋ฑ๋ก์ ํ์๋ฅผ UNKNOWN๊ณผ READY๋ก ํ๊ฒ ๋ฟ์ ๋๋ค. UNKNOWN์ด๋ผ๊ณ ํด์ ์๋์ด ์ํ๊ฑฐ๋ ๊ทธ๋ฐ ๊ฒ์ด ์๋๊ณ ๋จ์ง ๊ตฌ๋ถ์ ์ํ ํ์์ผ ๋ฟ์ ๋๋ค.
๋์ ๋ฑ๋ก
๊ทธ๋ผ ๋์ ๋ฑ๋ก์ด ์ด๋ป๊ฒ ๊ตฌ์ฑ๋๋ ๊ฒ์ธ์ง ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.

๋์ ๋ฑ๋ก์ PMON์ด๋ผ๋ ํ๋ก์ธ์ค๊ฐ LREG๋ผ๋ ํ๋ก์ธ์ค๋ฅผ ํตํด ์๋์ผ๋ก ๋ฆฌ์ค๋์ ์๋น์ค๋ฅผ ๋ฑ๋กํด์ค๋๋ค. ์๋น์ค๋ฅผ ์ด๋ค ๋ฆฌ์ค๋์ ๋ฑ๋กํด์ค์ผํ ์ง๋ local_listener ํ๋ผ๋ฏธํฐ๋ฅผ ํตํด ๊ด๋ฆฌ๊ฐ ๋์ด์ง๋๋ค.
local_listener parameter
SYS@newdb> show parameter local_listener

local_listener์ default ๊ฐ์ "" ์ ๋๋ค. ์ด๋ด๋๋ "LISTENER"์ด๋ผ๋ ๋ช ์นญ์ ๋ฆฌ์ค๋์ ๋์ ๋ฑ๋กํ๊ฒ ๋ค๋ ๋ป์ ๋๋ค. newdb๋ง๊ณ PROD SID๋ฅผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ธฐ๋ณธ local_listener๊ฐ์ ์ฌ์ฉํ๊ณ ์์ด LISTENER ๋ฆฌ์ค๋์ ์๋น์ค ์ํ๋ฅผ ๋ดค์๋ listener.oraํ์ผ์ ์๋น์ค๋ฅผ ๋ฑ๋กํ์ง ์์์ด๋ ๋์ ์๋น์ค ์ ๋ณด๊ฐ ์์๊ณ READY๋ก ํ์๋์ด ์์์ต๋๋ค.
๋ฐ๋ฉด, LISTENER1์ ๊ฒฝ์ฐ ์ง์ listener.ora ํ์ผ์ SID_LIST์ ๊ธฐ์ฌํ์ฌ ์ ์ ๋ฑ๋ก๋์ด ์์๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ผ local_listener์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ณ๊ฒฝํด์ LISTENER1์ ๋์ ๋ฑ๋ก์์ ์ ํด๋ณด๊ฒ ์ต๋๋ค.
LISTENER1์ newdb ๋์ ๋ฑ๋ก
SYS@newdb> alter system set local_listener='(description=(address=(protocol=tcp)(host=601d2fce71dc)(port=1522)))';
local_listener ํ๋ผ๋ฏธํฐ์ ์ง์ description์ ๋ณด๋ฅผ ์ ๋ ฅํด์ค๋๋ค.
[oracle@601d2fce71dc ~]$ lsnrctl ser listener1

LISTENER1 ๋ฆฌ์ค๋์ ์๋น์ค๋ฅผ ํ์ธํด๋ณด๋ newdb๊ฐ READY๋ก ๋์ด์๋ ์๋น์ค ํ๋ ๋ ์์ฑ๋์์ต๋๋ค. ์ ์ ๋ฑ๋ก๊ณผ ๋์ ๋ฑ๋ก์ ๋ณ๊ฐ๋ก ์๋น์ค์ ๋ชจ๋ ๋ฑ๋ก ๊ฐ๋ฅํฉ๋๋ค.
[oracle@601d2fce71dc ~]$ lsnrctl ser

๋ฐ๋ฉด LISTENER์ ์๋น์ค๋ฅผ ํ์ธํด๋ณด๋ newdb๋ก ์์๋ ์๋น์ค๊ฐ ์ฌ๋ผ์ง๊ฒ์ ํ์ธ๋ฉ๋๋ค. local_listener ํ๋ผ๋ฏธํฐ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋์๋ ์ ๋ณด๊ฐ ์์ ๋์๊ธฐ ๋๋ฌธ์ ์ฌ๋ผ์ก์ต๋๋ค. ๋ณต์ ๋ฑ๋กํ๋ฉด ์ฌ๋ฌ ๋ฆฌ์ค๋์ ๋์ ๋ฑ๋ก์ด ๊ฐ๋ฅํฉ๋๋ค.
SYS@newdb> alter system set local_listener=
'(description=(address=(protocol=tcp)(host=601d2fce71dc)(port=1522)))'
,'(description=(address=(protocol=tcp)(host=601d2fce71dc)(port=1521)))';
","๋ฅผ ์ฌ์ฉํด์ ์ฌ๋ฌ๊ฐ์ ๋ฆฌ์ค๋์ ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋์ ๋ฑ๋กํ ์ ์์ต๋๋ค.
[oracle@601d2fce71dc ~]$ lsnrctl ser

์ด์ ๊ณผ ๊ฐ์ด ๋๊ฐ์ ๋ฆฌ์ค๋๊ฐ ๋ฑ๋ก๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๋๊ธ