mysqlcheck로 repair하려는데 blog 작업 메모리 부족 에러가 뜰때
다른 부서에서 아카이빙 용도로 쓸 서브홈피가 필요해서 전임자가 제로보드 xe 1.0.0을 깔아줘서서 쓰고 있었는데 언제부턴가 안 열리기 시작했답니다(전임자는 퇴사한지 좀 됐음).
몇가지 조사를 하다가 mysqlcheck 돌려보니까 xe의 documents 테이블이 corrupt 되었다고 나오더군요.
다른 database도 몇몇 테이블이 corrupt된게 있긴 했는데, mysqlcheck -r 옵션으로 repair하니까 일부 손실된게 있을지는 몰라도 database에 접근은 되는데, 정작 중요한 zbxe의 documents 테이블은 메모리 부족으로 repair가 안되네요.
mysqlcheck -r historywork -uroot -ppassword
이렇게 실행해서 관련 메시지 부분만 뽑아내면 다음과 같습니다
historywork.xe_documents
info : Found link that points at 10480272 (outside data file) at 10468168
info : Found block that points outside data file at 10469276
error : Not enough memory for blob at 10478136 (need 183277732)
info : Found link that points at 10480272 (outside data file) at 10468168
info : Found block that points outside data file at 10469276
error : Not enough memory for blob at 10478136 (need 183277732)
status : Operation failed
(need 183277732) 이 부분이 메모리가 180메가 정도가 필요하다는 뜻인가요?
저 메모리 할당은 어디서 해야할지 정확히 모르겠어서 my.cnf에서
# The maximum size of a query packet the server can handle as well as
# maximum query size server can process (Important when working with
# large BLOBs). enlarged dynamically, for each connection.
max_allowed_packet = 16M
이 부분을 256M으로 바꾸고, /etc/init.d/mysql restart 해보았는데 마찬가지네요.
repair가 정상적으로 작동할 수 있게 하기 위해서는 어디에서 메모리 할당 설정을 늘려야할까요? (물리적 메모리는 4기가입니다)
댓글 달기