在工作中,经常会遇到需要对mysql数据库进行冷备的业务场景,以下脚本内容特针对冷备定制。
创建备份用户:
mysql> create user backup@'%' identified by 'Tta_eZt7XKr9';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on *.* to backup@'%';
Query OK, 0 rows affected (0.00 sec)
制定备份脚本:
#!/bin/bash
MYSQLUSER=backup
PASSWD='Tta_eZt7XKr9'
BACKUPDIR=/data/mysql/backup/data
BACKUPFILE=mysql_bak_all_`date +%Y%m%d`.sql.gz
DATA_10=mysql_bak_all_`date -d "-10 day" +%Y%m%d`.sql.gz
#判断备份文件存储目录是否存在,否则创建该目录
if [ ! -d $BACKUPDIR ];then
mkdir -p "$BACKUPDIR"
fi
#备份开始
cd $BACKUPDIR
mysqlpump --parallel-schemas=0 --single-transaction --set-gtid-purged=OFF --add-drop-database -h 192.168.10.32 -u$MYSQLUSER -p$PASSWD -A |gzip > $BACKUPFILE
exit
if [ `date +%d` == '01' ]; then
echo "$DATA_10 保留每月1号的备份!"
else
if [ -f $DATA_10 ]; then
rm -f $DATA_10
echo `date`: "$DATA_10 is delete!"
fi
fi
echo `date`: "mysqlpump is OK!"