mysql innodb 데이터 복구 Feat. binlog
** 한 연예 언론사 매니지드 중 db가 깨지는 상황이 발생하였습니다. 데몬은 정상적으로 올라와 있으나 mysql 접속이 불가능하고, 이로 인해 기자들이 올리는 기사가 올라가지 않는 현상이 발생 합니다.
빠른 시간 내에 처리해야 하기 때문에 현재 상황 안내 후 작업 진행 하였습니다.
** 기존 data 디렉터리 백업
빠른 시간 내에 처리해야 하기 때문에 현재 상황 안내 후 작업 진행 하였습니다.
** 기존 data 디렉터리 백업
# mv /usr/local/mysql/data /usr/local/mysql/data_back
** data 디렉터리 생성
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
** mysql 재 시작 (inodb 사용 중 이라서 올라오는 시간이 좀 걸림)
# /etc/init.d/mysqld start
** binlog에서 데이터 추출
** BINLOG 는 복구 시점 날짜를 덤프 파일로 생성합니다. # cd /usr/local/mysql/data_back # /usr/local/mysql/bin/mysqlbinlog mysql-bin.000780 > /{경로}/20171107_binlog_1.sql # /usr/local/mysql/bin/mysqlbinlog mysql-bin.000781 > /{경로}/20171107_binlog_2.sql
** 데이터 복구 진행
** 해당 날짜로 백업된 dump 파일로 1차 복원. (해당 파일은 금일 새벽 시간대 파일) # cd /backup/mysqldump/20171107 # gunzip -d xxxnews-2017-11-07_04.sql.gz # gunzip -d xxxnews2-2017-11-07_04.sql.gz # gunzip -d mysql-2017-11-07_04.sql.gz # mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1187029 Server version: 5.5.29-log Source distribution Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database xxxnews; mysql> create database xxxnews2; mysql> use xxxnews; mysql> source xxxnews-2017-11-07_04.sql; mysql> use xxxnews2; mysql> source xxxnews2-2017-11-07_04.sql; mysql> use mysql; mysql> source mysql-2017-11-07_7.sql;
** dump 복원 후 mysql 재 시작 및 정상 접속 확인
# /etc/init.d/mysql restart 재 시작 후 사이트 확인 결과 정상적으로 개방 됐고, 새벽 시간 백업 본 이후부터 DB가 깨지기 전 까지 데이터 복원을 진행 합니다.
** binlog 복원 (binlog 복원은 데이터베이스를 선택 하지 않고 진행)
# mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1187029 Server version: 5.5.29-log Source distribution Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> source /{경로}/20171107_binlog_1.sql mysql> source /{경로}/20171107_binlog_2.sql
0 개의 댓글