공식 메뉴얼 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
'IT노트 > MYSQL' 카테고리의 다른 글
MySQL 상태 확인 (0) | 2015.02.25 |
---|---|
mysql grant user 생성 및 권한 설정 (0) | 2015.02.25 |
계측쿼리에 사용함수 hierarchy_connect_by_parent_eq_prior_id; (0) | 2015.02.20 |
[mysql] function 정보 (0) | 2015.02.20 |
[MySQL] DB 캐릭터셋 확인하기 (0) | 2015.02.19 |