사이트 내 전체검색
mysqldump 옵션 스키마, 데이터만 백업
로빈아빠
https://cmd.kr/server/681 URL이 복사되었습니다.

본문

mysqldump --help 
 
# 테이블 자료만 압축으로 백업
mysqldump -u user -p --opt --extended-insert -t -q database | gzip 〉 database.sql.gz
mysqldump -u user -p --opt --extended-insert -t -q database table | gzip 〉 database.sql.gz
 
# 압축자료를 그대로 복원
gunzip 〈 database.sql.gz | mysql -u user -p database
 
# 압축자료를 그대로 강제 복원
gunzip 〈 database.sql.gz | mysql -u user -p -f database
주의: 만약, --quick 이나 --opt 없이 덤프하면 메모리가 많이 소모되어 큰 데이터베이스의 경우 문제가 발생할 수 있다.
mysqldump -u user -p --add-locks database 〉 database.sql
# 테이블의 덤프하기전에 해당 테이블을 잠그고 덤프한 후에 테이블을 풀어준다. 
 
mysqldump -u user -p -c database 〉 database.sql
# -c, --complte-insert
# INSERT 구문에서 필드명을 포함한 전체를 덤프 
 
mysqldmp -u user -p -f database 〉 database.sql
# -f, --force 
# 덤프 중 에러가 있어도 계속 진행 
 
mysqldump -u user -p -h database 〉 database.sql
# -h, --host 
# 특정 호스트의 MySQL 에서 데이터 덤프 
 
mysqldump -u user -p -t database 〉 database.sql
# -t, --no-create-info 
# 테이블 생성 정보는 덤프하지 않음(데이터만 덤프) 
 
mysqldump -u user -p -d database 〉 database.sql
# -d, --no-data 
# 테이블 스키마만 덤프 
 
mysql -u user -p -q database 〉 database.sql
# -q, --quick 
# 버퍼를 사용하지 않고 바로 표준출력으로 보낸다. 

참고 :
mysql 백업 받기 - mysqldump
MySQL Database Export - Backup Methods

--quick : C API의 mysql_use_result() 함수를 사용하므로 속도가 빠르다. 
--add-drop-table : 덤프 결과에서 create table 앞에 drop table 절을 추가합니다. 
--add-locks : 덤프하기 전에 LOCK table을 이용하여 테이블을 잠그고 덤프후 UNLOCK table을 실행합니다. 
--extended-insert : insert 문 하나에서 모든 레코드를 삽입하는 insert 문을 생성합니다.

※ --opt : 위에 나온 옵션을 동시에 사용한 것과 같은 결과를 가져옵니다. 

--no-date or -d : 테이블의 스키마만 덤프합니다. 
--no-create-info or -t : create table을 출력하지 않고 데이터만 덤프합니다. 
--opt 옵션을 주어서 백업하면 나중에 원복을 할때 기존 DB와 TABLE, DATA를 삭제하고 백업한 내용으로 Update를 합니다. 
--ignore-table=database.table : 특정테이블을 제외하고 백업한다.

★ --opt 옵션과 -d or -t는 같이 사용할 수 있습니다.


mysqldump --opt|작성자 고지라

2012.05.23 backup.sh
USER="userid"  #mysql, userid equal
PASS="mysqlpassowrd"
SOURCE_DIR="/home/$USER/www"
TARGET_DIR="/home/$USER/backup/"
TARGET_FILE="back.$(date +%Y%m%d%H).tar.bz2"
TARGET_SQL="back.$(date +%Y%m%d%H).sql"
mkdir $TARGET_DIR
##### sql dump backup
mysqldump -u$USER -p$PASS -d -A -q --opt --ignore-table mysql.* | bzip2 -9 > $TARGET_DIR$TARGET_SQL.all.scheme.bz2
mysqldump -u$USER -p$PASS -t -A -q --opt --ignore-table mysql.* | bzip2 -9 > $TARGET_DIR$TARGET_SQL.all.data.bz2
find $TARGET_DIR -mtime +10 -print -exec rm -rf {} \;
##### user file backup
EXCLUDE="--exclude cache --exclude cash_back --exclude logs"
mkdir $TARGET_DIR
tar cvjf $TARGET_DIR$TARGET_FILE $SOURCE_DIR $EXCLUDE

** 백업
mysqldump -uuserid -p -d -q --opt pickup | bzip2 -9 > back.2012060811.sql.database.scheme.bz2
mysqldump -uuserid -p -t -q --opt pickup | bzip2 -9 > back.2012060811.sql.database.data.bz2
** 복원
bunzip2 < back.2012060811.sql.database.scheme.bz2 | mysql -uuserid -p -f database
bunzip2 < back.2012060811.sql.database.data.bz2 | mysql -uuserid -p -f database

# 2012.07-26
초보자를 위한「MySQL 백업·복구」강좌 - MySQL 백업 기본
mysqldump -u root -p secret --no-create-info --tab=/tmp --fields-terminated-by=',' stocksdb

댓글목록

등록된 댓글이 없습니다.

1,139 (3/23P)

Search

Copyright © Cmd 명령어 18.116.63.105