연구개발/MYSQL

innodb 전체백업 / 증분백업

HEAD1TON 2015. 1. 8. 08:51

nnodb 엔진을 사용할 경우 가능한 mysqldump를 이용한 전체 백업 및 binarylog를 이용한 증분백업 스크립트 입니다.
------------------------
/mysql
/mysql_data
/mysql_data/backup
/logs/mysql_logs
------------------------
전체백업 일요일 00시
증분백업 매일 00
---------------------------------------------------------------------
vi mysql-all-backup.sh
#!/bin/sh
datetime=$(date +%Y_%m_%d)
cd /mysql
./bin/mysqldump --user=root --password="pass123@#" --single-transaction --flush-logs --master-data=2 --all-databases --delete-master-log > /mysql_data/backup/backup_sunday_$datetime.sql
tar cvzf /mysql_data/backup/backup_sunday_$datetime.tar.gz /mysql_data/backup/backup_sunday_$datetime.sql
rm -rf /mysql_data/backup/*.sql
---------------------------------------------------------------------
vi mysql-incremental-backup.sh
#!/bin/sh
datetime=$(date +%Y_%m_%d)
cd /mysql
./bin/mysqladmin --user=root --password="pass123@#" flush-logs
tar cvzf /incross/mysql_data/backup_$datetime.tar.gz /logs/mysql_logs/*bin*
find /logs/mysql_logs -name "*bin.??????" -mtime +1 -exec rm -rf {} \;
---------------------------------------------------------------------
chmod 755 mysql-all-backup.sh
chmod 755 mysql-incremental-backup.sh
chown -R mysql:mysql mysql-all-backup.sh
chown -R mysql:mysql mysql-incremental-backup.sh
---------------------------------------------------------------------
[root@BACKUP]# crontab -e
#00 01 * * * /usr/bin/rdate -s time.bora.net && /sbin/clock -w
00 00 * * 0 /incross/mysql_data/mysql-all-backup.sh./
00 00 * * 1-6 /incross/mysql_data/mysql-incremental-backup.sh