这篇文章主要介绍如何使用innobackupex命令备份,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
备份开始时会先开启一个后台检测进程,实时检测mysql redo日志(事务日志)的变化,一旦发现redo日志中有新日志写入,立刻记录后台日志文件xtrabackup_log文件中,之后复制Innodb的数据文件和系统表空间文件ibdata1,复制结束后,执行flush tables with read lock操作,复制.frm,.MYI,.MYD等文件(执行flush tables with read lock的目的是为了防止读取数据的时候发生DDL操作,并且在这一刻获取binlog的位置),最后发出unlock tables,把表设置为可读写状态,最终终止xtrabackup_log文件的写入。过程见下图:
完备恢复:恢复阶段会启动xtrabackup内嵌的innodb实例,回放xtrabackup日志xtrabackup_log文件中的事务,将已经提交的事务变更应用到innodb数据文件、表空间,同时回滚未提交的事务,这一过程类似innodb实例的故障恢复。
全量恢复过程见下图:
增量备份:innobackupex增量备份过程中的增量处理,其实主要相对innodb而言,对myisam和其他存储引擎而言,仍然是每次一个全备。增量备份过程主要是通过拷贝innodb有变更的页,这些变更数据页指的是LSN大于xtrabackup_checkpoints中给定的LSN,增量备份是基于全备的,第一次增量备份的数据必须要基于最近一次全备,之后每次增备都是基于上一次增备的基础上进行。过程跟完备一样,只是增备时在复制数据文件时复制的是上一次备份后从大于xtrabackup_checkpoints开始的改变的页。增量备份过程见下图:
增量恢复:和全备恢复类似,也需要两步,一部分数据文件的恢复,这里数据文件包括全备份、增量备份和xtrabackup_log文件中已提交事务的回放,第二部分是对未提交事务的回滚。
过程见下图1和2:
以上是“如何使用innobackupex命令备份”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!