innobackupex备份参数slave-info、safe-slave-backup

mysql物理备份用的比较多的是innobackupex命令,备份常用,但对于里面的两个参数slave-info、safe-slave-backup一直搞的不太明白,今儿亲测了一下。

先解释一下参数意义

--slave-info :在从库进行备份时,该参数会在备份目录下生成xtrabackup_slave_info文件,文件记录主库的binlog日志位置点。在进行数据库恢复,搭建多从库时都需要这个文件。

如果在主库进行备份(在主库备份的情况很少,把主库惹怒了只能跑路了),该参数就不起作用了,主库的备份目录下始终会生成文件xtrabackup_binlog_info 记录binlog日志位置点。

--safe-slave-backup:官方说备份时检测从库是否有打开的临时表,如果没有就stop SQL thread开始备份,备份完后start SQL thread;

如果有打开的临时表就等,直到--safe-slave-backup-timeout超时。--safe-slave-backup-timeout默认300s,每3s进行一次重试检查,共重试100次。

这个参数和--slave-info经常一起使用,为了保证数据的一致性。

测试结果

1. 在备份过程中从库也会同步主库的DML\DDL等操作,而且这些操作也会在从库一并备份,可见并不是一开始就stop SQL thread的;

2. 在innodb文件拷贝完成后,会刷新所有的表,这个时候从库会stop SQL thread,阻止主库上的一切操作,并且记录这个时候的binlog日志点到备份文件中,整个备份完成后,start SQL thread;

3. 对于不加--safe-slave-backup参数的备份,在innodb文件拷贝完成后,会刷新所有的表,并且记录这个时候的binlog日志点到备份文件中;

 

posted @ 2019-09-16 18:08  南帝001  阅读(2184)  评论(0编辑  收藏  举报