一主多从快速变级联进行主从切换
2016-07-22 10:52
513 查看
背景需求模型
业务需求和性能影响,需将主库切换到新的服务器,并进行架构调整。
切换模型大概为:
切换到
图1-1 一主多重模型 图1-2 切换前模型
最后再将主库254切换为40.完成切换。
图1-3 切换模型
mysql>stop slave;
记录此时C机器复制A主库的 Master_Log_File和 Exec_Master_Log_Pos: 位置;
master status,记下BINLOG文件名字File(B)以及位置Position(B),然后start slave开启复制。
mysql>show slave status \G
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.xxxxx | xxxxxx | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
确认B机器的的Exec_Master_Log_Pos,这里记得在B机器要先stop slave ,记录下 Relay_Master_Log_File(B),Exec_Master_Log_Pos(B),以及B机器的masterbinlog状态。然后再开启。
mysql>start slave UNTIL MASTER_LOG_FILE ='B-Relay_Master_Log_File', MASTER_LOG_POS =B-Exec_Master_Log_Pos;
等待复制到我们设置的值,然后在C执行:
然后start slave开启复制!
业务需求和性能影响,需将主库切换到新的服务器,并进行架构调整。
切换模型大概为:
切换到
图1-1 一主多重模型 图1-2 切换前模型
最后再将主库254切换为40.完成切换。
简化模型:
我们需要做的是把一主多从逐步变为级联:图1-3 切换模型
操作步骤
1、在B机器上授权C机器的复制权限
<pre name="code" class="sql">mysql><span style="font-family: Arial, Helvetica, sans-serif;">GRANT REPLICATION SLAVE ON *.* TO rep@'C_IP' IDENTIFIED BY '$password';</span>2、确认C机器已同步的位置
查看C机器的slave复制状态:mysql>stop slave;
mysql>show slave status \G
记录此时C机器复制A主库的 Master_Log_File和 Exec_Master_Log_Pos: 位置;
3、记录B机器的位置
在从库B上执行show slave status \G;查看从库B上的Exec_Master_Log_Pos是否已经大于从库C上的Exec_Master_Log_Pos,如果大于,则执行stop slave停掉从库B的复制,这时需要记下从库B上的 Relay_Master_Log_File(B),Exec_Master_Log_Pos(B)两个值,在从库B上执行showmaster status,记下BINLOG文件名字File(B)以及位置Position(B),然后start slave开启复制。
mysql>show slave status \G
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.xxxxx | xxxxxx | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
确认B机器的的Exec_Master_Log_Pos,这里记得在B机器要先stop slave ,记录下 Relay_Master_Log_File(B),Exec_Master_Log_Pos(B),以及B机器的masterbinlog状态。然后再开启。
4、C机器追赶到B机器位置
通过前面三步骤,我们已经有了这些基本信息,那么就先在C机器执行命令追赶到B机器复制的位置,在C机器上操作:mysql>start slave UNTIL MASTER_LOG_FILE ='B-Relay_Master_Log_File', MASTER_LOG_POS =B-Exec_Master_Log_Pos;
等待复制到我们设置的值,然后在C执行:
mysql>stop slave;
5、C复制指向B
前面步骤都确认没有问题后,我们开启C复制指向B的复制,这个时候就要利用之前我们记录C的masterbinlog位置信息了。简单的主从创建关系:change master to master_host='B-IP',master_port=B-port,master_user='复制账号',master_password='复制密码',master_log_file='B-master-binlog',master_log_pos=b-masterpostion;
然后start slave开启复制!
6、重复执行以上步骤
达到1-2模型后,将254的读写请求切到40即完成了本次所有迁移操作。相关文章推荐
- mysql复制
- MySQL复制
- RS232 RS485 通信结构
- mysql主从同步复制
- 使用sentinel进行redis主从切换的操作步骤(failOver故障转移)(何志雄)
- mysql一主多从同步配置
- MySQL主从架构(一主多从)的一些优点
- MySQL复制之初体验
- MySQL半同步复制
- MySQL主主复制
- mysql主从复制,读写分离,半同步复制实现
- mysql 复制出错又一例
- 史上最全mysql的复制和读写分离
- MyCat的读写分离与主从切换。
- MySQL主从复制、半同步和主主复制的实现
- mysql主从复制原理
- 复制读写规则
- Slave: received end packet from server, apparent master shutdown
- redis 主从切换
- mysql主主、主从复制详解 推荐