바로가기 메뉴
본문내용 바로가기
메인메뉴 바로가기



Customer Center

Notice · Security Issue · Account Guide · Global Traffic Test

HOME > Customer Center > Tech Note

기술노트

MySQL 전체 덤프 파일로 특정 DB 뽑아서 복구 하기.
2016.02.18

cat 덤프파일 | grep 데이터 베이스 명 > aaa.txt

-> 이 부분은 복구 하고자 하는 데이터 베이스 다음에 어떤 데이터 베이스가 있는지 검색 하기 위한 단계
왜 해야 되는지는 아래에서 계속...^_________^
vi aaa.txt
-> 복구 하고자 하는 데이터 베이스 (USE `데이터 베이스`)찾고 그 다음 어떤 데이터 베이스가 오는지 확인 한다.
-> 전체 덤프 파일에서 내가 복구 하고자 하는 DB 이름은 aaa고 aaa 라는 DB 다음에 bbb라는 디비가 있다고 가정하고
aaa라는 DB 복구 하는 방법을 설명 하겠다.
grep -n "USE `aaa`" 덤프파일.sql
20592:USE `aaa`;
-> 해당 덤프파일에서 내가 복구 하고자 하는 데이터 베이스는 20592번째 줄에서 시작한다.
grep -n "USE `bbb`" 덤프파일.sql
22147:USE `bbb`;
-> aaa라는 데이터 베이스 다음에 bbb라는 데이터 베이스는 22147번째 줄에서 시작 한다.
bbb라는 DB 시작 부분에서 aaa라는 DB 시작 부분을 빼면 aaa라는 DB 내용을 알 수 있다.
grep "USE `aaa`" -A 1555 덤프파일.sql > aaa_DB.sql
-> 덤프파일.sql 이라는 파일에서 aaa라는 데이터 베이스를 검색 하고 해당 라인 이후부터 1555줄까지를 aaa_DB.sql이라는
파일에 저장한다.
-> 이렇게 하면 aaa라는 DB 시작부터 bbb라는 DB가 시작 하는 사이의 데이터를 찾을 수 있다.
mysql -u root -p aaa < aaa_DB.sql
-> 이렇게 복구 하면 된다.
-> 아니면 다른 DB를 만들어서 복구 하고 원본 DB랑 비교해서 삭제되거나 깨진 부분만 복구도 가능하다.

* DB 백업은 테이블 단위로 하자!!!!!!!

이호스트데이터센터(http://www.ehostidc.co.kr)
첨부파일