mysql在线搭建从库_利用innobackupex 进行MySQL从库搭建
知识准备:
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 从库搭建已经完成。
知识准备: 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 从库搭建已经完成。