개발자의 길

[DB] mysql 백업 본문

3. DB

[DB] mysql 백업

자르르 2015. 12. 3. 10:41


백업

1. data 디렉토리를 백업하는 방법

shell>tar cvfz mysql_data.tar.gz /usr/local/mysql/data

2. mysqldump 유틸리티 사용

shell>mysqldump -u root -p -A > all.sql (모든 데이터베이스를 백업)
shell>mysqldump -u root -p test > db.sql (test DB만 백업)
shell>mysqldump -u root -p --databases test test2 > dbs.sql (test 와 test2 데이터베이스를 백업)
shell>mysqldump -u root -p test board > table.sql (test DB 안에 board란 테이블만 백업)

shell>mysqldump -u root -p --routines test > db.sql (test DB와 트리거, 프로시져, 함수 포함 백업)

* 일정 시간마다 자동백업 : shell 프로그래밍을 작성하여 cron에 등록시켜 줌.

ex)dumpx란 shell 프로그래밍을 작성해보자 (/tmp 디렉토리 아래 기록)

#vi dumpx
#!/bin/sh

#########################################
# MySQL 백업 Script #
#########################################

# 날짜 지정-파일명-저장 디렉토리 설정
DATE=`/bin/date +%d-%b-%Y-%H-%M-%S`
FILEPREFIX="MySQL-Backup-$DATE"
TEMPDIR="/tmp"

#
# HOSTNAME=`/bin/hostname`
#

# root와 비밀번호
USERNAME="root"
PASSWORD="123456"
# --all-databases일 경우 전체 DB 백업
DATABASE="test"

# backup
# /usr/local/mysql/bin/mysqldump 절대 경로를 모두 써주는 것이 좋다.
/usr/local/mysql/bin/mysqldump -u$USERNAME -p$PASSWORD $DATABASE > $TEMPDIR/$FILEPREFIX.sql | tar -cf $TEMPDIR/$FILEPREFIX.tar.gz -z $TEMPDIR/$FILEPREFIX.sql | rm -f
$TEMPDIR/$FILEPREFIX.sql


:wq!

shell>chmod 711 dumpx
shell>./dumpx

*매일 새벽 05시 35분에 dumpx스크립트를 실행하는 것을 cron에 등록해 보자.

shell>crontab -e
35 05 * * * /usr/local/mysql/bin/dumpx

:wq!

주의>DATE에서 사용된 기호 (`)는 ~ 에있는 기호이다. 작음따옴표(')아님.

복구 : shell>mysql -u root -p test < table.sql shell>mysql -u root -p < db.sql



이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공유하기 링크
Comments