xtrabackup在备份的时候同时读取redolog和bin-log position,最后将redolog应用到数据库文件中,所以能够实现热备不停机、不锁表将master的数据同步到slave 前提:安装好xtrabackup,mysql 开启binlog 步骤1:创建一个备份并prepare
TheMaster$ innobackupex --defaults-file=/opt/mysql/my.cnf --user=root--password=password /path/to/backupdir
备份完成后,在指定目录下会生成以日期命名的文件夹 然后进行prepare ,所谓的prepare就是将redolog应用到数据库文件中
TheMaster$innobackupex --defaults-file=/opt/mysql/my.cnf --user=root --password=password --apply-log /path/to/backupdir/$TIMESTAMP/ 步骤2:把备份复制到TheSlave 使用scp或者其他工具来传输备份文件
TheMaster$scp -rpvC -i6000 /backup/xtrmysql/2016-09-11_11-52-21/ 10.0.0.1:/backup/mysql_bak/ 把备份复制到mysql配置的datadir下
TheSlave$ mv /backup/mysql_bak/2016-09-11_11-52-21/ /opt/mysql/data 步骤3:启动从数据库上的复制线程
先查看xtrabackup_binlog_info来确定binarylog的位置
TheSlave$ less /backup/mysql_bak/2016-09-11_11-52-21/xtrabackup_binlog_info mysql-bin.000531 327075954 在slave上开启主从复制 TheSlave|mysql>CHANGE MASTER TO MASTER_HOST='$masterip', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000531', MASTER_LOG_POS=327075954; 然后启动slave mysql> START SLAVE; xtrabackup也支持开启了gtid的备份,详细信息可以参考官网说明
|