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)