본문 바로가기

Mysql

[MySql] binlog 파일 sql 파일로 변환 쉘스크립트

MySQL binary log 복구 binlog 복구 빈파일 복구


Mysql 복구 방법 중 binlog 파일을 이용한 복구 방법이 있다.

하지만 bin 파일이 작게는 수십개 많게는 몇백개 일 경우

일일이 하나하나 복구하기에는 시간이 너무 소요 된다.


아래 스크립트는 find 명령어로 "*bin.000*" 파일을 긁어 온 다음에 while 문으로 기억 후

bin.0001 파일이 똑같이 순차적으로 0001.sql 로 변환 되는 스크립트.

#/bin/sh

sql=.sql

find /usr/local/mysql/data/ -name "*bin.000*" |while read fa ; do


asd=`echo $fa|awk -F "." '{print $2}'`


/usr/local/mysql/bin/mysqlbinlog $fa > /usr/local/src/$asd.sql


done


#cd /usr/local/src 경로에 순차적으로 *.sql 파일이 생성 되어있다.

-rw-r--r--   1 root root    37914 2016-09-09 11:50 000001.sql
-rw-r--r--   1 root root  1526478 2016-09-09 11:49 000002.sql
-rw-r--r--   1 root root     1331 2016-09-09 11:49 000003.sql
-rw-r--r--   1 root root      635 2016-09-09 11:49 000004.sql


그럼 이제

#cat *.sql > test2.sql

명령어를 통해서 하나의 sql 파일로 만들어 주면 한번에 복구를 해버리면 된다.


그런데 사실 더 어이 없는건 위에 스크립트 상관없이 명령어 1줄로 bin파일을 하나의 sql파일 안에다가 순차적으로 담아낼 수 있으니


/usr/local/mysql/bin/mysqlbinlog mysql-bin.0* > /usr/local/src/test/test.sql


이 명령어 한번이면 끝난다. 그럼 1번부터 마지막 순번까지 순차적으로 내용이 들어가 있을 것이다.

그럼 그대로 복구 명령어 1줄

이렇게 2줄이면 끝난다.

세상은 넓고 삽질은 끝도 없고 천재는 많으며 나는 오늘도 병신이였다.




'Mysql' 카테고리의 다른 글

mysql 에러코드  (0) 2017.01.19
MySQL 5.7.9 설치시 참고해야할 사항  (2) 2016.05.27
mysql 패스워드 초기화  (0) 2016.01.25
mysql 4.0 -> 5.5 DB 업그레이드  (1) 2015.12.18
mysql5.5 넘어오면서 제거된 내용들  (0) 2015.12.14