오랜만에 DB에 접속하려니

이런 에러가 나왔다. 리스너가 요청되는 서비스를 모른다는 내용 같아서 찾아보니 Oracle 데이터베이스의 리스너가 요청된 서비스 이름을 인식하지 못할 때 발생한다고 한다.

이렇게 나왔는데 CLRExtProc 서비스만 인식이 되고 orcl 이나 xe는 인식이 안되는 상태였다.


이런식으로 작성되어 있는데 tnsnames 의 Host와 SERVICE NAME 이 맞게 선언되어 있는지 확인하고 리스너 파일에서 동일한 값을 사용하는지 확인한다.
편의를 위한 코드내역
tnsnames
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 호스트 IP주소)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
LISTENER_XE =
(ADDRESS = (PROTOCOL = TCP)(HOST = 호스트 IP주소)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
listener
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\OracleDB\dbhomeXE)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\OracleDB\dbhomeXE\bin\oraclr.dll")
)
(SID_DESC =
(SID_NAME = XE)
(ORACLE_HOME = C:\OracleDB\dbhomeXE)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 호스트 IP주소)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
DEFAULT_SERVICE_LISTENER = XE
※경로같은 부분은 일부 수정이 필요할 수 있음※
이러고 다시 cmd 창에서 리스너의 상태를 확인한다. 본인이 설정한 서비스 이름에 대한 처리기가 나오면 성공.
