mysqlcheck

12-05-31 by 최고관리자
MySQL 전체 데이터 베이스 및 테이블에 대한 최적화 및 오류난 테이블에 대한 복구를 수행하기 위해서 mysqlcheck 를 이용하면 편리 합니다.

이용시간이 드문 새벽때 cron 에 등록하여 사용하면 됩니다.

# /etc/crontab 에 넣으면 됩니다.
04 * * * * root /usr/local/mysql/bin/mysqlcheck -Aao --auto-repair -u root --password=비밀번호 > /dev/null 2>&1
# 위 구문은 새벽 4시마다 테이블 최적화 작업 및 복구 작업을 수행하는 것입니다.

** 참고
> /dev/null 2 > &1 의 의미는 표준 에러 2의 출력을 표준 출력으로 리다이렉션을 하는 것입니다. 하지만 저장되는 위치가 /dev/null 이니 어떠한 메세지도 출력이 안되어서 시스템 root 로 메일이 전달이 안되는것입니다. 위 구문을 지워주면 cron이 돌아갈때 root로 어떠한 메세지도 전달되지 않습니다. 표준 오류 출력 도 표준 출력으로 리다이렉션이 되기 때문입니다. 또 전체를 /dev/null 로 전달하니 아무것도 안나타납니다.

쉘에서 수행할 경우
$ /usr/local/mysql/bin/mysqlcheck -Aao --auto-repair -u root -p
Enter password:[비밀번호]
Database1.table1 Table is already up to date
Database1.table1 OK
$

위와 같이 하면 모든 데이터 베이스에 테이블을 분석하고 최적화 하며 잘못된 테이블에 대한 복구를 자동으로 수행합니다. 사용량이 드문 시간대에 한번씩 실행해주면 좀더 편합니다.

자주 사용되는 옵션에 대해서 알아보겠습니다.
-A, --all-databases : 전체 데이터 베이스에 대해 수행합니다.
-a, --analyze : 테이블을 분석합니다.
--auto-repair : 잘못된 테이블 일경우 복구를 수행합니다.
-P, --port=포트번호 : MySQL 연결 포트가 3306 과 다를 경우 적어줍니다.
-u, --user=name : mysqlcheck 를 수행하기 위한 사용자 명입니다. [보통 root로 수행을 하겠죠]

위 구문을 SQL 로 처리를 하려면 해당 데이터 베이스 및 테이블에 접근 할수 있는 권한으로 접속 후에 아래 구문을 수행하시면 됩니다.
1-- 테이블을 최적화 합니다.
2OPTIMIZE TABLE [테이블명];
3
4-- 테이블을 복구 합니다.
5REPAIR TABLE [테이블명];
6
7-- 테이블을 분석합니다.
8ANALYZE TABLE [테이블명]
위 구문을 수행하면 테이블에 대한 최적화, 복구, 분석을 할 수 있습니다. 자세한 내용은 다음에 다루도록 하겠습니다.     



Comments

  1. 등록된 코멘트가 없습니다.

Leave a Comment

자동등록방지 숫자를 순서대로 입력하세요.