본문 바로가기

Web/DB/Dev

파일시스템 Full로 인한 mysql 구동/종료/테이블 접근 장애 복구하기

갑자기 운영하던 웹사이트(RedHat Linux, Apache, PHP, MYSQL)에 접근이 안되는 장애가 생겼다.

root 계정으로 로그인하여 확인하니 httpd 대몬이 평소보다 훨씬 많은 숫자가 실행중이었고 mysql 대몬은 정상적으로 실행중인 것 처럼 보였다.

급하게 apache와 mysql을 재구동 하려 하였으나 mysql의 종류(mysql.server stop)가 안되었고 강제로 kill한 뒤 mysql을 구동하려 하였으나 평소와는 달리 프로세스는 한참만에 떴으나 mysql 클라이언트 및 apache를 통한 db 접근이 안되었다.

mysql 로그를 확인하니 Filesystem의 full로 인해 오류가 발생하였음을 확인할 수 있었다.

먼저 mysql db가 위치한 파일시스템의 불필요한 파일... (나의 경우 tomcat의 mod_jk.log(??) 파일이10G이상으로 커져있었다...)을 지우고 ....

mysql과 apache를 재구동하였다.

웹도 정상적으로 접근하였으나 특정 테이블을 접근하는 php 소스 부분에서 mysql_fetch()의 오류가 발생하였다.

mysql 클라이언트로 접근하여 

mysql> repair table 테이블명;

을 수행하여 복구하였다.

그 전에

mysql>analyze table 테이블명;

을 수행하였더니 테이블이 Crach되어 있다는 분석보고가 나왔다.