본문 바로가기
Data & Programming/Oracle

[오라클-오류] ORA-12170: TNS:Connect timeout occurred (TNS: 접속 시간 초과 발생함)

by 눈부셔™ 2023. 9. 10.
728x90

[Oracle-오류] ORA-12170: TNS:Connect timeout occurred (TNS: 접속 시간 초과 발생함)

오라클 오류코드인 ORA-12170: TNS:Connect timeout occurred 오류는 오라클 데이터베이스에서 발생하는 오류로, 클라이언트가 서버에 연결을 시도할 때 지정된 시간 내에 연결이 완료되지 않아 발생합니다. 이 오류는 네트워크 문제, 서버 가용성 문제 또는 클라이언트 구성 문제로 인해 발생할 수 있으며, 데이터베이스에 연결할 수 없음을 나타냅니다. 
TNS는 Oracle Net Services의 구성 요소 중 하나로, 데이터베이스와의 네트워크 통신을 관리하는 역할을 합니다.

ORA-12170 : TNS:Connect timeout occurred

오류 원인

ORA-12170 오류가 발생하는 주요 원인은 다음과 같습니다.

  • 네트워크 문제: 클라이언트와 데이터베이스 서버 사이의 네트워크 연결이 불안정하거나 끊겼을 때 이 오류가 발생할 수 있습니다.
  • 서버 응답 지연: 데이터베이스 서버가 응답하지 않거나 지연될 때 클라이언트 연결이 시간 초과로 실패할 수 있습니다.
  • 클라이언트 구성: 클라이언트 측의 구성 파일이나 설정이 잘못되어 연결 시간 초과로 이어질 수 있습니다.
  • 데이터베이스 서버 가용성: 데이터베이스 서버가 다운되어 있거나 가용하지 않을 때 연결 시간 초과 오류가 발생할 수 있습니다.

 

오류 해결

ORA-12170 오류를 해결하기 위해 다음 단계를 따를 수 있습니다.

  1. 네트워크 점검
    먼저 클라이언트와 데이터베이스 서버 사이의 네트워크 연결을 점검합니다. 네트워크 연결이 안정적이고 작동 중인지 확인하고, 방화벽이나 네트워크 장비 설정에서 문제가 없는지 확인합니다.
    • 인터넷 연결 및 로컬 네트워크 상태 확인
    • Ping 테스트 : DB 서버가 응답하지 않거나 높은 응답 시간을 보이면 네트워크 문제가 있을 수 있습니다. 
      1
      ping 데이터베이스_서버_주소
    • 방화벽 설정 확인: 방화벽이 데이터베이스 서버와 클라이언트 간의 통신을 차단하거나 제한하지 않는지 확인합니다. 필요한 포트가 열려 있는지 확인하세요.
    • DNS 설정 확인: 데이터베이스 서버 및 클라이언트의 DNS(Domain Name System) 설정이 올바른지 확인합니다. 호스트 이름을 IP 주소로 올바르게 해석할 수 있는지 확인하세요.
    • 네트워크 패킷 분석: 네트워크 패킷 분석 도구를 사용하여 데이터베이스 서버와 클라이언트 간의 트래픽을 모니터링합니다. 패킷 손실 또는 높은 지연 시간을 확인하여 문제를 파악합니다.
    • 네트워크 장비 확인: 네트워크 장비(라우터, 스위치 등)의 상태를 확인하고, 장비에서 어떠한 이상 사항이 있는지 점검합니다.
    • 로그 파일 확인: 데이터베이스 서버 및 클라이언트의 로그 파일을 검토하여 네트워크 관련 오류나 경고 메시지를 찾습니다.
    • VPN 또는 원격 액세스 문제 확인: 원격 위치에서 데이터베이스 서버에 연결할 때 VPN(Virtual Private Network) 또는 원격 액세스 구성에 문제가 있는지 확인합니다.
    • 네트워크 재부팅: 모든 점검 후에 네트워크 장비와 서버를 재부팅하여 네트워크 설정을 다시 로드하고 잠재적인 문제를 해결합니다.
  2. 서버 상태 확인
    데이터베이스 서버가 가동 중이며 응답하는지 확인합니다. 데이터베이스 서버 로그 파일을 검토하여 어떤 문제가 있는지 파악합니다.
  3. 클라이언트 설정 검토
    클라이언트의 Oracle 설정을 확인하고 필요한 경우 수정합니다. tnsnames.ora 및 sqlnet.ora와 같은 구성 파일을 점검하고, 호스트 이름, 포트 및 서비스 이름과 관련된 설정을 확인합니다.
    • tnsnames.ora 파일 확인: tnsnames.ora 파일은 데이터베이스 서버에 대한 연결 정보를 포함하는 파일입니다. 이 파일을 열어서 데이터베이스 서버의 정확한 호스트 이름, 포트 번호 및 서비스 이름을 확인합니다.
      - 파일 경로: 클라이언트 설치 디렉토리/network/admin/tnsnames.ora
    • sqlnet.ora 파일 확인: sqlnet.ora 파일은 SQL*Net 구성 파일로, 네트워크 및 보안 설정을 포함합니다. 이 파일을 열어서 보안 설정, 인증 메커니즘 및 기타 네트워크 관련 옵션을 확인합니다.
      - 파일 경로: 클라이언트 설치 디렉토리/network/admin/sqlnet.ora
  4. 연결 시간 초과 설정 조정
    필요한 경우 클라이언트의 연결 시간 초과(timeout) 설정을 늘리거나 조정합니다. 연결 시간 초과가 짧으면 더 긴 시간으로 변경하여 네트워크 또는 서버 응답 지연에 대응할 수 있습니다.
      • sqlnet.ora 파일의 위치 확인: 일반적으로 network/admin 디렉토리 내에 있습니다.
      • sqlnet.ora 파일 열기: 원하는 텍스트 편집기(예: 메모장, 텍스트 편집기)를 사용하여 sqlnet.ora 파일을 엽니다.
      • 연결 시간 초과(timeout) 설정 찾기: sqlnet.ora 파일을 열고, 연결 시간 초과 설정을 찾습니다. 
        SQLNET.INBOUND_CONNECT_TIMEOUT은 데이터베이스 서버에서 클라이언트로의 연결 시도에 대한 시간 초과를 설정하며, SQLNET.OUTBOUND_CONNECT_TIMEOUT은 클라이언트에서 데이터베이스 서버로의 연결 시도에 대한 시간 초과를 설정합니다.
      • 연결 시간 초과 값을 조정: 원하는 연결 시간 초과 값을 설정합니다. 시간은 초 단위로 지정하며, sqlnet.ora 파일에는 설정 값을 초 단위로 입력해야 합니다.
    1
    2
    SQLNET.INBOUND_CONNECT_TIMEOUT = 60  # 60초로 설정
    SQLNET.OUTBOUND_CONNECT_TIMEOUT = 120  # 120초로 설정
  5. Oracle 지원과 협력
    문제를 해결하는 데 어려움이 있다면 Oracle 지원팀과 협력하여 문제를 해결하도록 합니다.

 

실제 예시

다음은 ORA-12170 오류의 실제 예시입니다. 

클라이언트가 데이터베이스 서버에 연결하려고 할 때 연결 시간 초과로 인해 발생할 수 있습니다.

1
ORA-12170: TNS:Connect timeout occurred

 

결론

ORA-12170 오류는 데이터베이스 클라이언트가 데이터베이스 서버에 연결하는 동안 연결 시간 초과로 실패할 때 발생하는 오류로, 네트워크 문제, 서버 응답 지연, 클라이언트 설정 문제 등이 원인일 수 있습니다. 문제를 신속하게 해결하여 데이터베이스에 안정적으로 연결할 수 있도록 합니다.

 

 

 

#Oracle  #오라클  #오라클 오류코드  #ORA-12170  #ConnectTimeout  #Network  #방화벽설정  #서버상태확인  #네트워크연결문제

728x90