数据备份是作为运维来说必不可少的一个环节,无论是数据库数据、程序中间件都需要定期备份。
在进行备份之前首先要去设计,是要增量备份还是全量备份,是全部全量备份,还是一周一次全备,剩下每天都是增量备份,以及备份周期是否自动备份等等,都需要提前设计好。
数据虽然备份好了,但是我们要每天的看一看备份的存在性,也就是检查备份是否成功。
还要针对备份的空间做出详细的告警,避免磁盘空间不够用导致无法备份。
虽然每天都在备份,但是如果不进行定期的恢复演练,我们也不知道备份的数据是否是可用的,需要定义的拿备份文件到测试环境进行演练。
MySQL的备份类型分为以下几种:
MySQL的备份工具分为两类
逻辑备份的代表工具就是mysqldump,物理备份的代表工具就是XBK。
1)逻辑备份
mysqldump是MySQL自带的逻辑备份工具,也是企业中使用最频繁的备份工具。
mysqldump的优点:
mysqldump的缺点:
使用mysqldump备份100G以内的数据,大概花费1小时左右。
使用mysqldump备份数据库数据时,建议100G以内的使用mysqldump进行备份,当然如果超过TB的数据量也可以使用mysqldump进行备份,但是硬件资源一定要给到位,TB以上的数据量如果磁盘空间很充足的话,建议使用XBK进行备份,效率比mysqldump要高。
2)物理备份
XBK是物理备份的典型代表,是第三方公司开发的物理备份工具。
XBK的优点:
XBK的缺点:
当数据量小的时候使用XBK备份也可以,备份的时间快,只是占用的磁盘空间很高,建议在大于100G小于1TB的场景下使用XBK物理备份,如果数据量很大几TB甚至PB,那么用XBK进行备份,所占用从磁盘空间是无法想象的。
无需纠结应该使用逻辑备份还是物理备份,要根据自己的需求量来决定,大多数企业还是使用mysqldump进行数据备份的。
对于数据量不大的数据库,百G以内,备份方式一般都是全库备份,每天晚上都会进行全库备份。
对于数据量很大的数据库,建议使用全库备份+增量备份,一周一次全量备份,然后每天进行增量备份。
全量备份指的是备份库中所有的数据库,增量备份指的是,从全量备份开始处备份变化的数据。
逻辑备份实现全量备份使用mysqldump即可,增量备份就是备份Binlog日志。
物理备份XBK有全量备份的工具xtrabackup_full和增量备份工具xbtrabackup_incr,XBK的增量备份也是要靠Binlog进行备份,并且比较复杂,因此可以不用XBK的增量备份,直接备份Binlog即可。
备份周期可以按照周日全备,周一到周六增量备份,或者每天全量备份都可以。