Heim  >  Artikel  >  Datenbank  >  远程备份MySQL数据库脚本

远程备份MySQL数据库脚本

WBOY
WBOYOriginal
2016-06-07 17:18:051306Durchsuche

最早的做法是,在本地备份出完整的库,把备份库和binlog一并推到远程的某台备份主机上。但是因为最近空间吃紧,而备份库需要占用

最近有几台线上数据库,硬盘比较吃紧,但是又不方便扩容和转移到其它机器。但是数据又比较重要,需要经常备份出来。

最早的做法是,在本地备份出完整的库,把备份库和binlog一并推到远程的某台备份主机上。但是因为最近空间吃紧,,而备份库需要占用不小的空间。有没有其它的解决办法呢?

查看了mysqldump具备远程备份的功能,可以直接将远程数据备份到本地来,这样就可以大大的节省了远程数据库的磁盘空间。

所以我尝试写了一个备份脚本,再配合crontab定时执行,目前看来效果还不错。

线上环境稍加修改可直接使用,如有问题可以联系我O(∩_∩)O~

注意:此法多适用于内网,外网的话需要考虑数据量大小和带宽等网络因素。

脚本内容如下:

  •  
  • #远程备份mysql数据和binlog日志到本地!  
  •  
  • remote_ips=`cat /data/shell_files/ips.txt`  
  •  
  • source /etc/profile  
  • rm -f /data/shell_files/db.list   
  • #循环每个IP 
  • do
  • #读取每个远程mysql服务器中的库名  
  • show databases;  
  • exit  
  • EOF  
  • #用sed过滤掉无需备份的库 
  • #创建所需的备份目录
  • #循环备份每个库
  •    do  
  •    done  
  • #备份binlog日志文件          
  •           
  •    sleep 60  
  • done
  • linux

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn