MySql 서버 다운 이슈 트래킹

SeungHyuk Shin·2022년 12월 5일
0

회사에서 사용하는 알파 데이터베이스의 MySql이 12월 2일 금요일 밤 죽어서 주말 내내 작동을 멈추었던 경우가 생겼다. 알파 데이터베이스라 서비스 운영 상의 문제가 있진 않았지만, MySql 엔진의 문제일 경우 프로덕션 DB에도 문제가 생길 수 있는 여지가 있어서 이슈를 트래킹 해보았다.

우선 알파 데이터베이스 같은 경우 VM을 사용해서 직접 MySql을 설치 해서 사용하고 있어서 직접 VM에 접속해서 log/error-log/mysql.err을 확인했고, 다음과 같은 로그를 발견했다.

2022-12-02T16:36:57.435196Z 0 [Note] Giving 28 client threads a chance to die gracefully
2022-12-02T16:36:57.435362Z 0 [Note] Shutting down slave threads
2022-12-02T16:36:59.436675Z 0 [Note] Forcefully disconnecting 28 remaining clients

일단 위의 로그로만 확인했을때는 MySql 엔진 문제로 서버가 종료된것 처럼 보이지는 않는다. 그렇다면 커널에서 MySql 데몬을 종료시켰다는 이야기이고 다음과 같은 상황을 고려해야 했다.

  1. 어디선가 스크립트로 일정 상황에서 커널이 MySql 데몬을 죽이는게 있다.
  2. OOM 이슈로 커널이 MySQL을 직접 죽였다.
  3. 시스템이 리부팅하면서 커널이 MySql 데몬을 죽였다.

1번의 경우는 내가 입사하기전까지는 이런 경우가 없었으므로 가능성이 매우 낮아 보였고, 2,3번의 확률이 제일 커 보였다.

그래서 last reboot 명령어를 통해 마지막 리부트를 확인해보았는데 reboot system boot 3.10.0-1160.6.1. Sat Dec 3 01:39 - 11:37 (2+09:58)와 같이 같은 날짜에 리부팅된 기록이 있는것을 확인했다.

3.10.0-1160.6.1. 로 기록되있는걸로 보아 커널(3.10.0-1060.6.1.el7.x86_64) 에서 수행된 것. 즉, 특정 사용자가 ssh 특정 IP로 접속해서 명령어로 재부팅한게 아니라, 해당 PC에서 종료되었음을 알수있다.

이후에 /var/log/messages에 로그를 확인해 리부트가 된 원인을 확인하였다.

Dec  3 01:36:57 서버 systemd-logind: Power key pressed.
Dec  3 01:36:57 서버 systemd-logind: Powering Off...
Dec  3 01:36:57 서버 systemd-logind: System is powering down.

허무하게도 로그 상으로는 파워 키 버튼이 눌려서 리부트가 된 상황이였다. VM 관리 페이지에서 누군가가 인스턴스 재부팅을 눌렀는지 아니면 인프라쪽에 문제가 생겨 리부트가 됐는지는 개발자가 더 이상 알기 어려운 영역이여서 여기서 이슈 트래킹을 종료하고 차후 똑같은 문제가 생길시 인프라팀에 문의 해볼 예정이다.

MySql 서버가 죽은 이유로 이슈 트래킹을 시작했는데 시스템 자체가 죽은 이유까지 트래킹 해야했던 이슈였다.

끝.

0개의 댓글