데이터베이스 접속 오류 질문 0 0 2,290

by 도리비 [MySQL] C# MySQL [2019.10.25 10:06:35]


안녕하세요..

현재 내부망에서 사용하고 있는 프로그램에서 발생하는 오류인데 혹시 해결방법 또는
저의 접근방식이 잘못되었는지 봐주시면 감사하겠습니다.


1. 현재 상황7
 1.1 내부망에 약 41대의 윈도우 태블릿 피시와 10여대의 노트북에서 C# 프로그램을 사용하고 있습니다. 
 1.2 태블릿 PC에서 동작하는 프로그램과 노트북에서 돌아가는 프로그램은 서로 다릅니다.
 1.3 Database 연결문제에서 항상 같은 오류가 반복해서 발생합니다. (1초 주기로 반복해서 connection / close 합니다.)
 1.4 서버는 윈도우 7 입니다. (서버 OS가 아닙니다.)

2. 문제 상황
 2.1 모든 프로그램에 데이터베이스를 접근합니다.
 2.2 Log를 확인해보면 연결이 오래걸려서 Timeout 이 발생하거나 "지정된 MySQL 호스트에 연결할 수 없음" 문제가 지속적으로 발생합니다.
 2.3 접속하는 태블릿 PC에서 ID  / TimeStamp 를 1분 간격으로 찍어보고 있는데 사용중인 
      총 태블릿 38대 중에서, 35대는 Timestamp를 제시간에 맞게 찍어주고 있습니다. 그러나 2대는 항상 찍다가 중간에 안들어옵니다.
      프로그램을 다시 실행시켜 들어오다가도 35대를 제외한 나머지 애들은 죽어버립니다.

3. 조치 해본 상황
 3.1 연결 문자열을 먼저 확인했습니다. 특정 PC에서 발생하는 것이 아니라 산발적으로 문제가 발생하며 연결이 잘 되는 곳은 문제가 없습니다.
     3.1.1 [3.1] 의 문제가 있는 것 같아 Connection Timeout 과 Command Timeout을 추가 했습니다 (60초)

 3.2 서버의 방화벽을 확인했습니다.
    3.2.1 내부 정책이 네트워크 단에서 워낙 빡세기 때문에 방화벽 자체를 풀어봤습니다.(혹시나 하고)

    3.2.2 연결포트는 열려 있습니다. (인바운드)


 3.3 my.ini 조정
    3.3.1 max Connection 조정 100 -> 500 
    3.3.2 skip-resolve-name 추가
    3.3.3 innodb_buffer_pool_size 조정
    3.3.4 innodb_buffer_pool_size 조정
    3.3.5 max_allowed_packet 조정 (1G)
 
 3.4 통신 신호를 확인해 봤습니다.
    3.4.1 혹시 무선망 자체의 품질이 낮아서 발생하는 문제일까봐 AP도 다 깔아놨는데, 역시 무선 신호 자체는 큰 문제가 없습니다.(signal 50~80사이)
    3.4.2 그래서 패킷 분석을 진행했습니다. 몇개의 의심되는 부분이 발생되는것 같습니다. TCP Zero Window / 패킷 재전송 실패 
    3.4.3 라우터 또는 스위치 장비 자체의 결함 또는 품질 자체의 문제로 기울고 있습니다.


TCP 품질 자체의 문제인지. 데이터베이스 설정 자체가 문제인지 확인을 해야하는데 위 조치사항을 다 해봐도 해결이 안되고 있습니다ㅠㅠ
혹시 다른 접근방식이 있는지 댓글로 알려주심 감사하겠습니다...

내용
DBMS : MySQL 5.7.16

Server Spec
CPU : I7-6700 
RAM : 8GB
O/S Windows 7 Professional K
System : 64bit

Tablet Spec
CPU : x5-Z8350
RAM : 2GB
O/S : Windows 10 Enterprise 2016 LTSB
System : 64bit

Error Log
DB : Aborted connection Got timeout reading communication packets ,Got an error reading communication packets
Program : Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.
      Unable to connect to any of the specified MySQL hosts.
 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입