MySQL数据库备份过程的注意事项
AsiaYe 人气:0今天看了看数据备份相关的东西,总结了几个MySQL数据备份的注意事项,简单分享一下吧。
对于MySQL备份,每个DBA的理解可能都不一样,备份可以分为下面几个维度:
文件种类划分:
1、物理备份,以xtrabackup为代表的物理备份是最常用的备份方法,经常被用在备份大的数据库上面。
2、逻辑备份,以mysqldump为代表的逻辑备份,小于50G的数据量,用该工具备份起来比较合适。
按照备份内容划分:
1、全量备份,这个容易理解,就是数据库完整的一个备份
2、增量备份,基于全量备份的基础之上的,例如全量备份备份截止日期是昨天,那么昨天到今天这部分数据就是增量备份
3、日志备份,日志备份是在备份文件的基础上,再对mysql的binlog进行备份,我们知道binlog中记录了mysql的DDL和DML操作,利用binlog能够还原数据库的某个中间状态。
今天在梳理线上的备份内容的时候,发现了以下一些可能有用的知识点,罗列出来,如果对大家有帮助,那是极好的,如果没有,权当我自嗨吧~
1、当我们使用xtrabackup备份的时候,对于单机多实例的机器,最好分开时间备份,因为同一时间备份多个MySQL实例吗,会对磁盘IO影响较大,此时如果还有其他数据写入,会产生影响
2、可以利用NFS挂载的方式,将本地的数据备份在远程机器上,这样可以缓解本地的备份压力,同时可以保证本地硬盘出现问题不影响数据恢复。应用此种方法的时候,需要考虑机器之间的网络带宽。架构图如下:
3、我们知道,xtrabackup备份完的备份文件,如果我们用来恢复,需要进行了两个步骤,第一步是apply_log,第二步是copy back,建议是备份完成之后,直接进行apply log的操作,一旦失败,还可以再备份一次,否则如果默认可用,等到恢复的时候发现有问题,就比较难办了
4、基于binlog做增量恢复也是一种比较方便的做法,既按照一定的周期进行全量备份,然后定时备份binlog,这期间的任意时间点的数据都可以通过备份的binlog进行恢复
5、如果线上机器有多台,我们可以通过mysqldump和xtrabackup结合的方式进行备份,设定一个阈值,例如50G,50G以下的数据量,mysqldump的性能比较好,50G以上的数据量,可以考虑使用xtrabackup的方法来进行备份
6、备份数据的目的是为了恢复,最好能在备份完成之后,尝试恢复一把,保证备份数据的可用性。
7、对于数据量较大的实例,有时候备份的时间特别长,恢复起来也不方便,可以利用跨机房从库的方法来进行数据备份,此时可以搭建一个延迟从库,以便在主库误操作的时候,从库可以及时的停止,跳过相关的误操作步骤。
加载全部内容