mysql半同步开启
开启半同步复制
#在有的高可用架构下,master和slave需同时启动,以便在切换后能继续使用半同步复制
/etc/my.cnf
- plugin-load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
- rpl-semi-sync-master-enabled =
- rpl-semi-sync-slave-enabled =
查看半同步是否在运行
master:
mysql> show status like 'Rpl_semi_sync_master_status';
+-----------------------------+-------+
| Variable_name | Value |
+-----------------------------+-------+
| Rpl_semi_sync_master_status | ON |
+-----------------------------+-------+
slave:
mysql> show status like 'Rpl_semi_sync_slave_status';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| Rpl_semi_sync_slave_status | ON |
+----------------------------+-------+
重启slave上的IO线程使半同步生效
mysql> stop slave io_thread;
mysql> start slave io_thread;
#如果没有重启,则默认还是异步复制,重启后,slave会在master上注册为半同步复制的slave角色。
半同步复制测试
- master:
- mysql> create database db;
- mysql> use db
- Database changed
- mysql> create table t1(id int);
- mysql> insert into t1 values();
- mysql> select * from t1;
- +------+| id |+------+| |+------+ row in set (0.00 sec)
- slave:
- mysql> select * from db.t1;
- +------+| id |+------+| |+------+ row in set (0.00 sec)
- #可以看到数据很快同步到了从库上,下面关闭io_thread测试
- slave:
- mysql> stop slave io_thread;
- Query OK, rows affected (0.00 sec)
- master:
- mysql> insert into t1 values(); #此处有一个10s的超时等待时间,超时后转为异步插入
- Query OK, row affected (10.11 sec)
- mysql> show status like 'Rpl_semi_sync_master_status'; #半同步已失效
- +-----------------------------+-------+| Variable_name | Value |
- +-----------------------------+-------+| Rpl_semi_sync_master_status | OFF |
- +-----------------------------+-------+
- slave:
- mysql> show status like 'Rpl_semi_sync_slave_status'; #从库的半同步也失效
- +----------------------------+-------+| Variable_name | Value |
- +----------------------------+-------+| Rpl_semi_sync_slave_status | OFF |
- +----------------------------+-------+ row in set (0.01 sec)
- slave:
- mysql> start slave io_thread; #从库开启io线程
- Query OK, rows affected (0.00 sec)
- master:
- mysql> show status like 'Rpl_semi_sync_master_status'; #又重新转为半同步复制
- +-----------------------------+-------+| Variable_name | Value |
- +-----------------------------+-------+| Rpl_semi_sync_master_status | ON |
- +-----------------------------+-------+ row in set (0.00 sec)
- slave:
- mysql> select * from db.t1; #从库上数据已同步
- +------+| id |+------+| || |+------+ rows in set (0.00 sec)
mysql半同步开启的更多相关文章
- mysql半同步复制问题排查
1.问题背景 默认情况下,线上的mysql复制都是异步复制,因此在极端情况下,主备切换时,会有一定的概率备库比主库数据少,因此切换后,我们会通过工具进行回滚回补,确保数据不丢失.半同步复制则 ...
- MySQL半同步复制
从MySQL5.5开始,MySQL以插件的形式支持半同步复制.如何理解半同步呢?首先我们来看看异步,全同步的概念 异步复制(Asynchronous replication) MySQL默认的复制即是 ...
- Mysql半同步复制模式说明及配置示例 - 运维小结
MySQL主从复制包括异步模式.半同步模式.GTID模式以及多源复制模式,默认是异步模式 (如之前详细介绍的mysql主从复制).所谓异步模式指的是MySQL 主服务器上I/O thread 线程将二 ...
- MySQL半同步安装以及参数
MySQL半同步安装以及参数 基于MySQL5.5 官档地址: Semisynchronous Replication Administrative Interface https://dev.mys ...
- 安装MySQL半同步复制
一.简介 从MySQL5.5开始,MySQL以插件的形式支持半同步复制.如何理解半同步呢?首先我们来看看异步,全同步的概念 异步复制(Asynchronous replication) MySQL默认 ...
- MySQL半同步复制搭建
默认情况下,MySQL 5.5/5.6/5.7和MariaDB 10.0/10.1的复制是异步的,异步复制可以提供最佳性能,主库把binlog日志发送给从库,这一动作就结束了,并不会验证从库是否接收完 ...
- (5.5)mysql高可用系列——MySQL半同步复制(实践)
关键词,mysql半同步复制 [0]实验环境 操作系统:CentOS linux 7.5 数据库版本:5.7.24 数据库架构:主从复制,主库用于生产,从库用于数据容灾和主库备机,采用默认传统的异步复 ...
- MySQL半同步复制源码解析
今天 DBA 同事问了一个问题,MySQL在半同步复制的场景下,当关闭从节点时使得从节点的数量 < rpl_semi_sync_master_wait_for_slave_count时,show ...
- MySQL半同步复制的数据一致性探讨微信后台团队实践【转】
MySQL是一个RDBMS(关系型数据库管理系统),由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.由于其体积小.速度快.拥有成本低,尤其是开放源码这一特点,广受各大企业欢迎,包括 ...
随机推荐
- 【Spring Security】三、自定义数据库实现对用户信息和权限信息的管理
一 自定义表结构 这里还是用的mysql数据库,所以pom.xml文件都不用修改.这里只要新建三张表即可,user表.role表.user_role表.其中user用户表,role角色表为保存用户权限 ...
- SQL语句总结2018-11-7
增加一条数据 insert into table (列字段1,列字段2)values(列1值,列2值) 删除一条数据 delete from table where 列名1=值1 修改一条数据 upd ...
- 【Net Core】DNX概述
1. 什么是.NET执行环境 ? .NET Execution Environment(DNX) 是一个SDK 和运行时环境,它包含所有的你需要创建和运行.net应用程序的组件.它提供一个主机进程,C ...
- 非托管C++互操作
.NET简谈互操作(一:开篇介绍) .NET简谈互操作(二:先睹为快) .NET简谈互操作(三:基础知识之DllImport特性) .NET简谈互操作(四:基础知识之Dispose非托管内存) .NE ...
- Jquery相关插件
jQuery 插件autocomplete 应用 介绍 $("#AccountNames").autocomplete(Accounts, { minChars: 0, match ...
- Ubuntu 14.04 安装sublime
参考 How do I install Sublime Text 2/3? Ubuntu 14.04 安装sublime 通过apt-get包管理器安装sublime. sublime2.0: sud ...
- 51nod 1422 沙拉酱前缀
http://www.51nod.com/onlineJudge/questionCode.html#problemId=1422¬iceId=399940 题意: 思路: 先把所有步骤 ...
- Spring框架学习
没有状态变化的对象(无状态对象):应当做成单例. Spring-framework的下载:http://repo.spring.io/release/org/springframework/sprin ...
- struct和typedef struct用法和区别
1 首先://注意在C和C++里不同 1.1 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu ...
- Centos6.8安装nginx(一)
在这里对nginx的安装简单的做个记录,后续有时间的话在详细补充. 1.yum安装g++: yum install -y gcc gcc-c++ [enter] 2.下载必需的依赖库:zlib(为了g ...