백업은 기본인데, 가끔 뜻하지 않게 백업이 존재하는 않는 DB에서 작업하다가 실수를 할 때가 있다.
순간 등줄기에 땀 한방울이 흐르는 경험을 하게 될 때, 도움이 되었으면 한다.
우선 bin log가 존재를 해야 가능하다. bin log조차 없다면 깔끔하게 포기~~!!
흩어져 있는 로그를 하나로 묶어 줄 수 있는 Shell을 하나 짜보자.
host]# vi help.sh
--------------------------------------------------------------------------------------
#!/bin/sh
mysqlbinlog -d DB명 mysql-bin.000001 > help.sql
mysqlbinlog -d DB명 mysql-bin.000002 >> help.sql
mysqlbinlog -d DB명 mysql-bin.000003 >> help.sql
mysqlbinlog -d DB명 mysql-bin.000004 >> help.sql
mysqlbinlog -d DB명 mysql-bin.000005 >> help.sql
mysqlbinlog -d DB명 mysql-bin.000006 >> help.sql
---------------------------------------------------------------------------------------
옵션 -d를 이용한 것은 여러 데이터베이스를 운영할 경우 하나의 데이터베이스만 축출하기 위해 사용됩니다.
마지막 문제가 있는 mysql-bin 로그는 따로 만들어야 합니다. (용량이 작으면 하나로 만들어도 괜찮아요.)
위 스크립트를 실행하면 help.sql 생성되었을 것이다.
이걸 임시 디비에 밀어 넣는다.
host]# mysql -f -uroot -p tmp_db < help.sql
문제의 쿼리가 있는 bin log는 별도로 만들어서 해당 쿼리를 삭제한 후에 tmp_db에 밀어 넣어주시면 됩니다.
그런 후에 문제가 되었던 테이블만 백업(mysqldump) 받으셔서 사용하시면 됩니다.
host]# mysqldump -uroot -p tmp_db > org_table.sql
식은 땀 닦고 담배 한개피 ... 휴~~~
'APM' 카테고리의 다른 글
HTML 페이지에서 주석을 제거하는 정규식(PHP) (0) | 2014.12.29 |
---|---|
Installing Comodo Positive SSL Certs on Apache and OpenSSL (0) | 2014.09.30 |
How to save PHP Sessions to a database (0) | 2014.08.05 |
MySQL 원격 증분 백업 – Percona XtraBackup (0) | 2014.07.18 |
Mysql InnoDB – 테이블 당 테이블스페이스 사용하기 (0) | 2014.07.18 |
댓글