生产环境MYSQL备份脚本--基于xtrabackup
Environment:
System:CentOS 5.5X64
xtrabackup:http://www.percona.com/downloads/XtraBackup/
mkdir -p /tools/xtrabackup
cd /tools/xtrabackup
tar zvfx percona-xtrabackup-2.0.2-461.tar.gz
mv percona-xtrabackup-2.0.2 /usr/local/xtrabackup
echo "export PATH=$PATH:/usr/local/xtrabackup/bin" >> /etc/profile
source /etc/profile
核心脚本如下:其它具体细节大家可以去网上搜索 这里我就不过多的阐述了
1 [zhangly@mdb xtrabckup]$ cat xdb_192.168.0.194.sh 2 #!/bin/sh 3 #Info:Script about mysql backup 4 #Date:2012-11-27 5 6 source /etc/profile 7 DBuser="xtrabackup" 8 DBpasswd="123456" 9 DB_name=$(/usr/local/mysql-5.0.92/bin/mysql -uxtrabackup -p'123456' -e 'show databases'|sed 1d|tr '\n' ' ') 10 BAK_dir="/data/db_bak/192.168.0.194/" 11 MYSQL="/usr/local/mysql-5.0.92/bin/mysql" 12 CNF_dir="/etc/my.cnf" 13 LOCAL_IP=`ifconfig eth1 |grep 'inet addr:'|awk '{print $2}'|awk -F":" '{print $2}'` 14 Remote_IP="192.168.0.221" 15 INNOBACKUPEX="/usr/local/xtrabackup/bin/innobackupex-1.5.1" 16 17 if [ ! -d $BAK_dir ] 18 then 19 /bin/mkdir -p $BAK_dir 20 fi 21 22 echo "-----------------------------------------------------------------------------------" >> ${BAK_dir}/${LOCAL_IP}.log 23 echo "Start Backup Time: `date +'%F %T'`" >> ${BAK_dir}/${LOCAL_IP}.log 24 25 #Backup Mysql 26 $INNOBACKUPEX --defaults-file=${CNF_dir} --user=$DBuser --password=$DBpasswd --databases="${DB_name}" $BAK_dir > $BAK_dir/bak_`date +%Y-%m-%d`.log 2>&1 27 28 echo "Mysql Backup Finshed Time: `date +'%F %T'`" >> ${BAK_dir}/${LOCAL_IP}.log 29 30 cd ${BAK_dir}/ 31 /bin/tar zcf bak_`date +%Y-%m-%d`.tar.gz *`date +%Y-%m-%d`* 32 md5sum bak_`date +%Y-%m-%d`.tar.gz|awk '{print $1}' >bak_`date +%Y-%m-%d`_MD5 33 /bin/rm -rf `date +%Y-%m-%d`* 34 35 echo "Tar Backup Finshed Time: `date +'%F %T'`" >> ${BAK_dir}/${LOCAL_IP}.log 36 37 #delete four days ago backup 38 find $BAK_dir -mtime +3 -name "*" -exec rm -f {} \; 39 40 #Check bak.passwd 41 if [[ ! -e /shell/rsync-pwd/rsync.password ]];then 42 echo "rsync_passwd" > /shell/rsync-pwd/rsync.password 43 chmod 600 /shell/rsync-pwd/rsync.password 44 fi 45 46 #Backup:rsync to 192.168.0.221:/data/db_bak/192.168.0.194/ 47 if [ $? == 0 ];then 48 Auth_module="mdb_db" 49 Auth_user="rsync_user" 50 Passwd_file="/shell/rsync-pwd/rsync.password" 51 rsync -vzrtopg --progress --bwlimit=4096 --delete ${BAK_dir} $Auth_user@${Remote_IP}::${Auth_module} --password-file=${Passwd_file} 52 fi 53 54 #Record Backup Time 55 #echo "Backup Time: `date +%F`" >> ${BAK_dir}/${LOCAL_IP}.log 56 #mail -s "192.168.0.194 Mysql Backup Messages" zhangluya1987@gmail.com < ${BAK_dir}/192.168.0.194.log 57 58 59 #GRANT SELECT,RELOAD,LOCK TABLES,REPLICATION CLIENT ON *.* TO 'xtrabackup'@'localhost' IDENTIFIED BY '123456';

浙公网安备 33010602011771号