from: http://algorizm.tistory.com/24

MySQLDUMP 명령은 데이터베이스 백업에 사용되는 명령어이다.
자주 쓰다가 안쓰게 되면 까먹는데 필요할때 빨리 찾아보고 작업을 할 수 있도록 정리해보았다.

공식 메뉴얼 URL은 다음과 같다.
http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

이번 글에서는 기본적인 사용법과 몇가지 주요한 옵션을 정리해보았다.

1. 데이터베이스 백업

- DB 와 테이블을 지정하여 백업
shell> mysqldump [options] db_name [tbl_name] > filename

- 전체 데이터베이스 풀 백업
shell> mysqldump [options] --all-database
--all-database 대신 -A 옵션을 지정해도 된다.

몇가지 옵션들
--disable-keys, -K
MyISAM 테이블에 덤프파일을 통해 INSERT 시 사용하면 덤프파일을 읽어와서
INSERT 시 처리속도를 높일 수 있다.
모든 행이 INSERT 된 후에 인덱스를 생성해주는 옵션이다.

--extend-insert, -e
INSERT 문을 생성 시 다중 INSERT 문으로 생성해주는 옵션이다.
동일한 열 지정이 제외되므로 그만큼 파일 사이즈가 줄어들고 복원 시
삽입속도를 좀 더 빠르게 할 수 있다.

--quick, -q
이 옵션은 테이블에 대한 열을 서버에서 한 번에 한 열씩 추출하여 메모리에 버퍼링 된 데이터를
덤프하므로 대용량 테이블을 덤프할 때 유용하다.

--routines, -R
스토어드 프로시저, 함수를 덤프한다. 덤프된 루틴이 재생성될 때 원래의 타임스태프 값을
가지게 하기 위해서는 mysql.proc 테이블의 내용물을 직접 덤프하여 사용한다.

--where='where_condition, -w 'where_condition'
주어진 where 조건문에 해당되는 데이터만 덤프한다. 조건 지정 시 인용부호를 사용한다.
ex) -where="userid='홍길동'"
     -w "depth >1"

2. 데이터베이스 복원
복원 명령어도 간단하다.
shell> mysql -u[username] -p [dbname] < 덤프파일명
예1) test 데이터베이스에 복원
shell> mysql -utest -p test < dump.sql
예2) 전체백업된 덤프파일 복원
shell> mysql -utest -p < fulldump.sql
예3) 덤프파일 경로지정, 데이터베이스 지정
shell> mysql -e "source /path/backup.sql" [dbname]

상황에 따라 옵션 지정이 달라지므로 메뉴얼이랑 친숙하게 지내는게 좋겠다.
Posted by 세모아