자문 자답이군요.....해결했습니다.
작성자 정보
- Tz 작성
- 작성일
컨텐츠 정보
- 1,997 조회
- 1 댓글
- 0 추천
- 목록
본문
아주 초보적인..하지만 아차하면 누구나 당할수 있는 문제더군요..
로그파일의 문제였습니다.
질문 1 : mysqld.log.1 -- 요놈 어디 있는거에요?
답 : 저희 서버의 경우 mysqld.log가 있는곳에 같이 있더군요...당연한가요..ㅡㅡ;;
apache로그인경우 2G이상이 되면 로그파일이 뒤에 숫자가 붙어서 자동으로 증가하는것으로 알고 있습니다.
maillog나 message 처럼 말이죠... 그런데 mysql도 그렇게 되는줄은 몰랐습니다.
mysql은 default값이 얼마인지 모르지만.. 하여튼 엄청 커지니까 mysql.log.숫자 형식으로 나누어진듯하고.
이렇게 해서 생긴 mysqld.log.1파일 이놈의 크기가 너무커서 읽어 들이는것 또한 불가능(?)하여,
mysqld.log 파일에 로그가 쌓이지 않은듯합니다. 질문3번의 답이죠..
질문 2 : 저놈 지워버리면 용량이 정상화 될까요?
답 : 정상화 되었습니다.... 지워도 된다구 하네요.. 로그니까..ㅡㅡ;; 필요한 부분은 백업해둘려구 했으나..
파일의 크기가 너무 큰 관계로 읽어들이지도 못하더군요...vi로 읽어들이려다 서버 뻗을뻔했습니다..ㅡㅡ;;
질문 3 : mysqld.log에 로그가 쌓이지 않는 원인이 저놈때문인게 맞나요? 아니면 다른 원인도 있을수 있나요?
답 : 위 질문1의 답에서 말했듯이 이놈이 원인인듯하네요.... 지우구 나니..정상적으로 로그가 쌓입니다.
# 여기서 얻은 몇가지의 교훈 ㅡㅡㅋ 저같은 초짜들분께 조금이나마 도움이 된다면....
1. 로그파일.. 제때 정리하자! ( 제일 큰 교훈입니다. )
-> 왜 ? 로그파일..순식간에 엄청나게 불어나더군요.. 저희같이 소규모도 mysql로그가 한달사이에 3.2G라니..ㅡㅡ;;
-> 해결방안 ? 1) logrotate(철자 맞나몰라..ㅡㅡ;;)를 사용하거나, rotatelog를 설치해 사용하거나, 매일 로그파일을 체킹하거나
크론으로 돌리거나..어쨌든 로그파일을 수시로 확인해서, 필요하지 않은 로그파일은 삭제한다.
필요하지만 용량이 너무큰 로그파일은 백업후 삭제한다.
2. logrotate,rotatelog,cron을 알면 손발이 편해진다?
-> logrotate나 rotatelog는 아파치로그를 일자별,시간별,년도별등..원하는 단위로 나누어서 저장하게끔 할수 있다..
(이에 대한 자세한 내용은 이곳[슈퍼유저]에 있어요..찾아보세요..)
단, logrotate는 설정시 서버를 잠시 멈추어야 하므로 우리 같은 호스팅업체에선 사용하기 힘들다..처음에 세팅을 했다면 몰라도..
Cron의 경우 잘 아시다시피 원하는 기간에 정기적으로 실행시킬수 있으므로(c로 실행파일을 만들어서 크론에서 그 실행파일을
실행하게끔만 한다면 속도도 빠르다고하네요..) 편합니다.
c언어로 짜지 못한다면 이번에 저와같은 경우 아래 한줄을 cron에 추가하면 될듯합니다.
ex) 00 04 * * mon find /var/lib/mysql -name mysqld.log.* -a -size +1000000k -exec rm -rf {} ;
풀이) 매주 월요일 /var/lib/mysql폴더안에 파일명이 mysqld.log.으로 시작하는(mysqld.log파일은 빼고) 파일들을 찾고,
그 크기가 1000000KB이상 즉 1GB이상이라면 해당파일을 지워라..........가 되것네요...
솔직히 명령어가 정확한지 모르겠지만 몇개의 파일을 만들어서 테스트해보니 정상적으로 찾아서 지우긴 하네요..
3. 맞어야 정신차린다.. 맞기전에 대비해라........ㅠ_ㅠ 전 플머입니다. 머 플머로써도 초짜지만...서버에 대해선 먹통입니다.
어쩌다 서버 관리를 맞게 되었는데..... 로그파일을 자주 청소해줘야한다는 문서를 수없이 보면서도 이렇게 당하네요...
공부좀 해야겠습니다......
행여나 저같은 경우이신분................ 아주 쬐금이라더 도움이 되셨길........
관련자료
-
이전
-
다음
MARY님의 댓글
- MARY
- 작성일