IT. POST LIST

POST ALL LABEL

mysql innodb 데이터 복구 Feat. binlog

By 때찌때찌맴매 - 12월 07, 2017

mysql innodb 데이터 복구  Feat. binlog

** 한 연예 언론사 매니지드 중 db가 깨지는 상황이 발생하였습니다. 데몬은 정상적으로 올라와 있으나 mysql 접속이 불가능하고, 이로 인해 기자들이 올리는 기사가 올라가지 않는 현상이 발생 합니다.
 빠른 시간 내에 처리해야 하기 때문에 현재 상황 안내 후 작업 진행 하였습니다.

** 기존 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
마지막으로 복원 후 장애 시간 전 까지 발생한 쿼리들 처리가 완료 되었습니다.

  • Share:

You Might Also Like

0 개의 댓글