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 계정 보다는 다른 이름으로 만드는게 좋을 것 같습니다.
'LINUX' 카테고리의 다른 글
쉘스크립트 for 반복문 사용방법 (0) | 2017.03.15 |
---|---|
CentOS 7.x phpMyAdmin 특정 IP 만 허용하는 방법 (0) | 2017.03.14 |
리눅스 하드디스크 점검 유틸리티 (2) | 2017.03.10 |
리눅스 ftp smtp 포트 특정IP 만 허용하기 (0) | 2017.03.10 |
MySQL DB TABLE 다른 DATABASE로 빨리 옮기는 방법 (0) | 2017.03.09 |