mysql semisync 恢复_mysql半同步复制(semi_sync_replication)搭建及使用

mysql半同步复制(semi_sync_replication)搭建及使用

google为mysql开发了一个补丁一个基于半同步的补丁,应用与mysql5.0。回来mysql打上了该补丁,并在5.5版本中使用。半同步复制的理念是什么呢?在数据库更改操作执行前,确保更改操作至少被写入一台slave磁盘中,意味着着对于每一个连接,最多只有一个事务会由于master崩溃丢失。主要是保证数据完整性,防止事务的丢失。

半同步配置

前提主从复制环境已搭建好(省略)

master操作

安装插件

mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';

Query OK, 0 rows affected (0.21 sec)

mysql> show variables like 'rpl_%';

+------------------------------------+-------+

| Variable_name | Value |

+------------------------------------+-------+

| rpl_recovery_rank | 0 |

| 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 |

+------------------------------------+-------+

5 rows in set (0.00 sec)

设置变量,启用半同步复制

mysql> set global rpl_semi_sync_master_enabled=on ;

Query OK, 0 rows affected (0.02 sec)

slave 操作

安装插件

mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

Query OK, 0 rows affected (0.06 sec)

mysql> show variables like 'rpl_semi%';

+---------------------------------+-------+

| Variable_name | Value |

+---------------------------------+-------+

| rpl_semi_sync_slave_enabled | OFF |

| rpl_semi_sync_slave_trace_level | 32 |

+---------------------------------+-------+

2 rows in set (0.00 sec)

启用半同步复制

mysql> set global rpl_semi_sync_slave_enabled=on ;

Query OK, 0 rows affected (0.00 sec)

rpl_semi_sync_master_enabled和rpl_semi_sync_slave_enabled也可以配置在master和slave的配置文件中,这样服务器重启也生效。

这样一个半同步复制就配置完成。配置完slave,我们需要考虑如下两个问题

1 如果所有slave崩溃怎么办?这时将没有slave通知master,事务已写入中继日志中。

2 如果所有的slave断开怎么办?在这种情况下,没有slave通知master处于安全考虑而发送事务。

还有两个参数解决以上情况

rpl_semi_sync_master_timeout=milliseconds

防止半同步复制在没有收到确认的情况下,发送堵塞可以使用rpl-semi-sync-mastertimeout=milliseconds选项设置计数器。master在超时之前没有收到确认,将恢复到异步复制,继续执行半同步没有进行的操作

通过set global rep-semi-sync-master-timeout=milliseconds

设置。需要注意的是作为服务器变量,服务器重启此值不被保存

rpl-semi-sync-master-wait-no-slave=on/off

如果一个事务被提交,而master没有slave连接,这时slave不可能将事务发送到其他地方保存,默认情况下,master会在时间限制范围内急性等待slave的,并确认该事务被正确写入磁盘上。此种情况下,master还是会恢复到异步复制。

如何监控半同步复制

安装的插件提供了大量状态变量,可以利用这些状态变量监控半同步复制,简绍一些最有用的变量,其他变量,可以查询在线手册

rpl_semi_sync_master-clients

此状态变量报告了支持和主从半同步复制已连接的slave数量

rpl_semi_sync_master_status

master的半同步复制状态 1是活动状态,0是非活动状态。要么是没有被启用,或是因为已恢复到异步复制

使用show status命令或通过information_schema模式下的global_status来查询这些状态变量。

mysql> show status like 'rpl_semi%';

+--------------------------------------------+-------+

| 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 |

+--------------------------------------------+-------+

使用半同步复制,性能也许会受到影响,主要原则是来保证数据完整性,在这里完整性才是最重要的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python怎么做回归分析_如何在Python中进行二维回归分析?

这是使用scipy.optimize.curve_fit拟合表面的示例Python代码,它使原始数据生成3D散点图,对错误进行3D散点图绘制,绘制表面图和轮廓图.更改它以使用您自己的数据和功能,您应该已完成. import numpy, scipy import scipy.optimize import matplotlib from mpl_toolkits.mplot3d i…

友元关系可以继承_私生子也有继承权!非婚生子女的继承关系如何认定?

阅读本文前,请您先点击上面的“蓝色字体”,再点击“关注”,这样您就可以继续免费收到文章了。每天都会有分享,都是免费订阅,请您放心关注。注:本文转载自网络,不代表本平台立场,仅供…

mysql100多个字段如何优化_MySQL 调优/优化的 100 个建议

MySQL是一个强大的开源数据库。随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈。这里提供 101 条优化 MySQL 的建议。有些技巧适合特定的安装环境,但是思路是相通的。我已经将它们分成了几类以帮助你理解。MySQL监控MySQL服务器硬件和OS(操作系统)调优&…

python时间序列预测不连续怎么办_python – 不连续的时间序列在x轴上绘制日期

我获得了几个月的数据,但在几个月之间缺失了.如果我将整个数据集绘制在一个绘图中(其间有很多空白空间),这看起来很奇怪. 我写了一个小例子脚本来展示它是如何工作的(基于: Python/Matplotlib – Is there a way to make a discontinuous axis?) 问题:我…

普罗米修斯监控java项目_java学到什么程度可以出去实习?

把基础的知识学完,然后再学个框架,比如常见的SSH,SSM之类的,自己能用这个框架做个简单的项目,就可以了简单的来说就是把下方的视频教程学完就可以找工作了(需要完整的资料可以找up)Java零基础初…

mysql中 唯一约束的关键字是_mysql的约束

在mysql设计表中,有个概念叫做约束什么是约束约束英文:constraint约束实际上就是表中数据的限制条件约束种类mysql的约束大概分为以下几种:非空约束(not null)唯一性约束(unique)主键约束(primary key) PK外键约束(foreign key) FK检查约束(目前MySQL不支持、Oracle…

python 容器类型_Python容器类型公共方法总结

以下公共方法支持列表,元组,字典,字符串。 内置函数 Python 包含了以下内置函数: 函数 描述 备注 len(item) 计算容器中元素个数 del(item) 删除变量 del 有两种方式 max(item) 返回容器中元素最大值 如果是字典,只针对…

叉乘点乘混合运算公式_小学36年级必须掌握的数学公式和概念口诀,替孩子收藏一下!...

小学数学需要记住的知识点还是比较多的,看到这些知识点,很多孩子都觉得枯燥,不愿意用心去记。如果我们把一种新的、有趣的记忆方法教给孩子,孩子也会变得有兴趣,因为兴趣是最好的老师。一、20以内进位加法看大数&#…

python图像数独_Python图像识别+KNN求解数独的实现

Python-opencvKNN求解数独最近一直在玩数独,突发奇想实现图像识别求解数独,输入到输出平均需要0.5s。整体思路大概就是识别出图中数字生成list,然后求解。输入输出demo数独采用的是微软自带的Microsoft sudoku软件随便截取的图像,…

上位机与1200组态步骤_西门子1200的HSC的应用实例!

高速计数器寻址CPU 将每个高速计数器的测量值,存储在输入过程映像区内,数据类型为 32 位双整型有符号数,用户可以在设备组态中修改这些存储地址,在程序中可直接访问这些地址,但由于过程映像区受扫描周期影响&#xff0…

cmd代码表白_手把手教你把Python代码转成exe

【文末有福利】很多刚入门的盆友都有疑惑怎么把Python代码转成可执行的exe?,这里行哥统一解决一下这个问题1.在cmd里安装pyintsaller包2.在cmd里输入打包成exe的命令3.问题总结4. pyintsaller --help5. end1.在cmd里安装pyintsaller包第一步安装将Python…

searchview 点击后被覆盖_03实战Jacoco统计代码覆盖

本篇内容主要介绍:在gradle项目中添加jacoco来了解工程的代码覆盖情况。自动化的统计代码覆盖情况,有助于将焦点问题可视化,从而决定什么时候采取什么动作进行改进。Jacoco可以方面的添加在测试执结束,进行代码覆盖率的统计。如果…

电脑功耗软件_台式电脑配置详解!

近期有许多做设计的朋友问我,怎么配一台工作用的电脑,今天就给大家介绍一下电脑的各个组成部分。电脑核心配置,一般指CPU、主板、显卡三大件,一般笔记本电脑不需要考虑主板,只需考虑CPU和显卡两大件。1.CPU的选择现在的…

docker mysql优势_前端使用docker有什么优势呢?

那么如果使用docker有什么优势呢?你觉得docker没啥用,自然是因为你没遇到这样的场景,所以就算强行上了docker,也会觉得非常别扭。想了想前端用docker好像确实不是非常必要,npm build以后出来一堆静态文件,扔…

ios python3.0编程软件_ios编程软件-7款学习Python编程的iPhone/iPad应用

Python部落组织翻译,禁止转载,欢迎转发 Python是一种极受欢迎的编程语言,无论你是为机器人还是树霉派编码,都可以使用Python.想学习这门语言?这7个APP会对你有帮助: Pythonista 3: 这…

spring定时器突然不执行了_非标自动化设备之PLC定时器的时间和程序扫描周期

扫描周期是PLC本身执行指令时的周转时间。PLC执行指令按梯形图是从左向右,从上到下执行。每执行一遍就顺便扫描一遍所有元件状态并按指令执行相应动作。这个是需要时间吧,把这个时间叫扫描周期。并如此无限循环下去。当然扫描周期越短,PLC性能…

python 中arange函数_浅谈Python中range与Numpy中arange的比较

本文先比较range与arange的异同点,再详细介绍各自的用法,然后列举了几个简单的示例,最后对xrange进行了简单的说明。1. range与arange的比较(1)相同点:A、参数的可选性、默认缺省值是一样的;B、结果均包括开始值&#…

python入门小游戏之跳一跳_从零基础开始,用python手把手教你玩跳一跳小游戏,直接打出高分...

这对于很多人来说,可能是已经过时的游戏,但是对于python入门来说,却是一个非常值得学习的项目。TONOW收集了很多有关python入门的项目案例,包含了相应的教程和源码,哪怕你从未接触编程,也通过这些教程&…

如何反映两条曲线的拟合精度_用水平仪如何检测导轨的直线度?

1、水平仪的原理及用途: 气泡型水平仪的水准管是由玻璃制成,水准管内壁是一个具有一定曲率半径的曲面,管内装有液体,当水平仪发生倾斜时,水准管中气泡就向水平仪升高的一端移动,从而确定水平面的…

mfc mysql 选择删除文件_MFC应用实例:[60]删除指定类型的文件

双击“删除文件”按钮添加响应函数OnDelete(),在响应函数OnDelete()中添加一下代码:void CDeleteCertainFolderFileDlg::OnDelete(){UpdateData(true);CString m_extern;switch (m_radio)//获取要删除文件类型的后缀名{case 0:GetDlgItem(IDC_RADIO1)-&g…