下面就是一个我经常用来备份全库时的语句:
innobackupex --defaults-file=/etc/my.cnf --user=root --password='123' --host=localhost --rsync --compress --compress-threads=5 --compress-chunk-size=64K --slave-info /root
下面我们就看帮助,看一下其中这个--slave-info的含义:
[root@zabbixsrvbjdb04 ~]# innobackupex --help |grep -C 5 slave
--slave-info
This option is useful when backing up a replication slave server. It
prints the binary log position and name of the master server. It
also writes this information to the "xtrabackup_slave_info" file as
a "CHANGE MASTER" command. A new slave for this master can be set up
by starting a slave server on this backup and issuing a "CHANGE
MASTER" command with the binary log position saved in the
"xtrabackup_slave_info" file.
以下就是我的理解:
在备份从库时,可以使用该参数, 加上--slave-info备份目录下会多生成一个xtrabackup_slave_info 文件, 这里会保存主日志文件以及偏移, 文件内容类似于:CHANGE MASTER TO MASTER_LOG_FILE='', MASTER_LOG_POS=0。
这个参数适用的场景:假设现在有主库A和从库B,目前想再添加一台备库C,并让备库C以主库A为master;因为主库A是生产库,压力一般比较大,所以我们就在备库B上备份一个数据库,然后把这个备份拿到C服务器上 并导入到C库,接下来再在C服务器上执行change master的命令:其中 master_host是A的ip,而master_log_file和master_log_pos就是这个xtrabackup_slave_info里面的值。不知道说明白了吗(czxin注释)。