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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://liguxk.blog.51cto.com/129038/288461
实现功能:定期备份数据库,删除过期备份,通过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
本文出自 “ 寒.枫” 博客,请务必保留此出处 http://liguxk.blog.51cto.com/129038/288461

本文转自holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/310773

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
关系型数据库 MySQL 数据库
Python tk dos命令备份mysql数据库
Python tk dos命令备份mysql数据库
24 0
|
3月前
|
数据库 数据安全/隐私保护 Python
写一个定时备份数据库的脚本,且只保留最近3天
写一个定时备份数据库的脚本,且只保留最近3天
67 3
|
3月前
|
存储 关系型数据库 MySQL
mysql数据库如何做到定期备份
mysql数据库如何做到定期备份
288 2
|
8天前
|
数据库
使用Navicat Premium 12进行数据库定期自动备份(定时任务)--图文详解
使用Navicat Premium 12进行数据库定期自动备份(定时任务)--图文详解
18 0
|
1月前
|
SQL 存储 数据库
数据安全无忧,SQL Server 2014数据库定时备份解密
数据安全无忧,SQL Server 2014数据库定时备份解密
|
2月前
|
关系型数据库 MySQL Linux
Linux环境下定时备份mysql数据库
Linux环境下定时备份mysql数据库
|
2月前
|
数据库 对象存储 数据安全/隐私保护
在oceanbase数据库中,有没有遇到备份到oss环境,备份进度到98%就一直卡着的问题?
在oceanbase数据库中,有没有遇到备份到oss环境,备份进度到98%就一直卡着的问题?
27 6
|
2月前
|
SQL 存储 关系型数据库
备份数据库
备份数据库
22 9
|
2月前
|
SQL 存储 算法
【数据库SQL server】数据库系统概述与DBS结构
【数据库SQL server】数据库系统概述与DBS结构
68 0
【数据库SQL server】数据库系统概述与DBS结构
|
3月前
|
关系型数据库 MySQL Shell
linux shell脚本实现自动备份Mysql数据库脚本
linux shell脚本实现自动备份Mysql数据库脚本
182 3