MySQL DB 데이터 덤프 쉘스크립트



마스터 서버의 DB data 를 슬래이브 서버에 백업하는 스크립트을 작성하고 크론에 등록하는 방법입니다.


실행 위치는 Slave 서버 기준입니다.


Master 에서 실행한다면 호스트 부분을 수정하여야 합니다.


--databases 옵션으로 데이터베이스명을 나열해서 백업할 수도 있겠지만 시간이 너무 올래걸리므로 아래처럼 분리를 해보았습니다.


#!/bin/sh


M_HOST="example.com"

M_USER="root"

M_PASS="password"

S_HOST="localhost"

S_USER="root"

S_PASS="password"

DBNAMES="

database1

database2

database3

"


for DBNAME in $DBNAMES

do

echo "mysqldump -h$M_HOST -u$M_USER -p$M_PASS act --opt | gzip > $DBNAME.sql.gz"

echo "gunzip < $DBNAME.sql.gz | mysql -h$S_HOST -u$S_USER -p$S_PASS $DBNAME"

done


위 파일을 /root/bin/dbdump.sh 로 저장합니다.


# chmod 700 /root/bin/dbdump.sh



크론에 등록해 놓으면 편하겠지요~


# vi /etc/cron.d/dbdump


30 03 * * * root /root/bin/dbdump.sh


매일 새벽 3시 30분에 실행한다는 의미입니다.



그리고 로컬이 아닌 다른 IP 에서 접근이 가능하게 하려면 미리 권한을 주어야 합니다.


GRANT ALL PRIVILEGES ON *.* TO 'root'@'접속허용아이피' identified by '비밀번호';


접속허용아이피에 % 를 주면 모든 ip에 대해서 허용한다는 의미입니다.


그리고 root 계정 보다는 다른 이름으로 만드는게 좋을 것 같습니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,