DB 접속 실패 : java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
localhost:1521:orcl
ORA-12505 오류는 DriverManager Object를 이용하여 오라클과 연결할 때
SID를 못 찾거나 인식되지 않을때 발생한다.
주요 원인
1. 컴퓨터 이름을 바꿨을때....
2. 유동IP 일경우
확인방법:
1. 실행>cmd> lsnrctl services
실행 후 나온 리스트 중 DEDICATED이고 상태가 READY인 SID를 사용하면 됨
여기 화면에 총 4개의 SID가 있는 것이 보이며,
상태가 Ready 상태인 것만 정상적으로 작동되는 것이다.
화면에서는 가장 위에 있는 SID는 사용이 안되지만 나머지 SID 3개는 상태가 Ready로 되어 있기 때문에 사용 가능하다.
에러나는 SID를 확인 해보자
아마 lsnrctl services 명령 실행 후 자신이 설정한 SID가 보이지 않거나 Ready 상태가 아닐 것이다.
환경 셋팅 파일로 가도록 하자
저의 환경은 10g로 되어 있기 때문에 10g에 맞추도록 하겠습니다.
C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN
10g를 기본 경로로 설치하면 이 경로로 들어가시면 됩니다.
다른 버젼이신분은 경로는 다르지만 DB 안에 NewWork 안에 admin 폴더가 있습니다.
아님 검색을 하세요
listener.ora
tnsnames.ora
이 2개의 파일이 문제가 있습니다.
파일을 열어보면
listener.ora ============================================
# listener.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1) <<< 오라클 설치 경로
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = SEOL)(PORT = 1521)) <<<<<< IP , 호스트, 포트
)
)
===============================================================
listener.ora에서 마지막 부분에 보시면
HOST 와 PORT 등 여러 셋팅 부분이 있습니다.
컴퓨터 이름이나 오라클 PORT 변경하신 분들은 예전 셋팅으로 되어 있는 경우가 있습니다. 바꿔주세요
tnsnames.ora ====================================================
# tnsnames.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = SEOL)(PORT = 1521)) <<<<<<<<<< IP, 호스트, 포트
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl) <<<<<<<<<<<<<<<<<<<<< SID
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
===============================================================
tnsnames.ora 파일은 같은 폴더에 있다
여기서도 IP, 호스트, 포트 등을 확인 해서 변경해주면 된다..
그리고 재부팅 함 해주면 접속이 될 것입니다.
아직 자세한 것은 잘 모르겠고...... 간단히만 배웠습니다.
고수님들!!!! 질타 ~~~~~~~~~~ 많이 해주세욥
참고:
listener.ora 설정 파일이 잘못됐을 경우도 있다고 한다.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = 오라클 설치경로)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = 추가할SID)
(ORACLE_HOME = 오라클 설치경로)
(SID_NAME = 추가할SID)
)
)
[출처] ORA-12505, TNS:listener does not currently know of SID given in connect descriptor (오라클과자바) |작성자 애니스
'DB > 오라클' 카테고리의 다른 글
TOAD 단축키 (0) | 2009.05.29 |
---|---|
SYS 계정 비번 잃어 버렸을때 (1) | 2009.04.24 |
숫자함수(Number Functions) (1) | 2009.03.17 |
오라클 계정 lock 푸는 법 (1) | 2009.03.16 |
오라클 함수 (1) | 2009.03.16 |