首页 > 代码库 > 利用xtrabackup创建mysql slave

利用xtrabackup创建mysql slave

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的备份,详细信息可以参考官网说明


利用xtrabackup创建mysql slave