테이블별로 백업 하기 > 데이터베이스

본문 바로가기
사이트 내 전체검색


회원로그인

데이터베이스

MySQL | 테이블별로 백업 하기

페이지 정보

작성자 100K5 작성일13-03-22 15:40 조회42,207회 댓글0건

본문

#!/bin/sh
 
DBHOST="localhost"
DBUSER=""
DBPWD=""
 
BACKUPDIR="/mysqldump/"
 
# 캐릭터 셋 옵션 처리(utf8, latin1)
OPTIONS="--default-character-set=latin1 --routines --single-transaction --quick"
 
DATE=`date +%Y%m%d`
DELDATE=`date --date "30 day ago" +%Y%m%d`
 
# 같은 날짜 폴더가 있다면 먼저 폴더 삭제를 한다.
rm -rf ${BACKUPDIR}${DELDATE}
 
# 백업폴더/오늘날짜 폴더를 생성한다.
mkdir ${BACKUPDIR}${DATE}
 
# 전체 데이타베이스 백업시(선택1)
RESULT=`/usr/local/mysql/bin/mysql -u$DBUSER -p$DBPWD -h$DBHOST -e "show databases" | grep -v Database`
 
#특정 데이타베이스 백업시(DB명 띄어쓰기로 구분해서 나열)(선택2)
# RESULT="mysql information_schema db명"
 
for DB in $RESULT; do
 
   mkdir ${BACKUPDIR}${DATE}/${DB}

   TABLELIST=`/usr/local/mysql/bin/mysql -u$DBUSER -p$DBPWD -h$DBHOST $DB -e "show tables" | grep -v Tables_in_$DB`
 

    for TABLE in $TABLELIST; do

      FNAME_DESC=${BACKUPDIR}${DATE}/${DB}/${TABLE}_desc_${DATE}.sql
      FNAME_DATA=${BACKUPDIR}${DATE}/${DB}/${TABLE}_data_${DATE}.sql
      /usr/local/mysql/bin/mysqldump -u$DBUSER -p$DBPWD -h$DBHOST $OPTIONS --no-data $DB $TABLE >> $FNAME_DESC
 
     /usr/local/mysql/bin/mysqldump -u$DBUSER -p$DBPWD -h$DBHOST $OPTIONS --no-create-db $DB $TABLE >> $FNAME_DATA
    echo "set foreign_key_checks=1;" >> $FNAME_DATA
    gzip --rsyncable $FNAME_DATA

    done
done

댓글목록

등록된 댓글이 없습니다.


사이트소개 개인정보취급방침 서비스이용약관 Copyright © kkujunhee.net All rights reserved.
상단으로

개인정보관리책임자 : 관리자

모바일 버전으로 보기