본문 바로가기

개발 관련 지식/MySQL

[MySQL] 백업 및 복구

* 백업 및 복구


1. MySQL 백업


1) mysqldump 명령어

* 전체 Database 백업

 mysqldump -uroot -p -A > [백업 받을 파일명].sql


* 특정 Database 백업

 mysqldump -uroot -p [DB명] > [백업 받을 파일명].sql


* 특정 테이블 백업

 mysqldump -uroot -p [DB명] [테이블명] > [백업 받을 파일명].sql


[참고]

-A, --all-databases : 모든 DB 덤프

-B, --databases : 특정 DB를 덤프 

--opt : 버퍼링을 비확성화 하고, 많은 데이터를 덤프에 있는 소량의 SQL구문에 기록해 더효율적으로 동작하다록 한다.

--lock-alltables : 전역적으로 일관된 백업을 만들도록 "FLUSH TABLES WITH READ LOCK"을 사용한다. 

--tab : "SELECT INTO OUTFILE"로 파일을 덤프하여, 덤프 및 복원 속도가 매우 빠르다.

-d, --no-data :  데이터는 제외하고 스키마만 덤프

-t, --no-create-info : 스키마는 제외하고 덤프

-routines  :  저장 프로시져와 함수를 포함


2) 디렉토리 백업

=> mysql 설치 시 지정한 database 경로에서 백업할 db의 디렉토리를 압축한다


3) mysqlhotcopy 명령어

=> innoDB 는 지원하지 않는다

 mysqlhotcopy [DB명] [경로]



2. MySQL 복구

=> 디렉토리 백업의 경우, 복구 방법은 압축한 파일을 덮어쓰면 된다.

 mysql -uroot -p [DB명] < [백업 받은 파일명].sql