mysql 백업
- MYSQL 설치 위치 : /database/mysql/bin
백업을 하기 위해서 비밀번호 없이 접근할 수 있는 설정을 생성해야 합니다.
# /database/mysql/bin 에서 실행
# mysql_config_editor set --login-path=설정이름 --host=주소 --user=아이디 --port=포트 --password
$ mysql_config_editor set --login-path=myroot --host=localhost --user=root --password
Enter password: *****
#설정을 사용하여 접속
$ mysql --login-path=myroot
..
mysql>
설정이 완료 되면 backup.sh
파일을 생성 합니다.
# backup.sh 파일
#!/bin/bash
BACKUP_DIR='/database/backup'
BACKUP_DT=`date '+%Y%m%d%H%M%S'`
BACKUP_FILE=${BACKUP_DT}_DAILY.sql
cd $BACKUP_DIR
echo "# Daily Backup Start."
/database/mysql/bin/mysqldump --login-path=myroot --single-transaction --all-databases > ${BACKUP_DIR}/${BACKUP_FILE}
echo "# Backup ${BACKUP_FILE}"
tar cvzf ${BACKUP_DIR}/${BACKUP_FILE}.tar.gz ${BACKUP_FILE}
rm ${BACKUP_DIR}/${BACKUP_FILE}
echo "# Zip ${BACKUP_FILE}.tar.gz"
echo "# REMOVE Over 3 Days File"
find ${BACKUP_DIR} -name '*.tar.gz' -type f -mtime +3 -delete
echo '# End'
위를 실행하면 전체 database를 백업 후 압축 하게 됩니다.
crontab
에 매일 또는 2일에 한번씩 위의 파일이 실행되게 하면, 백업이 든든하게 됩니다!
추가 팁 복원
백업된 파일의 압축을 풀고 다음의 명령어를 통해서 복원 할 수 있습니다.
# /database/mysql/bin 에서 실행
$ mysql --login-path=myroot < /database/mysql/backup/압축된파일명.sql
이상으로 백업 및 복원을 마칩니다.!