728x90

[정리] MySQL Data 백업 방법 및 복구 방법


MySQL 데이터를 백업하는 방법에는 물리적인 백업과 논리적인 백업이 있다.

ㅇ 물리적 백업

    - MySQL 데이터가 기록되는 폴더를 통째로 압축해서 백업한다. (속도가 빠르며 작업이 단순)

    - 복구할 때는 MySQL 데몬을 정지시키고 해당 폴더에 압축을 푼다.


ㅇ 논리적 백업

    - 리눅스에서 기본 제공하는 mysqldump를 이용하는 방법

    - phpmyadmin 을 이용하는 방법

    - 기타 툴을 이용하는 방법

    등이 있다.

    논리적 백업을 하면 문제 발생시 원인 파악및 해결하기가 수월한데 복구 시간이 상당 소요될 수 있다.


1. 리눅스 상에서 mysqldump를 이용한 백업

    mysqldump 로 SQL문을 갖는 텍스트 파일을 생성하는 것이다.
    ※ 설정한 패스워드에 따라서 -p 다음에 바로 패스워드를 입력하면 적용되지 않는 경우가 있다.
        그래서 -p 만 입력하고 실행하면 패스워드를 물어보고 패스워드 입력하면 백업이 잘 된다.
# mysqldump -u [사용자아이디] -p
DB명 [테이블명] > 저장될 파일명

예) mysqldump -u root -p mydatabase > kimsqrb.sql  
//
DB(mydatabase)를 몽땅 덤프를 뜨게된다. mydatabase 는 실서버에 존재하는 데이터베이스 이름이어야 한다.
# mysqldump -u [userId] -p --all-databases > dump.sql  // 서버에 있는 모든 것의 논리 백업 생성


2. 복구하기
   백업용으로 저장한 SQL 파일을 가지고 복구를 하는 방법도 간단하다.
   데이터 량이 많을 경우 백업하는데 속도가 엄청나게 오래 걸린다.
# mysql -u [사용자아이디] -p DB명 < 저장된 SQL 파일명

예) mysql -u jsk005 -p mydatabase < kisqrb.sql

# mysql -u root -p
mysql > passwd : 접속비밀번호 입력
mysql > use 해당DB명   // DB를 선택하지 않으면 에러가 발생함
mysql >  source dump.sql
로 명령을 실행해도 복구된다.
※ 반드시 pwd 로 현재 폴더의 경로를 확인하고,
    dump.sql 파일이 올려진 폴더에서 mysql -uroot -p 를 해야 한다.


4만개 정도되는 데이터를 넣었더니 순식간에 DB에 저장되었다.

phpmyadmin 에서 Web 업로드를 하면 Lock 이 걸리고 너무 느려서 도저히 ㅠㅠㅠ


3. phpmyadmin 상에서 백업

    phpmyadmin 을 이용하면 명령어를 몰라도 쉽게 백업을 할 수 있다.

     자료를 백업하는데에는 시간 별로 걸리지 않아서 자주 백업해 두어야 문제가 생길 때 복구가 가능하다.



4. phpmyadmin 으로 복구

   용량이 작은 것은 phpmyadmin 에서 복구하면 편리한데 용량이 좀 큰 것은 작업하다보면 Lock 이 걸려버려서

   작업하기가 쉽지 않다.


블로그 이미지

Link2Me

,