Xtrabackup8.0全备过程
1. 实时备份redo log
•xtrabackup开启xtrabackup_log监控线程
•记录开始的LSN,并实时监测redo log文件的变化
•将备份过程中新写入到事务日志中的日志页拷贝至xtrabackup_logfile文件中;
2.拷贝innodb文件
•开启redo log备份后,同时开启xtrabackup拷贝线程,开始拷贝innodb文件。
•拷贝顺序:
•ibdata1, sys_config.ibd, mysql.ibd,以及其他datadir目录的ibd文件
•数据库目录下的ibd,test库、employees、sakila等
•undo文件
3.复制innodb文件结束后,LOCK TABLES FOR BACKUP
•锁定非innodb表
4.拷贝非innodb文件
•拷贝mysql、p_s和其他库下的.frm,.MRG,.MYD,.MYI,.ARM,.ARZ,.CSM,.CSV,.sdi 和.par等类型的文件。
5. 获取LSN和binary log position
•此时文件备份结束,需要获取LSN和binlog位置
•LOCK BINLOG FOR BACKUP
•用于阻止所有可能更改binlog位置的操作
•然后完成复制REDO日志文件并获取binlog坐标
•从p_s.log_status中获取信息
•binlog记录到xtrabackup_binlog_info文件中
•LSN记录到xtrabackup_checkpoints
6.FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS
•关闭并重新打开,已安装存储引擎的任何可刷新日志,不记录到binlog。
•这会导致InnoDB将其日志刷新到磁盘。
7.停止xtrabackup_log线程
8.解锁tables、binlog
9.备份其他信息
•Copying ib_buffer_pool
•Writing backup-my.cnf
•Writing xtrabackup_info
10.binlog位置将打印到STDERR,如果一切正常,xtrabackup将退出返回0。