본문 바로가기
카테고리 없음

SQL Developer 접속 오류 해결 방법(IO 오류)

by 디스이즈데브 2024. 7. 30.

오랜만에 SQL을 공부하기 위해 예전에 설치했던 SQL Developer를 실행시킨 후 접속을 시도했지만 오류가 발생했고 이를 해결하는 과정에 대해 작성해 보겠습니다. 6개월 정도 지나긴 했지만 분명히 예전에는 아무 문제 없이 접속했던 SQL Developer가 어떤 설정도 바꾸지 않았는데 접속 오류가 발생했고 정말 어렵게 해결해 해결 과정을 설명드리려고 합니다.

 

오류 코드

발생했던 오류 코드는 아래와 같았습니다.

IO 오류: The Network Adapter could not establish the connection 업체 코드 17002

접속 오류 팝업 이미지
접속 오류 팝업 이미지

 

1. SQL developer 다시 설치하기

위에 코드를 보면 데이터베이스 서버와의 연결이 잘 이루어지지 않았음을 알 수 있었지만, 우선 무식하게 Developer를 삭제 후 다시 설치해 보았습니다. 완전히 삭제하기 위한 아래 방법으로 삭제 후 재설치했지만 동일한 원인이 발생했습니다.

해당 방법은 소용없었지만 SQL developer를 완전히 삭제하는 방법을 위해 적어보았습니다.

 

※ SQL developer 완전히 삭제 방법

1) SQL developer를 설치해 압축해제한 C드라이브에서 해당 폴더를 삭제합니다.
폴더명 : sqldeveloper

2) 그리고 SQL developer를 설치하면 캐시나 로그파일, 설정 저장을 위해 아래 경로에 파일이 두 개 생성되고 해당 파일도 삭제해야 완전히 삭제할 수 있습니다.

경로 : C:\Users\<사용자명>\AppData\Roaming

삭제 파일명 : a. SQL Developer, b. sqldeveloper

 

 

2. TNS Listener 확인하기

재설치 후에도 동일한 현상이 발생하여 이제는 다른 방법을 찾아보다가 TNS Listener를 확인해 봐야 한다는 것을 알게 되었습니다.

어떻게 확인하는지 방법을 설명드리기에 앞서 TNS Listener가 무엇인지 간단히 설명드리면, TNS Listener는 오라클 데이터 베이스의 네트워크 서비스 중 하나로, 클라이언트 애플리케이션이 데이터베이스 서버와 연결할 수 있도록 중간에서 연결을 관리하는 중요한 역할을 하는 서비스입니다. 여러가지 기능들이 있지만 대표적으로 클라이언트 애플리케이션이 데이터베이스에 접속하려 할 때 TNS Listener는 연결 요청을 수신하고 클라이언트는 데이터베이스 서버의 호스트 이름, 포트번호, 서비스 이름 등을 지정하여 접속 요청을 보내고 Listener는 이 요청을 받아들여 적절한 데이터베이스 인스턴스에 전달합니다. 이를 통해 클라이어는 특정 데이터 베이스 서비스에 연결될 수 있고 이런 역할을 수행하는 Listener가 실행 중이어야 데이터베이스에 접속할 수 있는 것입니다.

 

그렇다면 TNS Listener가 실행되고 있는지는 어디서 확인할까요?

이는 window > 컴퓨터 관리 검색 > 서비스 및 응용 프로그램 > 서비스에서 확인할 수 있습니다.

 

해당 경로로 들어가 확인해 보니 아래 캡처 이미지처럼 TNS Listener가 실행되지 않은 상태임을 알 수 있었고 오른쪽 클릭을 통해 속성으로 들어가 시작을 누르니 바로 아래 캡처 이미지처럼 시작 오류가 발생했습니다.

TNS Listener 실행 여부 확인 캡쳐 화면
TNS Listener 실행 여부 확인 캡쳐 화면

 

 

3. TNS Listener 시작을 위해 설정 값 확인하고 수정해 주기

이제 TNS Listener를 실행시켜야 한다는 것을 알게 되었고 TNS Listener가 실행되지 않는 원인을 다시 한번 찾아보았습니다. 여러 가지 원인이 있을 수 있겠지만 가장 대표적으로 발생하는 원인으로 listener.ora파일과 tnsnames.ora 파일의

HOST IP주소가 실제 IP 주소와 다르기 때문에 발생하는 경우가 많다는 것을 알게 되었습니다.

 

그래서 아래 방법으로 내 PCIPv4주소를 확인한 후에 listener.ora파일과 tnsnames.ora 파일이 있는 경로로 들어가 보았습니다.

 

IP주소 확인하는 방법
윈도우 > cmd(
명령 프롬프트) 실행 > ipconfig 입력 > IPv4 주소 확인

 

listener.ora파일과 tnsnames.ora 파일 경로

파일 경로: C드라이브>app>사용자>product >21c>homes>OraDB21Home>network>admin

*해당 경로는 설치한 오라클의 버전에 따라, HOME의 위치에 따라 다를 수 있으며, 결론적으로 오라클 홈 디렉터리 안에 network> admin 폴더 안에 있습니다.

 

해당 폴더에 들어간 후 각각 파일을 메모장을 통해 열어줍니다.

메모장을 통해 들어가면, 아래와 같이 HOST로 시작하는 부분과 함께 IPv4 주소가 적혀 있는 것을 볼 수 있습니다.

해당 부분이 위에 CMD에서 확인한 PC IPv4주소와 동일하면 되며,

동일하지 않을 경우 같게 변경해 준 후 저장해 주면 됩니다.

 

1) listener.ora 
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =IPv4
주소)(PORT =포트번호))

 

2) tnsnames.ora

(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = IPv4주소)(PORT =포트번호))

LISTENER_XE =   (ADDRESS = (PROTOCOL = TCP)(HOST = IPv4주소)(PORT = 포트번호))

 

여기서 두 개 파일들의 역할을 간단히 알아보면,

listener.ora Listener가 어떤 포트와 프로토콜로 클라이언트 연결을 수신할지를 정의하는 역할을 수행하고 이는 데이터베이스 인스턴스가 시작될 때 자동으로 Listener에 등록되고 클라이언트가 특정 데이터베이스 서비스에 접근할 수 있도록 합니다.

tnsnames.ora 파일은 클라이언트 측에서 사용되는 구성 파일로 네트워크 서비스 이름과 해당 데이터베이스 서버에 대한 연결정보를 정의하는 역할을 합니다. 클라이언트는 이 파일을 참조하여 네트워크 서비스 이름을 기반으로 올바른 데이터베이스 인스턴스에 연결합니다.

따라서 해당 파일에서 HOST의 이름이 해당 PC IPv4주소와 동일해야 TNS Listener가 실행됩니다,

 

4. TNS Listener 실행하기

위의 파일들의 HOST 주소를 올바르게 변경해 준 후 다시 한번 컴퓨터 관리에 들어가 TNS Listener를 실행시켜 줍니다.

참고로 TNS Listener의 이름은 오라클 데이터베이스의 인스턴스 버전에 따라 다르며, OracleOraDB21Home1TNSListener 혹은 OracleXETNSListener 등으로 되어 있습니다. 중요한 것은 TNSListener이름이 들어간 서비스를 실행해 주면 됩니다.

마지막을 sqldeveloper를 종료 후 다시 실행해 준 후 데이터베이스에 접속하면 정상적으로 접속됨을 확인할 수 있습니다.

 

마무리

이렇게 SQL Developer의 접속 오류가 발생할 경우 해결하는 방법에 대해 알아보았습니다. 위에서 알아본 원인 외에 데이터베이스 서버 가동 여부에 따라, 네트워크 문제에 따라, 방화벽 설정 문제 등에 따라 오류가 발생할 수 있습니다. 어떤 원인인지는 결국 하나씩 찾아봐야 하겠지만 접속 오류가 발생했을 경우 TNS Listener가 실행되어 있는지 실행 안되어 있을 경우 한번 실행해 보고 그래도 안될 경우 IPv4 HOST 주소가 잘 되어 있는지 확인해 보시는 것을 추천드리며, 마지막으로 간략히 방법을 요약해 보고 글을 마치겠습니다.

 

1) TNS Listener 실행 여부 확인

2) TNS Listener 실행해 보기

3) 안 될 경우 listener.ora, tnsnames.ora 파일의 HOST 주소 확인

4) HOST 주소 알맞게 변경

5) TNS Listener 재실행