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]

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




---------------------------------------------------------------------------------------------------

+ 백업옵션
 - http://www.mysqlkorea.co.kr/sub.html?mcode=develop&scode=01&lang=k&m_no=21562&cat1=8&cat2=274&cat3=0

 


-전체 백업 및 복구
 백업
 /usr/local/mysql/bin/mysqldump -u oic --password='*****' OIC > /home/mysql/backup/oic_20120613.sql
 복구
 /usr/local/mysql/bin/mysql -u root -p OICR < /home/mysql/backup/oic_20120613.sql
 
- Procedure, function, trigger 백업 및 복구
 백업
 /usr/local/mysql/bin/mysqldump -u oic --password='******' --routines --no-create-info --no-data --no-create-db --skip-opt OIC > /home/mysql/backup/oic_proc_trigger_fun_20120915.sql

 복구 
 /usr/local/mysql/bin/mysql -u root -p OICR < /home/mysql/backup/oic_proc_trigger_fun_20120915.sql


-특정  테이블  백업(schema + data)
/usr/local/mysql/bin/mysqldump -q -u oic -p OIC TB_MAILDATA> /home/mysql/backup/oic_TB_MAILDATA_all_20120915.sql


- 특정  테이블 스키마 백업(schema)
 백업
 /usr/local/mysql/bin/mysqldump -u oic --password='*****' --no-data OIC TB_MAILDATA >  /home/mysql/backup/oic_TB_MAILDATA_schema_20120915.sql 

 복구 
 /usr/local/mysql/bin/mysql -u root -p OICR < /home/mysql/backup/oic_TB_MAILDATA_schema_20120915.sql


특정  테이블  백업(data)
 백업
 /usr/local/mysql/bin/mysqldump -u oic --password='*****'  --no-create-info OIC TB_MAILDATA > /home/mysql/backup/oic_TB_MAILDATA_data_20120915.sql
  
특정  테이블  백업(data + 조건절) 

 백업

/usr/local/mysql/bin/mysqldump -u oic --password='******'  --no-create-info OIC TB_MAILDATA  -w "SEQ<20" > /home/mysql/backup/oic_TB_MAILDATA_data_where_20120915.sql




Posted by wychoi
,