您的位置:首页 > 数据库 > SQL

mysqlhotcopy 通过ftp方式异地备份数据库

2010-05-06 09:14 656 查看
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。/article/4290018.html
实现功能:定期备份数据库,删除过期备份,通过ftp方式实现异地备份。
使用shell脚本配合crontab进行自动化备份。

备份环境:
mysql replication架构中的从机上进行备份

采用mysqlhotcopy原因:mysqlhotcopy方式,该方式在复制前先进行锁表,保证数据在同一刻一致性,复制完成后自动解锁。

在从机上备份的原因:在从机上执行,不影响WEB对主库的写操作。mysql replication 遇到锁表后暂停,当完成后根据relay-log日志继续与主库同步,同步正常

#!/bin/bash
#this script for backup datebase
#获取当前日期
TODAY=$('date' +'%Y%m%d')
#设定过期时间为7天
EXPIRED=$('date' -d '-7 days' +'%Y%m%d')
STOREDIR=/home/bak/
MYSQLHOTCOPY=/usr/local/mysql/bin/mysqlhotcopy

####################### Backup and compress databases ###################################
#需要备份的数据库列表
database=(db1 db2 db3 db4 …… dnn)

echo "Copy Database start time :" > /info.txt
echo $('date' '+%Y-%m-%d %H:%M:%S') >> /info.txt
echo "" >> /info.txt
echo "File size as follows" >> /info.txt

rm -rf /home/bak/*

for i in ${database[*]}
do
$MYSQLHOTCOPY -u=用户名 -p=密码 $i /home/bak/
du -sh /home/bak/$i >> /info.txt
done

echo "" >> /info.txt
echo "" >> /info.txt
echo "Total sizes:" >> /info.txt

####################### Tar databases ###############################################
du -sh /home/bak >> /info.txt
cd /home
#对备份文件进行压缩
tar czf bak.tar.gz bak
du -sh /home/bak.tar.gz >> /info.txt
echo "" >> /info.txt
echo "Upload file time :" >>/info.txt
echo $('date' '+%Y-%m-%d %H:%M:%S') >> /info.txt

######################## Upload file to ftp server ######################################
ftp -v -n ftp服务器IP << END
user ftp用户名 密码
binary
hash
#创建新的日期文件夹
mkdir $TODAY
cd $TODAY
lcd /home
prompt

#删除过期数据及文件夹
mput bak.tar.gz
cd /$EXPIRED
mdelete bak.tar.gz
cd ../
rmdir $EXPIRED
close
bye
END

###################### Send mail Report ##################################################
echo "" >> /info.txt
echo "Complete time is:" >> /info.txt
echo $('date' '+%Y-%m-%d %H:%M:%S') >> /info.txt
mail -s "DataBase backup Report" liguxk@126.com < /info.txt
本文出自 “寒.枫” 博客,请务必保留此出处/article/4290018.html本文出自 51CTO.COM技术博客
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: