리눅스서버

mysql 데이터베이스 오류복구 & 최적화 mysqlcheck

여기서 설명할 데이터베이스 오류복구 & 최적화 방법은 mysql과 MariaDB에만 해당되는 방법입니다. mysqlcheck라는 프로그램에는 데이터베이스를 관리하는 데에 도움을 주는 기능들이 숨어있습니다. 바로 아래와 같은 기능들이죠..


@ 데이터베이스 사용량이 적은 새벽 시간대에 작업을 실행하는 것이 좋습니다.


1. 테이블 오류체크및 자동복구

여러가지 이유로 테이블이 손상될 수 있습니다. 이때 시도해볼 수 있는 기능이 오류 자동복구 기능입니다. 발생한 손상부분을 찾아내고, 자동적으로 고치는 기능입니다. 


* 사용법


# mysqlcheck -u [DB계정] -p[패스워드] --auto-repair [DB명]


* 데이터베이스 전체 검사

사용법에는 하나의 DB단위씩 검사하도록 되어있습니다. 데이터베이스 전체를 한꺼번에 검사하려면 --all-databases 옵션을 사용하면 됩니다.


# mysqlcheck -u [DB계정] -p[패스워드] --auto-repair --all-databases



2. 테이블 최적화

웹사이트 속도가 빨라지기위해서는 그 사이트가 사용하는 데이터베이스(DB) 속도도 빨라져야합니다. 물론 따로 데이터베이스를 사용하지않는다면 그냥 php 캐시로만 충분하지만 대부분의 웹 사이트는 데이터베이스를 사용하고 있습니다. 그래서 데이터베이스 최적화를 하면 데이터가 찾기쉽게 정리되어 훨씬 빨라지는 효과 볼 수 있답니다.


* 사용법


# mysqlcheck -u [DB계정] -p[패스워드] --optimize [DB명]


* 데이터베이스 전체 최적화

사용법에는 하나의 DB단위씩 최적화하도록 되어있습니다. 데이터베이스 전체를 한꺼번에 최적화하려면 --all-databases 옵션을 사용하면 됩니다.


# mysqlcheck -u [DB계정] -p[패스워드] --optimize --all-databases



3. cron으로 주기적으로 최적화하기
아래와 같이 cron에 등록해주면 매일 새벽 2시마다 모든 데이터베이스를 최적화, 오류가 있으면 오류복구를 실행하게 됩니다.

# crontab -e
0 2 * * * /usr/bin/mysqlcheck -u root -p비밀번호 --auto-repair --optimize --all-database

?