搭建环境说明 机器说明 Master 190: 192.168.1.190 (开启binlog, server-id=1)Slave 191: 192.168.1.191Slave 192: 192.168.1
搭建环境说明
机器说明
master 190: 192.168.1.190 (开启binlog, server-id=1)
slave 191: 192.168.1.191
slave 192: 192.168.1.192
以上三台机器都安装了mysql 5.5.29, percona xtrabackup 2.06
基于Master的二进制热备份建立新Slave
在Master 190上创建Slave 191用于MySQL复制的账号mysql> create user ‘newrepl’@’192.168.1.191’ identified by ‘123456’;mysql> grant replication slave on *.* to ‘newrepl’@’192.168.1.191’;mysql> flush privileges;将Master 190的MySQL数据直接远程热备份到Slave 191[root@CentOS190 ~]# innobackupex –user=backup –password=123456 –parallel=4 –stream=tar ./ | ssh root@192.168.1.191 “tar -ixf – -C /var/lib/mysql/data”在Slave 191上应用备份,并对备份数据目录做相应权限设置[root@centos191 ~]# innobackupex –apply-log –use-memory=4G /var/lib/mysql/data[root@centos191 ~]# chown -R mysql:mysql /var/lib/mysql/dataSlave 191上停止MySQL,进行MySQL配置,然后启动MySQL[root@centos191 mysql]# service mysql stop[root@centos191 mysql]# scp root@192.168.1.190:/etc/my.cnf /etc/my.cnf
修改/etc/my.cnf:
…[mysqld]datadir= /var/lib/mysql/dataserver-id= 2 # Master的server-id = 1relay-log= slave-relay-binrelay-log-index= slave-relay-bin.index…
配置完后,启动MySQL:
[root@centos191 mysql]# service mysql startStarting MySQL….[ OK ]建立复制连接开始复制,并检查slave运行状态
查看热备份的binlog文件名和偏移位置信息:
[root@centos191 mysql]# cat /var/lib/mysql/data/xtrabackup_binlog_info master-bin.000005107
建立复制连接并检查是否成功:
mysql> CHANGE MASTER TO-> MASTER_HOST=’192.168.1.190′,-> MASTER_USER=’newrepl’,-> MASTER_PASSWORD=’123456′,-> MASTER_PORT=3306,-> MASTER_LOG_FILE=’master-bin.000005′,-> MASTER_LOG_POS=107;Query OK, 0 rows affected (0.96 sec)mysql> start slave;Query OK, 0 rows affected (0.00 sec)mysql> show global status like ‘Slave_running’;+—————+——-+| Variable_name | Value |+—————+——-+| Slave_running | ON |+—————+——-+1 row in set (0.00 sec)
基于Slave的二进制热备份建立新Slave
在Master 190上创建Slave 192用于MySQL复制的账号[root@centos191 mysql]# mysql -uroot -p -h192.168.1.190…mysql> create user ‘newrepl’@’192.168.1.192’ identified by ‘123456’;mysql> grant replication slave on *.* to ‘newrepl’@’192.168.1.192’;mysql> flush privileges;将Slave 191的MySQL数据直接远程热备份到Slave 192# innobackupex –user=backup –password=123456 –parallel=4 –slave-info –safe-slave-backup –stream=tar ./ | ssh root@192.168.1.192 “tar -ixf – -C /var/lib/mysql/data”
注:这里备份使用–slave-info可以将Master的binary log的文件名和偏移位置记录到xtrabackup_slave_info文件中.而使用–safe-slave-backup会暂停Slave的SQL线程直到备份结束,这样可以确保一致性的复制状态.
在新Slave 192上应用备份,并对备份数据目录做相应权限设置
[root@centos192 ~]# innobackupex –apply-log –use-memory=4G /var/lib/mysql/data
[root@centos192 ~]# chown -R mysql:mysql /var/lib/mysql/data
新Slave 192上停止MySQL,进行MySQL配置,然后启动MySQL[root@centos192 mysql]# service mysql stop[root@centos192 mysql]# scp root@192.168.1.191:/etc/my.cnf /etc/my.cnf
修改/etc/my.cnf:
…[mysqld]server-id = 3skip-slave-start…
启动MySQL:
[root@centos192 mysql]# service mysql startStarting MySQL…[ OK ]建立复制连接开始复制,并检查slave运行状态
查看Slave热备份的binlog文件名和偏移位置信息:
[root@centos192 mysql]# cat /var/lib/mysql/data/xtrabackup_slave_info CHANGE MASTER TO MASTER_LOG_FILE=’master-bin.000005′, MASTER_LOG_POS=614672
建立复制连接并检查是否成功:
mysql> CHANGE MASTER TO-> MASTER_HOST=’192.168.1.190′,-> MASTER_USER=’newrepl’,-> MASTER_PASSWORD=’123456′,-> MASTER_PORT=3306,-> MASTER_LOG_FILE=’master-bin.000005′,-> MASTER_LOG_POS=614672;Query OK, 0 rows affected (0.33 sec)mysql> start slave;Query OK, 0 rows affected (0.00 sec)mysql> show slave status G;…Slave_IO_Running: YesSlave_SQL_Running: Yes …Seconds_Behind_Master: 0 …
修改/etc/my.cnf,注释掉”skip-slave-start”,然后重启MySQL即可.
# sed -i ‘s/skip-slave-start/#skip-slave-start/g’ /etc/my.cnf# service mysql restart
推荐阅读:
Ubuntu下Nginx做负载实现高性能WEB服务器5—MySQL主主同步
生产环境MySQL主主同步主键冲突处理
MySQL主从失败 错误Got fatal error 1236
MySQL主从复制,,单台服务器上实施
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1885953.html