Monthly Archives: November 2013

How does innobackupex works

By | 2013-11-11

innobackupex工作流程 innobackupex封装了xtrabackup(InnoDB备份)工具,大致的备份流程如下: |创建备份目录| —> |xtrabackup备份InnoDB| –> |全局锁| –> |备份非InnoDB表| –> |释放锁| 在 xtrabackup 备份 InnoDB 过程中,InnoDB 相关变化如下显示: 上述部分为拷贝文件阶段,文件的变化及拷贝文件工作流程见下图: 在备份InnoDB的过程中,记录的变更保存于xtrabackup_logfile文件,所以在prepare(–apply-log)的时候,重放该部分数据到表空间即可,如下: 以上就完成了在拷贝文件完成后的那个时间点的全量备份; FAQ: xtrabackup备份开始时,suspend到底有什么作用? 130716 12:14:08 innobackupex: Starting ibbackup with command: xtrabackup_55 –defaults-file=”/web/mysql/node3306/my.node.cnf” –defaults-group=”mysqld” –backup –suspend-at-end –target-dir=/web/xtrabackup/backups/node3306/2013-07-16_12-14-08 –tmpdir=/dev/shm innobackupex: Waiting for ibbackup (pid=16924) to suspend innobackupex: Suspend file ‘/web/xtrabackup/backups/node3306/2013-07-16_12-14-08/xtrabackup_suspended_2’ 如下备份信息,为什么要有一个suspend的过程,从innobackupex代码来看,suspend起到了进程同步的作用,即先用xtrabackup备份Innodb,通过suspend作用来检测xtrabackup是否备份正常,是则全局锁,备份其他引擎文件,否则Die失败; sub backup { my $orig_datadir = get_option(\%config,… Read More »