MySQL数据库半同步复制

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

半同步复制,是有一个从节点或者一部分从节点与主节点之间是同步复制的,其他的从节点仍是异步复制

半同步复制是谷歌公司贡献给MySQL的一个插件,默认在MySQL中没有此插件,所以要实现主从的版同步复制需要安装此插件

1
2
rpm -ql mariadb-server|  grep  semi
#找到需要安装的插件,以so结尾
1
2
SHOW PLUGINS;
#查看当前支持的插件,此处也能看到myisam和innodb也是插件类型

下面开始介绍如何配置主从版同步复制:


1、创建传统的主从复制功能的mysql,请参考‘MySQL数据库主从复制’一文(http://panpangao.blog.51cto.com/10624093/1981418  )

2、在主节点安装半同步复制插件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
INSTALL PLUGIN rpl_semi_sync_master SONAME  'semisync_master' // 格式都是固定的不可随意修改
SHOW GLOBAL VARIABLES LIKE  'rpl_semi%' ;     // 查看主节点的半同步复制功能,此时尚未开启
SET GLOBAL rpl_semi_sync_master_enabled=ON;   // 开启
 
 
SHOW GLOBAL STATUS LIKE  '%rpl%' ;             // 查看状态,关键是查看 Rpl_semi_sync_master_clients数量,此时尚未配置从节点所以是0
+--------------------------------------------+-------------+
| Variable_name                              | Value       |
+--------------------------------------------+-------------+
| Rpl_semi_sync_master_clients               | 0           |
| Rpl_semi_sync_master_net_avg_wait_time     | 0           |
| Rpl_semi_sync_master_net_wait_time         | 0           |
| Rpl_semi_sync_master_net_waits             | 0           |
| Rpl_semi_sync_master_no_times              | 0           |
| Rpl_semi_sync_master_no_tx                 | 0           |
| Rpl_semi_sync_master_status                | ON          |
| Rpl_semi_sync_master_timefunc_failures     | 0           |
| Rpl_semi_sync_master_tx_avg_wait_time      | 0           |
| Rpl_semi_sync_master_tx_wait_time          | 0           |
| Rpl_semi_sync_master_tx_waits              | 0           |
| Rpl_semi_sync_master_wait_pos_backtraverse | 0           |
| Rpl_semi_sync_master_wait_sessions         | 0           |
| Rpl_semi_sync_master_yes_tx                | 0           |
| Rpl_status                                 | AUTH_MASTER |
+--------------------------------------------+-------------+
15 rows  in  set  (0.00 sec)


3、在从节点安装半同步复制插件

1
2
3
4
5
6
7
8
9
INSTALL PLUGIN rpl_semi_sync_slave SONAME  'semisync_slave' ;
SET GLOBAL rpl_semi_sync_slave_enabled=ON;
SHOW GLOBAL VARIABLES LIKE  'rpl_semisync%' ;    
SHOW GLOBAL VARIABLES LIKE  '%rpl%' ;            // 这时从的功能是开启的
 
SHOW GLOBAL STATUS LIKE  '%rpl%' ;    // 但状态是OFF,因为从节点此时的IO线程未重启
 
STOP SLAVE IO_THREAD;
START SLAVE IO_THREAD;   // 重启从的IO线程

4、测试

此时在主节点查看clients的数量就会变成1了,因为已经加入了一个从节点;

在主节点创建数据库、表,都会同步到从节点上

1
2
SHOW GLOBAL STATUS LIKE  '%rpl%' ;  
// 此时显示的信息就会有变化,主节点等待时长、平均等待时长、等待次数等信息,具体都可以从字面意思看出


本实验到此结束


本文转自  a_pan  51CTO博客,原文链接:http://blog.51cto.com/panpangao/1981515


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
SQL 存储 关系型数据库
MySQL的主从复制&主从同步
MySQL的主从复制&主从同步
30 0
|
5月前
|
关系型数据库 MySQL
MySQL 5.7 基于GTID主从复制+并行复制+半同步复制
MySQL 5.7 基于GTID主从复制+并行复制+半同步复制
76 0
|
关系型数据库 MySQL
MySQL 5.7 基于 GTID 主从复制 + 并行复制 + 半同步复制
MySQL 5.7 基于 GTID 主从复制 + 并行复制 + 半同步复制
534 0
|
关系型数据库 MySQL Linux
Mysql数据库的主从备份
Mysql数据库主从备份,通过Mysql Replication 实现从一台服务库服务器(master)把数据 同步到另一台数据库服务器(slave).
390 0
|
监控 MySQL 关系型数据库
mysql的主从复制和半同步复制
mysql的主从复制和半同步复制 一.主从复制 MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能。
1499 0
|
监控 关系型数据库 MySQL
|
监控 MySQL 关系型数据库
|
关系型数据库 MySQL 数据库