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 从库搭建已经完成。
经验分享 程序员 微信小程序 职场和发展