MySQL 데이터베이스를 백업하기 위한 스크립트 만들기
MySQL 데이터베이스를 백업하는 데 사용할 스크립트를 만들 수 있습니다. 백업을 수행하기 위해 데이터베이스를 중지하지 않아도 됩니다. MySQL 데이터베이스를 백업하기 위해 다음과 같은 두 스크립트를 만듭니다.
- pre-db-backup-mode.sh - 이 스크립트는 열려 있는 모든 테이블을 닫고 전역 읽기 잠금으로 모든 데이터베이스의 모든 테이블을 잠급니다.
- post-db-backup-mode.sh - 이 스크립트는 모든 잠금을 해제합니다.
백업 마법사의 사전/사후 스크립트 설정에서 MySQL 데이터베이스 노드에서 실행할 스크립트를 지정할 수 있습니다.
다음 단계를 수행하십시오.
- 백업 서버에 루트 사용자로 로그인합니다.
- 다음 코드를 사용하여 pre-db-backup-mode.sh 스크립트를 만듭니다.
#!/bin/bash#
dbuser=root
dbpwd=rootpwd
lock_mysqldb(){
(
echo "flush tables with read lock;"
sleep 5
) | mysql -u$dbuser -p$dbpwd ${ARGUMENTS} }
}
lock_mysqldb &
PID="/tmp/mysql-plock.$!"
touch ${PID}
참고: dbuser 및 dbpwd 변수의 값을 MySQL 데이터베이스에 정의된 대로 지정하십시오.
- 다음 코드를 사용하여 post-db-backup-mode.sh 스크립트를 만듭니다.
#!/bin/bash
killcids(){
pid="$1"
cids=`ps -ef|grep ${pid}|awk '{if('$pid'==$3){print $2}}'`
for cid in ${cids}
do
echo ${cid}
kill -TERM ${cid}
done
echo -e "\n"
}
mysql_lock_pid=`ls /tmp/mysql-plock.* | awk -F . '{print $2}'`
[ "$mysql_lock_pid" != "" ] && killcids ${mysql_lock_pid}
rm -fr /tmp/mysql-plock.*
- 두 스크립트 모두에 대한 실행 권한을 제공합니다.
- 두 스크립트를 모두 다음 위치에 가져다 놓습니다.
/opt/Arcserve/d2dserver/usr/prepost/
- Arcserve UDP 에이전트(Linux) 웹 인터페이스에 로그인합니다.
- 백업 마법사를 열고 고급 탭으로 이동합니다.
- 사전/사후 스크립트 설정 옵션의 "스냅숏 생성 전" 드롭다운 목록에서 pre-db-backup-mode.sh 스크립트 파일을 선택합니다.
- 사전/사후 스크립트 설정 옵션의 "스냅숏 생성 후" 드롭다운 목록에서 post-db-backup-mode.sh 스크립트 파일을 선택합니다.
- 백업 작업을 제출합니다.
백업 작업이 제출됩니다.
MySQL 데이터베이스를 백업하기 위한 스크립트가 만들어집니다.
참고: Arcserve UDP 에이전트(Linux)는 볼륨 수준 스냅숏을 지원합니다. 데이터 일관성을 위해 데이터베이스의 모든 데이터 파일이 하나의 볼륨에 있어야 합니다.