프린트 하기

OS환경 : Oracle Linux 7.6 (64bit)

 

DB 환경 : Oracle Database 19.11.0.0

 

에러 : WARNING: inbound connection timed out (ORA-3136)

alert log에 발생하는 에러 메세지

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ tail -f /app/oracle/diag/rdbms/orcl19/ORCL19/trace/alert_ORCL19.log 
2021
-11-24T00:08:08.231249+09:00
 
***********************************************************************
 
Fatal NI connect error 12170.
 
  VERSION INFORMATION:
    TNS for Linux: Version 19.0.0.0.0 - Production
    Oracle Bequeath NT Protocol Adapter for Linux: Version 19.0.0.0.0 - Production
    TCP/IP NT Protocol Adapter for Linux: Version 19.0.0.0.0 - Production
  Version 19.11.0.0.0
  Time: 24-NOV-2021 00:08:08
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12535
    
TNS-12535: TNS:operation timed out
    ns secondary err code: 12606
    nt main err code: 0
    nt secondary err code: 0
    nt OS err code: 0
  Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=10.10.10.60)(PORT=58524))
2021-11-24T00:08:08.234797+09:00
WARNING: inbound connection timed out (ORA-3136)

 

 

해결 방법 : 비정상접근 세션 차단, sqlnet.ora 파라미터 설정

테스트를위해 sqlnet.ora 파일과 listener.ora파일에 아래와 같이 파라미터 등록

listener.ora 파일

1
2
3
4
5
6
7
8
9
10
11
$ cd $ORACLE_HOME/network/admin
$ vi listener.ora 
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ORACLE19)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
 
INBOUND_CONNECT_TIMEOUT_LISTENER=60

 

 

sqlnet.ora 파일

1
2
3
$ cd $ORACLE_HOME/network/admin
$ vi sqlnet.ora 
SQLNET.INBOUND_CONNECT_TIMEOUT=60

 

 

tnsnames.ora 파일에서 접속정보 확인

1
2
3
4
5
6
7
8
9
10
$ cd $ORACLE_HOME/network/admin
$ cat tnsnames.ora 
ORCL19 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ORACLE19)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL19)
    )
  )

 

 

sqlplus /@tnsname 입력후 60초 대기

1
2
3
4
5
6
7
8
9
10
11
12
$ sqlplus /@orcl19
 
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Nov 24 00:16:04 2021
Version 19.11.0.0.0
 
Copyright (c) 19822020, Oracle.  All rights reserved.
 
ERROR:
ORA-01017: invalid username/password; logon denied
 
 
Enter user-name: 

 

 

alert log tail로 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$ tail -/app/oracle/diag/rdbms/orcl19/ORCL19/trace/alert_ORCL19.log 
2021-11-24T00:17:04.155634+09:00
 
 
***********************************************************************
 
Fatal NI connect error 12170.
 
  VERSION INFORMATION:
    TNS for Linux: Version 19.0.0.0.0 - Production
    Oracle Bequeath NT Protocol Adapter for Linux: Version 19.0.0.0.0 - Production
    TCP/IP NT Protocol Adapter for Linux: Version 19.0.0.0.0 - Production
  Version 19.11.0.0.0
  Time: 24-NOV-2021 00:17:04
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12535
    
TNS-12535: TNS:operation timed out
    ns secondary err code: 12606
    nt main err code: 0
    nt secondary err code: 0
    nt OS err code: 0
  Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=10.10.10.60)(PORT=58598))
2021-11-24T00:17:04.160798+09:00
WARNING: inbound connection timed out (ORA-3136)

에러메세지가 발생함

이렇게 비정상적으로 세션이 늦게 접속되는 경우 alert log에 위와 같은 메세지가 발생함

 

 

원인 : 비정상 세션, sqlnet.ora, listener.ora 파일의 INBOUND_CONNECT_TIMEOUT 파라미터 설정

오라클 10gR2부터 DoS(Denial of Service) 공격에 대비하기 위해 다음 두 파라미터의 기본 설정값이 60초로 설정됨
SQLNET.INBOUND_CONNECT_TIMEOUT (sqlnet.ora 파일에 설정) => sqlplus /@orcl19 접속시에만 영향을 줌
INBOUND_CONNECT_TIMEOUT_리스너명 (listener.ora 파일에 설정) => telnet 192.168.137.50 1521 접속시에만 영향을 줌

APP(세션)의 접속 형태에 따라 sqlner.ora와 listener.ora를 선택하거나 둘다 설정을 해야할 필요성이 있음
(jdbc를 통한 접속은 테스트가 불가해서 어떤 파라미터에 의해 발생하는지 확인하지 못함)

 

 

ORA-3136이 발생하게 되면 INBOUND_CONNECT_TIMEOUT 파라미터를 조정하기보다는

connection이 늦게 처리되는 APP에 대해서 먼저 확인하고 60초 안에 접속이 이루어 지도록 APP단의 수정을 해야함

이후에 어쩔수없이 늦게 접속되는 APP에 대해서는 위 파라미터 설정으로 TIMEOUT을 두는게 좋을듯함
아래 네이버 카페에 위 메세지 관련 테스트가 존재함

 

 

참조 : https://cafe.naver.com/prodba/11505

2113133.1, 257650.1
https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/parameters-for-the-sqlnet.ora.html#GUID-E83FEC2B-52E7-4513-83D8-830F9D745099
https://otsteam.tistory.com/23

https://positivemh.tistory.com/783

 

ORA-03135: connection lost contact

OS환경 : Oracle Linux 7.4 (64bit) DB 환경 : Oracle Database 19.11.0.0 에러 : ORA-03135: connection lost contact 세션에서 새로운 쿼리 입력시 발생하는 메세지 A세션에서 쿼리 입력 1 2 3 4 5 SQL> sel..

positivemh.tistory.com