0

0

MySQL半同步复制的实现

php中文网

php中文网

发布时间:2016-06-07 16:50:08

|

1165人浏览过

|

来源于php中文网

原创

MySQL半同步复制和异步复制的差别如上述架构图所示:在mysql异步复制的情况下,Mysql Master Server将自己的Binary Log通过复制线

mysql半同步复制和异步复制的差别如下述架构图所示:在mysql异步复制的情况下,mysql master server将自己的binary log通过复制线程传输出去以后,mysql master sever就自动返回数据给客户端,而不管slave上是否接受到了这个二进制日志。在半同步复制的架构下,当master在将自己binlog发给slave上的时候,要确保slave已经接受到了这个二进制日志以后,才会返回数据给客户端。对比两种架构:异步复制对于用户来说,可以确保得到快速的响应结构,但是不能确保二进制日志确实到达了slave上;半同步复制对于客户的请求响应稍微慢点,但是他可以保证二进制日志的完整性。

MySQL半同步复制的实现

说说MySQL的半同步复制

MySQL基于SSL的半同步复制

MySQL主从,半同步,主主复制

MySQL服务器复制的主从架构半同步的实现

天天团购系统
天天团购系统

天天团购系统是一套强大的开源团购程序,采用PHP+mysql开发,系统内置支付宝、财付通、GOOGLE地图等接口,支持短信发送团购券和实物团购快递发货等;另外可通过Ucenter模块,与网站已有系统无缝整合,实现用户同步注册、登陆、退出。 天天团购系统是一套创新的开源团购程序,拥有多达10项首创功能,同时支持虚拟和实物团购,内置类似淘宝的快递配送体系,并提供强大的抽奖、邀请返利等营销功能,让您轻松

下载

MySQL半同步复制(Semi-synchronous Replication)

MySQL5.5配置安装半同步复制


下面来配置一个半同步复制实现的主从架构:
192.168.1.141为mysql的主服务器
192.168.1.142为mysql的从服务器

1.为mysql主服务器提供配置
编辑/etc/my.cnf,提供以下的配置
log_bin=index
server_id=1
在主服务器上授权
# mysql> grant replication slave,replication client on user@'192.168.1.142' identified by "123456";
# mysql> flush privileges;


2.为mysql从服务提供配置
编辑/etc/my.cnf,提供以下的配置
server_id=10
relay_log=relay
read_only=on
skip-slave-start=1
进入mysql命令行接口
# mysql > change master to MASTER_HOST="192.168.1.141",MASTER_USER="user",MASTER_PASSWORD="123456",MASTER_LOG_FILE="index.000004",MASTER_LOG_POS=429;
# mysql > start slave;
如果能够看到Slave_IO_Running: Yes和Slave_SQL_Running:Yes两行信息的话,证明主从配置已经成功。

要使用mysql的半同步复制功能需要为mysql装插件,mysql默认支持的插件在/usr/local/mysql/lib/plugin/,里面有两个semisync_master.so和semisync_slave.so的共享库是我们实现mysql半同步复制的关键


3.设置半同步复制

在mysql主服务器的命令行接口下执行如下代码:
# mysql > install plugin rpl_semi_sync_master SONAME 'semisync_master.so';
# mysql > show variables like "%semi%";(如果看到新增的semi变量的话证明安装模块成功)
| rpl_semi_sync_master_enabled | OFF | 是否启动半同步复制,默认关闭
| rpl_semi_sync_master_timeout | 10000 | 等待从服务器告诉接受到的超时时间,如果时间到了,还没接受到,自动降级为异步
| rpl_semi_sync_master_trace_level | 32 | 运行级别
| rpl_semi_sync_master_wait_no_slave | ON | 没有slave的时候是否也需要等待,,默认为也需要等待
# mysql > set global rpl_semi_sync_master_enabled = 1;
# mysql > set global rpl_semi_sync_master_timeout = 1000;
在mysql从服务器的命令行接口下执行如下代码:
# mysql > install plugin rpl_semi_sync_slave SONAME 'semisync_slave.so';
# mysql > show variables like "%semi%";(如果看到新增的semi变量的话证明安装模块成功)
# mysql > set global rpl_semi_sync_slave_enabled = 1;
# stop slave;
# start slave;
最后把常用的配置参数写如配置文件中:
192.168.1.141:
[mysqld]
rpl_semi_sync_master_enabled=1

rpl_semi_sync_master_timeout=1000

192.168.1.142:
[mysqld]
rpl_semi_sync_slave_enabled=1


4.查看半同步复制的状况信息
在192.168.1.141执行如下命令:
mysql> show status like "%semi%";
+-------------------------------------------------------------------+----------+
| Variable_name | Value |
+-------------------------------------------------------------------+----------+
| Rpl_semi_sync_master_clients | 1 | 半同步复制客户端的个数
| Rpl_semi_sync_master_net_avg_wait_time | 555 | 平均等待时间(默认毫秒)
| Rpl_semi_sync_master_net_wait_time | 1665 | 总共等待时间
| Rpl_semi_sync_master_net_waits | 3 | 等待次数
| Rpl_semi_sync_master_no_times | 0 | 关闭半同步复制的次数
| Rpl_semi_sync_master_no_tx | 0 | 表示没有成功接收slave提交的次数
| Rpl_semi_sync_master_status | ON | 表示当前是异步模式还是半同步模式,on为半同步
| Rpl_semi_sync_master_timefunc_failures | 0 | 调用时间函数失败的次数
| Rpl_semi_sync_master_tx_avg_wait_time | 575 | 事物的平均传输时间
| Rpl_semi_sync_master_tx_wait_time | 1725 | 事物的总共传输时间
| Rpl_semi_sync_master_tx_waits | 3 | 事物等待次数
| Rpl_semi_sync_master_wait_pos_backtraverse | 0 |
| Rpl_semi_sync_master_wait_sessions | 0 | 当前有多少个session因为slave的回复而造成等待
| Rpl_semi_sync_master_yes_tx | 3 | 成功接受到slave事物回复的次数
+-------------------------------------------------------------------+---------+

5.取消半同步复制的插件
192.168.1.141上:
# mysql > uninstall plugin rpl_semi_sync_master;
# mysql > show status like "%semi%"

192.168.1.142上:
# mysql > uninstall plugin rpl_semi_sync_slave;
# mysql > show status like "%semi%"

本文永久更新链接地址:

linux

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
AO3官网入口与中文阅读设置 AO3网页版使用与访问
AO3官网入口与中文阅读设置 AO3网页版使用与访问

本专题围绕 Archive of Our Own(AO3)官网入口展开,系统整理 AO3 最新可用官网地址、网页版访问方式、正确打开链接的方法,并详细讲解 AO3 中文界面设置、阅读语言切换及基础使用流程,帮助用户稳定访问 AO3 官网,高效完成中文阅读与作品浏览。

45

2026.02.02

主流快递单号查询入口 实时物流进度一站式追踪专题
主流快递单号查询入口 实时物流进度一站式追踪专题

本专题聚合极兔快递、京东快递、中通快递、圆通快递、韵达快递等主流物流平台的单号查询与运单追踪内容,重点解决单号查询、手机号查物流、官网入口直达、包裹进度实时追踪等高频问题,帮助用户快速获取最新物流状态,提升查件效率与使用体验。

8

2026.02.02

Golang WebAssembly(WASM)开发入门
Golang WebAssembly(WASM)开发入门

本专题系统讲解 Golang 在 WebAssembly(WASM)开发中的实践方法,涵盖 WASM 基础原理、Go 编译到 WASM 的流程、与 JavaScript 的交互方式、性能与体积优化,以及典型应用场景(如前端计算、跨平台模块)。帮助开发者掌握 Go 在新一代 Web 技术栈中的应用能力。

4

2026.02.02

PHP Swoole 高性能服务开发
PHP Swoole 高性能服务开发

本专题聚焦 PHP Swoole 扩展在高性能服务端开发中的应用,系统讲解协程模型、异步IO、TCP/HTTP/WebSocket服务器、进程与任务管理、常驻内存架构设计。通过实战案例,帮助开发者掌握 使用 PHP 构建高并发、低延迟服务端应用的工程化能力。

3

2026.02.02

Java JNI 与本地代码交互实战
Java JNI 与本地代码交互实战

本专题系统讲解 Java 通过 JNI 调用 C/C++ 本地代码的核心机制,涵盖 JNI 基本原理、数据类型映射、内存管理、异常处理、性能优化策略以及典型应用场景(如高性能计算、底层库封装)。通过实战示例,帮助开发者掌握 Java 与本地代码混合开发的完整流程。

3

2026.02.02

go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

62

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

55

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

27

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
mysql8主从复制原理底层详解
mysql8主从复制原理底层详解

共1课时 | 548人学习

PHP自制框架
PHP自制框架

共8课时 | 0.6万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 821人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号