暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL 实践:制定 mysqldump 简单的备份策略

原创 eygle 2019-08-15
502

深为 DBA 和 IT从业人员,最害怕的是灯下黑,例如,DBA 从不备份自己的数据库,而时时告诉他人备份重于一切!


好吧,我要备份一下我的网站数据库,虽然 MySQL 和 云服务器 从来都是如此健壮,没有让我遭受任何数据库损失。


先定制一个简单的脚本,主要逻辑是:



1.备份;


2.压缩;


3.删除5天前的备份;



在Linux下进行时间运算,使用 date 可以做出灵活的配置:



[root@ backup]# date +"%F"


2019-08-15


[root@ backup]# date -d "5 days ago" +%Y-%m-%d


2019-08-10


以下是这个简单的脚本:



[root@ backup]# cat bakupdb.sh


#!/bin/sh



/alidata/mysql/bin/mysqldump -uroot -pyoupassword --all-databases > /alidata/backup/alldb-`date +"%F"`.sql


gzip /alidata/backup/alldb-`date +"%F"`.sql



rm -rf /alidata/backup/alldb-`date -d "5 days ago" +%Y-%m-%d`.sql.gz



此外,鉴于在 shell 脚本中增加 rm -rf 是非常危险的,所以要做好测试,做2个文件测试:



[root@ backup]# ls -l


total 30212


-rw-r--r-- 1 root root 0 Aug 15 17:00 alldb-2019-08-10.sql.gz


-rw-r--r-- 1 root root 0 Aug 15 17:01 alldb-2019-08-11.sql.gz


-rwxrwxr-x 1 root root 235 Aug 15 17:00 bakupdb.sh


定义 crontab 任务:



[root@ backup]# crontab -l


20 17 * * * /alidata/backup/bakupdb.sh


最后检查一下成果:



[root@ backup]# ls -l


total 30212


-rw-r--r-- 1 root root 0 Aug 15 17:01 alldb-2019-08-11.sql.gz


-rw-r--r-- 1 root root 30892895 Aug 15 17:20 alldb-2019-08-15.sql.gz


-rwxrwxr-x 1 root root 235 Aug 15 17:00 bakupdb.sh


It works .再做一个 rsync ,把备份同步到远程。总算踏实了一点点。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论