Xtrabackup8.0全备过程

来自Linux78|wiki

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。