MySQL半同步安装以及参数

基于MySQL5.5

官档地址:

Semisynchronous Replication Administrative Interface
https://dev.mysql.com/doc/refman/5.5/en/replication-semisync-interface.html

控制半同步复制的系统参数

rpl_semi_sync_master_enabled
Controls whether semisynchronous replication is enabled on the master. To enable or disable the plugin, set this variable to 1 or 0, respectively. The default is 0 (off).
控制是否启用半同步复制rpl_semi_sync_master_timeout
A value in milliseconds that controls how long the master waits on a commit for acknowledgment from a slave before timing out and reverting to asynchronous replication. The default value is 10000 (10 seconds).
等待从库提交并反馈的超时时间,超时则转向异步同步rpl_semi_sync_slave_enabled
Similar to rpl_semi_sync_master_enabled, but controls the slave plugin.
类似于 rpl_semi_sync_master_enabled,但是用于控制 slave 的插件。

启用半同步复制监视的状态变量

Rpl_semi_sync_master_clients
The number of semisynchronous slaves.
半同步复制的 slave 的数量Rpl_semi_sync_master_status
Whether semisynchronous replication currently is operational on the master. The value is 1 if the plugin has been enabled and a commit acknowledgment has occurred. It is 0 if the plugin is not enabled or the master has fallen back to asynchronous replication due to commit acknowledgment timeout.
半同步复制目前是否运行在主机上。如果已启用该插件,提交确认发生,值为 1。如果未启用该插件或 master 已经回落到异步复制导致提交确认超时,为 0。Rpl_semi_sync_master_no_tx
The number of commits that were not acknowledged successfully by a slave.
提交但是没有反馈成功的slave的数量。Rpl_semi_sync_master_yes_tx
The number of commits that were acknowledged successfully by a slave.
提交后反馈成功的slave的数量。Rpl_semi_sync_slave_status
Whether semisynchronous replication currently is operational on the slave. This is 1 if the plugin has been enabled and the slave I/O thread is running, 0 otherwise.
是否同步复制目前是业务上的slave。如果已启用该插件,slave的 I/O 线程正在运行,是1 ,否则 0。

安装和配置

前提条件

1. MySQL 5.5 or higher must be installed.
2. The capability of installing plugins requires a MySQL server that supports dynamic loading. To verify this, check that the value of the have_dynamic_loading system variable is YES. Binary distributions should support dynamic loading.
3. Replication must already be working. 

安装

1.设置主从库参数文件
[mysqld]
plugin_dir=/path/to/plugin/directory
主库:
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
从库:
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
查询安装情况
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE '%semi%';
+----------------------+---------------+
| PLUGIN_NAME          | PLUGIN_STATUS |
+----------------------+---------------+
| rpl_semi_sync_master | ACTIVE        |
+----------------------+---------------+
安装完成后,半同步默认是关闭的,需要在主从库上面都开启,才能使用,只开启主或者从,都无法使用mysql运行时,可以使用以下参数
主库:
SET GLOBAL rpl_semi_sync_master_enabled = {0|1};    #默认是0,1是启用,0是关闭
SET GLOBAL rpl_semi_sync_master_timeout = N;        #单位milliseconds(毫秒),10000毫秒=10秒
从库:
SET GLOBAL rpl_semi_sync_slave_enabled = {0|1};
如果要在mysql运行时启用半同步,必须重启IO_THREAD,slave会重新连上master并且被注册为 semisynchronous slave
STOP SLAVE IO_THREAD;
START SLAVE IO_THREAD;
如果不重启的话,slave将会继续使用 异步复制可以重启mysql时
配置my.cof参数
主库:
[mysqld]
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000 # 1 second
从库:
[mysqld]
rpl_semi_sync_slave_enabled=1

监控

mysql> SHOW VARIABLES LIKE 'rpl_semi_sync%';
mysql> SHOW STATUS LIKE 'Rpl_semi_sync%';

卸载

主库:
UNINSTALL PLUGIN rpl_semi_sync_master;
从库:
UNINSTALL PLUGIN rpl_semi_sync_slave;

转载于:https://www.cnblogs.com/Coye/p/7256068.html

MySQL半同步安装以及参数相关推荐

  1. mysql半同步复制

    从MySQL5.5开始,MySQL以插件的形式支持半同步复制.如何理解半同步呢?首先我们来看看异步,全同步的概念 异步复制(Asynchronous replication) MySQL默认的复制即是 ...

  2. mysql 5.5半同步复制_(5.5)mysql高可用系列——MySQL半同步复制(实践)

    关键词,mysql半同步复制 [0]实验环境 操作系统:CentOS linux 7.5 数据库版本:5.7.24 数据库架构:主从复制,主库用于生产,从库用于数据容灾和主库备机,采用默认传统的异步复 ...

  3. MySQL半同步的配置

    半同步复制: 插件由Google提供的. 主库在提交事务时,在客户端接收到查询结束反馈前必须保证二进制日志已经传输到至少一台备库上. 从库的IO线程在接受完binlog并写入到自己的relaylog后 ...

  4. MySQL半同步复制配置

    前言: MySQL默认的主从复制采用的是异步模式,主库提交事务不需要确认是否已经传送到从库端,在主库发生宕机主备切换时,可能导致主库已经提交的事务在从库丢失的情况. 在MySQL 5.7通过插件支持了 ...

  5. MySQL半同步复制(文章讲解很透彻!)

    从MySQL5.5开始,MySQL以插件的形式支持半同步复制.如何理解半同步呢?首先我们来看看异步,全同步的概念 一.三种同步 异步复制(Asynchronous replication) MySQL ...

  6. Mysql半同步机制

    mysql5.5之后引入的半同步机制. 默认的异步同步是 主服务器把binlog扔到从服务器后就不管了 不管从服务器是否接受到. 半同步是 至少有一台从服务器接受到主服务器binlog日志并且应用到自 ...

  7. mysql 半同步复制_Mysql半同步复制原理及问题排查

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

  8. mysql半同步复制问题排查

    1.问题背景       默认情况下,线上的mysql复制都是异步复制,因此在极端情况下,主备切换时,会有一定的概率备库比主库数据少,因此切换后,我们会通过工具进行回滚回补,确保数据不丢失.半同步复制 ...

  9. mysql半同步复制实现

    mysql半同步复制和异步复制的区别如上述架构图所看到的:在mysql异步复制的情况下.Mysql Master Server将自己的Binary Log通过复制线程传输出去以后,Mysql Mast ...

最新文章

  1. hihoCoder #1047 Random Tree
  2. 基于SSM的餐饮工业化管理系统-计算机毕业设计
  3. Node-RED订阅MQTT主题并调试数据
  4. 深度学习与计算机视觉(三)最优化与梯度下降
  5. Angular运行在java_在本地运行现有Angular项目
  6. [C++STL]C++实现priority_queue容器适配器
  7. 前端学习(3136):react-hello-react之不用柯里化的写法
  8. JAVA实现在线聊天室(层层递进)
  9. sublime的一些快捷键
  10. OC中给我们提供的一个技术:谓词(NSPredicate).note
  11. 基于依存句法规则的篇章级情感分析demo
  12. OpenCV中感兴趣区域的选取与检测(一)
  13. android:“新版飞机大战”源码开源啦!
  14. ELMo ,LM:一串词序列的概率分布probability distribution over sequences of words
  15. ubuntu16.04安装google中文输入法
  16. Python 常用官方文档整理(中文版)
  17. 网易公开课“Programming Paradigms” 笔记
  18. python3 urlencode_Python3 parse.urlencode() 与parse.unquote()
  19. css文字跑马灯,css3实现文字跑马灯(css3跑马灯demo) - 全文
  20. Mac的谷歌浏览器安装Vue.js.devtools插件

热门文章

  1. 2022-2028年中国分散式风电行业投资分析及前景预测报告
  2. Redis 笔记(11)— 文本协议 RESP(单行、多行字符串、整数、错误、数组、空值、空串格式、telnet 登录 redis)
  3. 数据结构与算法——线性结构——线性表及其表示
  4. Ascend Pytorch算子适配层开发
  5. YOLOV4各个创新功能模块技术分析(三)
  6. Camera HDR Algorithms
  7. android中getMeasuredHeigh()为0的问题
  8. 客快物流大数据项目(五十三):实时ETL模块开发准备
  9. linux CentOS7 下 Docker安装
  10. [JavaScript] JavaScript数组挖掘,不只是讲数组哟(2)