• MySQL 백업 및 복구 (덤프):: 마이구미
    데이터베이스 2016. 12. 12. 19:30
    반응형

    이번 글의 주제는 MySQL 백업 및 복구에 대해 다룰 것이다.

    데이터베이스는 중요한 요소이기 때문에 모든 프로젝트에서 DB의 백업과 복구는 필수이다.


    일단 환경은 cafe24의 가상서버호스팅이다.

    본인은 Mac을 사용하고 있어, DB 툴은 sequel Pro를 사용하고, ftp는 Cyberduck을 사용하고 있다.

    뭐 환경과 툴은 중요하지 않는다.

    지금부터 다루는 것들은 거의 대부분 제공해줄 것이고, 이러한 방식으로 한다.


    DB의 백업과 복구에는 sql 확장자를 가진 .sql 덤프 파일을 이용하면 된다.

    DB 툴에서 export 기능은 대부분 지원해주고 있다.

    (아직까지 툴을 안 쓰고 올드하게 하는 사람은 없을 거라 생각하겠다.)


    DB 전체를 백업 및 복구를 진행하겠다.

    Sequel Pro 의 Export 관련 이미지를 보자.


    export              


    이미지와 같이 전체 테이블을 선택한 후 Export 기능을 이용하면 sql 덤프 파일을 만들어진다.

    위의 이미지를 보다시피 자신이 원하는 대로 export 하면 된다.

    그러면 바탕화면에 보면 sql 덤프파일이 만들어진 걸 확인할 수 있다.

    덤프 파일은 sql 쿼리문으로 이루어져 있다.


    파일을 열어보면 수많은 쿼리문을 볼 수 있다.

    간단하게 설명하자면 동일한 테이블이 있으면 drop 시킨 후 create를 한다.

    쉽게 말하면 초기화 후 다시 만든다고 생각하면 된다.

    그렇기에 데이터가 중복될 걱정은 안 해도 된다.


    이제 sql 덤프 파일을 사용해보자.

    실수로 DB를 날려버렸다는 가정하에 sql 덤프 파일을 통해 복구를 시작해보자.

    먼저 덤프 파일을 서버에 올려야한다.

    그냥 마우스로 끌어서 올릴 수도 있겠지만 리눅스 명령어인 scp 를 통해 옮기자.

    앞으로 파일 용량이 큰 경우를 대비해서 마우스를 끌어다가 쓰는 것보다 scp 명령어를 숙지하자.

    scp .sql 파일이 존재하는 경로 root@IP:/.sql 올릴 서버 디렉토리 경로


    // example

    scp /Desktop/20161212.sql root@222.333.444.555:/home/project

    위와 같이 scp 명령어를 사용하여 파일을 쉽고 빠르게 옮길 수 있다.

    그렇다면 이제 서버에도 덤프 파일이 올라갔으니 덤프 파일을 실행해서 복구하면 된다.

    mysql 경로 -u<id> -p<password> databaseName < .sql 경로


    // example

    /usr/local/mysql/bin/mysql -umygumi -p'1234' dbmygumi < /home/project/20161212.sql

    위와 같이 실행하면 쿼리문이 수행되어 백업이 완료된다.

    이렇게 백업 작업을 하면 되기 때문에 sql 덤프 파일을 만들어 놓으면 크게 도움이 된다.


    하지만 항상 만들어 놓을 수는 없다.

    DB를 분산시켜 master와 slave를 분산시켜 사용하고 있어 slave가 백업 DB 기능으로도 이용 가능하다.

    큰 서비스가 아니고, 분산 시킬 필요가 없는 경우도 있으므로 덤프 파일을 만들어 놓으면 예기치 못한 상황이 도움이 될 것이다.


    부족한 점들이나 잘못된 점이 있다면 댓글을 통해 남겨주시면 꾸벅.

    반응형

    '데이터베이스' 카테고리의 다른 글

    [프로그래머스] SQL Lv.1 요약  (0) 2023.05.13
    MYSQL 사용자 관리 :: 마이구미  (0) 2016.12.21

    댓글

Designed by Tistory.