시스템 백업 과정
========================
시나리오: 장애가 발생한 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