'백업'에 해당되는 글 1건

  1. 2008.05.15 Zmanda 복구 관리자로 MySQL 테이블 복구
웹 개발2008.05.15 10:23

MySQL에서 중요한 테이블을 삭제하는 사고가 일어나면, 그에 해당하는 어플리케이션은 더이상 작동하지 않는다. 이러한 문제를 해결하가 위해서 Zmanda Recovery Manager를 사용한다.

MySQL 데이터베이스 관리자라면, 정기적으로 데이터베이스를 백업해야 한다. 누군가 MySQL에서 중요한 테이블을 삭제하면, MySQL을 이용하는 어플리케이션은 더 이상 작동하지 않는다. 이러한 상황에서 복구할 수 있는 방법은 무엇인가?

이에 대한 답변은 MySQL binary log. Binary log는 데이터베이스 퍼포먼스에 최소한의 영향을 끼치면서 데이터베이스의 모든 수정사항을 기록한다. MySQLbinay log는 서버에서 일어난다. MySQL 명령인 mysqlbinlog를 사용하여 binary log로부터 복구할 수 있다.

좀더 종합적인 해결책으로는 MySQL을 위한 Zmanda Recovery Manager를 사용하는 것이다. mysql-zrm 툴은 binary log를 검색할 수 있게 하고, 증분 백업(incremental backup)에서 선택하여 restore할 수 있게 한다.

# mysql-zrm --action parse-binlogs   --source-directory=/var/lib/mysql/sugarcrm/20060915101613
Log filename                 | Log Position | Timestamp         | Event Type |    Event
/var/lib/mysql/my-bin.000015 | 11013        | 06-09-12 06:20:03 | Xid = 4413 | COMMIT;
/var/lib/mysql/my-bin.000015 | 11159        | 06-09-12 06:20:03 | Query      | DROP TABLE IF EXISTS `accounts`;


여기서 SugarCRM 데이터베이스의 증분백업으로부터 사용자 테이블을 삭제하지 않고 선택적으로 복구하도록 하겠다. 2006915일에 일어난 증분백업으로부터 log 위치 11159DROP TABLE 이벤트를 제외하고 데이터베이스를 복구하기 위해 두 개의 복구 명령을 수행한다.

# mysql-zrm --action restore  --backup-set sugarcrm \
         --source-directory=/var/lib/mysql/ sugarcrm/20060915101613/ \
         --stop-position 11014
# mysql-zrm --action restore   --backup-set sugarcrm \
         --source-directory=/var/lib/mysql/ sugarcrm/20060915101613/ \
         --start-position 11160


보다 자세한 정보를 위해서는 다음 사이트를 참고한다.

Zmanda Recovery Manager

신고
Posted by 무한루프 달리만듦

댓글을 달아 주세요