1.环境说明
系统为centos 6.5
需要安装mutt和msmtp并可以发送邮件
需要安装python 2.6.6
需要安装xtrabackup
2.备份方案功能模块介绍
备份:
使用xtrabackup进行备份,每次备份会把备份文件放到一个当前日期和时间的文件夹内。所以创建备份夹new,把备份文件放到new中,并根据new中文件夹的个数判断是全备还是增备还是需要转移文件到last中。第一个文件是全备,每次增备是在前一天的基础上进行增备。备份脚本在把所有的文件从new移动到last的时候 会把所有文件文件打包。以下是mysql备份脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
|
还原:
使用xtrabackup还原需要先准备(perpare)。一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。准备的过程是以第一个完备为基础,提交第二个然后是第三个一直到最后一个。整个准备完成后使用第一个完备文件进行还原即可。还原脚本使用cli进行交互,用户可以选择还原到最近日期或指定日期。
还原脚本运行界面
还原脚本代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
|
远程保存:
使用rsync和scp同步文件(脚本在备份服务器)
备份脚本rsync
1 2 |
|
备份脚本scp
1 2 |
|
日志:
所有xtrabackup的输出会保存到一个日志文件便于排查。通过命令执行后返回值判断成功或失败后的结果输出到一个日志文件中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
邮件:
每次备份失败后背自动发送邮件给指定邮件地址,便于运维及时发现问题并进行排查。发送邮件功能写到日志脚本中
配置文件:
除远程保存部分脚本(放在备份服务器)外,所有变量都被抽出来放到配置文件中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
本文转自:程序员鼓励师