知识准备:
1、在备份InnoDB的过程中,记录的变更保存于xtrabackup_logfile文件,所以在prepare(–apply-log)的时候,需要重放该部分数据到表空间。
2、如果库中只使用了innodb或者XtraDB引擎,恢复的时候使用xtrabackup_binlog_pos_innodb文件确定pos信息;
3、如果还有其他引擎(如MyISAM),恢复的时候使用xtrabackup_binlog_info确定pos信息;
4、innobackupex的过程图示

将xtrabackup_logfile中的日志进行重做

1、在主库上进行全备,然后进行prepare
backup: innobackupex --defaults-file=/app/mysql/my.cnf --user=root --password=myroot321 \ --use-memory=1024M --no-timestamp --backup /data/backup/full prepare: innobackupex --apply-log /data/backup/full
2、将备份进行压缩,拷贝到从库
tar -czvf mysql_full_backup.tar.gz /data/backup/full scp mysql_full_backup.tar.gz xxx@xxx:/path/
3、在主库上创建复制用户
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'$slaveip' IDENTIFIED BY '$slavepass'; SHOW GRANTS;
4、配置从库,修改my.cnf 文件
server-id=2
5、启动slave
cat /bakcup/xtrabackup_binlog_info mysql-bin.000001 421 62f821d2-7453-11e4-bebb-fa163e43bfe5:1 1、使用master_log_file 和 master_log_pos 进行change CHANGE MASTER TO MASTER_HOST='$masterip', MASTER_USER='repl', MASTER_PASSWORD='$slavepass', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=421; 2、也可以使用gtid来进行 slave1 > SET GLOBAL gtid_purged="62f821d2-7453-11e4-bebb-fa163e43bfe5:1"; slave1 > CHANGE MASTER TO MASTER_HOST="$masterip", master_user="repl", master_password="$slavepass", MASTER_AUTO_POSITION = 1;
6、启动slave,检查slave 状态是否正常
START SLAVE; ------------- SHOW SLAVE STATUS \G ... Slave_IO_Running: Yes Slave_SQL_Running: Yes ... Seconds_Behind_Master: 13 ...
至此:利用innobackupex 进行MySQL 从库搭建已经完成。
近期评论