윈도우에서 Oracle의 TNSListener는 서비스로 등록된다. 제어판이나 services.msc를 통하면 등록된 서비스를 확인할 수 있다.
만약 TNSListener가 시작되지 않는다면 HOST 설정이 잘못된 것은 아닌지 의심해볼 필요가 있다. 제공된 관리용 도구를 이용할 수도 있겠지만, 직접 설정 파일을 조작하는것이 훨씬 바르고 간단하다.1
<< IMG : HOST 설정이 올바르지 않을 경우의 에러 메시지 : HOST 설정이 잘못됐을 경우, TNSListener 서비스가 실행되자마자 죽어(끝나)버리는 현상이 생긴다. >>
관련 파일은 다음과 같다.
${ORACLE}/product/10.2.0/db_1/NETWORK/ADMIN
- listener.ora
- tnsnames.ora
여기서 ${ORACLE}은 Oracle이 설치된 경로를 의미한다. 버전에 따라서 10.2.0은 달라질 수 있다.
파일을 텍스트 편집기로 열어보면 대충 다음과 같은 구문이 보인다. (IP는 대충 랜덤으로 친거니까 개의치 마시라.)
listener.ora
<TEXTAREA class="Cpp" style="DISPLAY: none" name=CodeHighLighterCode rows=10 readOnly cols=60>ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 240.102.20.135)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )</TEXTAREA>
- ORCL =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 240.102.20.135)(PORT = 1521))
- (CONNECT_DATA =
- (SERVER = DEDICATED)
- (SERVICE_NAME = orcl)
- )
- )
tnsnames.ora
<TEXTAREA class="Cpp" style="DISPLAY: none" name=CodeHighLighterCode rows=10 readOnly cols=60>ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 240.102.20.135)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )</TEXTAREA>
- ORCL =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 240.102.20.135)(PORT = 1521))
- (CONNECT_DATA =
- (SERVER = DEDICATED)
- (SERVICE_NAME = orcl)
- )
- )
여기서 HOST 값을 다시 확인해보고 설정해주면 된다.
이 때 IP를 이용하는 것 보다는 호스트 이름을 이용하는것이 여러모로 좋은데, IP가 변경되더 설정 파일을 바꾸지 않아도 되기 때문이다.
윈도우에서 호스트 이름을 확인하려면, 명령행에서 hostname이란 명령을 사용하면 된다.
hostname 명령을 이용하면 호스트 이름을 확인할 수 있다.
설정을 바꾸고 다시 서비스를 시작하면, 이제는 제대로 동작하는것을 확인할 수 있을 것이다.
[출처] Oracle - TNSListener 서비스가 시작되지 않을 때|작성자 뽁태
'DB > Oracle' 카테고리의 다른 글
오라클 session의 관련된 잡다한 지식. (0) | 2015.09.21 |
---|---|
ORA-00333: redo log read error 발생 시 (1) | 2015.08.26 |
Windows 2008 R2 (or Windows 7)에 오라클 10g 설치시 주의사항 (0) | 2013.10.10 |
Oracle TABLESPACE 생성 후 유저 생성 팁 (0) | 2013.10.02 |
오라클 OCI 함수 사용법 (0) | 2013.04.16 |