반응형

운영서버 운영 도중 Could not get JDBC Connection; nested exception is java.sql.SQLException

와 같은 연결 에러가 발생하였다.

 

해당 DB서버의 mysql 서비스가 종료되었는지 확인해봤지만 서비스는 정상적으로 기동중인것을 볼 수 있었다.

 

별 수 없이 재기동을 하기 위해 종료 명령어를 실행하였다.

service mysql stop

 

몇 분을 기다려도 mysql 서비스가 무기한으로 종료 요청만 진행될뿐 종료가 되지 않았다.

 

이상하다고 판단되어 서버의 용량을 확인해보니 남은 용량이 없었다.

df -h

 

서버 내 용량을 800메가 이상 사용중인곳을 확인하기 위해 아래 명령어를 실행하였다.

find ./* -size +800000k

 

명령을 입력하니 mysql/mysql-bin.000001과 같은 로그파일들이 잔득 쌓여있는 모습을 확인하였다.

 

 

해당 디렉토리로 이동하여 용량들을 확인해보니 약 30기가정도를 사용 중는데, 해당 로그들은 데이터를 지금 또는 나중에 업데이트하는 모든 명령문이 기록되어 있다.

각 명령문에 대한 데이터를 업데이트하는 시간 정보도 가지고 있는데, 사실 로그라 이미 한참 지난 불필요한 로그는 삭제처리하여도 문제가 없어서 삭제 조치를 하였다.

 

해당 로그 데이터가 5일 이상 지나면 삭제 될 수 있도록 설정파일에 옵션을 추가하였다.

 

/etc/my.cnf

[mysqld]
expire_logs_days = 5

 

5일 이상이 지난 로그파일들이 삭제되는 옵션이다.

 

삭제 후 용량을 확인시 32g가 확보되었고 정상적으로 mysql 서비스는 올라왔다.

 

이후 톰캣 재시작을 하니 정상적으로 운영이 가능해졌다.

반응형