• Mysql InnoDB 복구

    시스템 백업 과정
    ========================
    시나리오: 장애가 발생한 CentOS의 MySQL InnoDB 파일을 이용해서(C 서버), Slackware 상에(S 서버)
    복구하고 mysqldump 받기
    Table Space: /mydb_db/mydb_sp/
    Database: mydb
    1) C 서버: 다음과 같은 파일들이 복구 시 필요하다. 아래 위치의 파일들을 백업받는다.
    ib_logfile1, ib_logfile0, ibdata1, ibdata2
    /mydb_db/mydb_sp/*
    table관련 .frm 파일들
    /usr/local/mysql/var/mydb/*
    2) S 서버: my.cnf 파일의 로그 사이즈를 기존 시스템과 동일하게 한다.
    # /etc/rc.d/rc.mysqld stop
    # cd /var/lib/mysql/
    # mkdir mydb
    # cp ~/db/var/mydb/* /var/lib/mysql/mydb/
    # chown mysql:root mydb
    # chown mysql:mysql mydb/*
    2단계까지 하고 재시작하면 에러가 나면서 mysql 을 시작할 수 없다.
    3) S 서버: my.cnf 에 다음줄을 추가한다.
    <<<
    # Uncomment the following if you are using InnoDB tables
    innodb_force_recovery = 4
    >>>
    4) S 서버: 재시작
    # /etc/rc.d/rc.mysqld start
    5) S 서버: mysqldump 받을 수 있다.
    # mysqldump mydb > mydb.2007
    시스템 복구 과정
    ========================
    6) C 서버: mysqld 중지
    # service mysqld stop
    7) C 서버:
    # vi /etc/my.cnf
    innodb_force_recovery = 4 옵션을 제거한다.
    8) C 서버: 기존 Table Space내의 파일들과 frm 관련 파일들을 삭제한다.
    # rm /mydb_db/mydb_sp/*
    # rm /usr/local/mysql/var/mydb/*
    9) C 서버: mysqld 재시작
    # service mysqld start
    10) C 서버: data import
    # mysql mydb < mydb.2007

    Comments

    comments

    Post Tagged with , ,

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.