MySQL HA的全新篇章:Semisynchronous Replication迁移至InnoDB Cluster的实用指南

MySQL HA的全新篇章:Semisynchronous Replication迁移至InnoDB Cluster的实用指南

1、概述

临时接了一个搭建InnoDB Cluster的活儿,客户给我说是有数据的,我当时想这不是非常简单吗?干活儿的时候,才发现并没有这么简单,接手的时候发现是Semisynchronous Replication的环境,然后把从库切换成InnoDB Cluster的primary。

2、环境复现

2.1、从库5.140信息采集

mysql> show replica status\G *************************** 1. row *************************** Replica_IO_State: Waiting for source to send event Source_Host: 192.168.5.130 Source_User: repuser Source_Port: 3306 Connect_Retry: 60 Source_Log_File: mydb-binlog.000001 Read_Source_Log_Pos: 342 Relay_Log_File: mydb-relay.000002 Relay_Log_Pos: 562 Relay_Source_Log_File: mydb-binlog.000001 Replica_IO_Running: Yes Replica_SQL_Running: Yes ... 1 row in set (0.00 sec) mysql> select PLUGIN_NAME,PLUGIN_STATUS from information_schema.plugins where plugin_name like '%semi%'; +----------------------+---------------+ | PLUGIN_NAME | PLUGIN_STATUS | +----------------------+---------------+ | rpl_semi_sync_master | ACTIVE | | rpl_semi_sync_slave | ACTIVE | +----------------------+---------------+ 2 rows in set (0.00 sec) mysql> mysql> mysql> show variables like '%semi_sync%'; +-------------------------------------------+------------+ | Variable_name | Value | +-------------------------------------------+------------+ | rpl_semi_sync_master_enabled | ON | | rpl_semi_sync_master_timeout | 5000 | | rpl_semi_sync_master_trace_level | 32 | | rpl_semi_sync_master_wait_for_slave_count | 1 | | rpl_semi_sync_master_wait_no_slave | ON | | rpl_semi_sync_master_wait_point | AFTER_SYNC | | rpl_semi_sync_slave_enabled | ON | | rpl_semi_sync_slave_trace_level | 32 | +-------------------------------------------+------------+ 8 rows in set (0.00 sec) mysql> mysql> mysql> show plugins; +----------------------------------+----------+--------------------+--------------------+---------+ | Name | Status | Type | Library | License | +----------------------------------+----------+--------------------+--------------------+---------+ ... | rpl_semi_sync_master | ACTIVE | REPLICATION | semisync_master.so | GPL | | rpl_semi_sync_slave | ACTIVE | REPLICATION | semisync_slave.so | GPL | +----------------------------------+----------+--------------------+--------------------+---------+ 50 rows in set (0.00 sec) mysql> select PLUGIN_NAME,PLUGIN_STATUS from information_schema.plugins where plugin_name like '%semi%'; +----------------------+---------------+ | PLUGIN_NAME | PLUGIN_STATUS | +----------------------+---------------+ | rpl_semi_sync_master | ACTIVE | | rpl_semi_sync_slave | ACTIVE | +----------------------+---------------+ 2 rows in set (0.00 sec)