技术分享 | MySQL 组复制数据一致性管理解析

MySQL主从复制架构:原理与搭建详解 在MySQL主从复制的实践过程中,有一些常见的陷阱和问题,提前了解这些"坑"可以帮助你避免不必要的麻烦。随着数据库技术的不断演进,MySQL的复制功能也在持续发展。了解最新的复制技术和趋势,有助于我们设计更先进的数据库架构。InnoDB Cluster是MySQL官方的高可用解决方案,它基于Group Replication、MySQL Router和MySQL Shell三个组件,提供了一个完整的高可用架构。核心组件:提供数据复制和高可用保障:提供透明的读写分离和自动故障转移:提供集群管理和监控工具。 阅读详情

作者:杨涛涛
资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


MySQL 组复制数据的一致性管理解析

来源于客户的一个问题。客户对组复制的数据一致性保障机制非常困惑,一直不太明白,其实就是对组复制参数 group_replication_consistency 几个值的含义不太清楚。这里我举了几个简单的例子,来说明这个参数包含的几个选项的真实含义。

一、概念

组复制的概念:组复制是 MySQL 基于传统的主从复制开发的一个插件。这个插件改善了原生主从复制的一些重大功能缺陷,诸如数据一致性监测管理、自动冲突监测、自动故障监测、自动收缩扩容节点、自动数据回补等等。

组复制功能自 MySQL 5.7 发布到现在最新版 MySQL 8.0.20,经历了各种缺陷修复、功能升级,目前已经比较完善。

参数 group_replication_consistency 共 5 个值可选:

  1. EVENTUAL:确保最终一致性,并不能保证数据实时同步。(MySQL 8.0.14 之前只有这一个选项)
  2. BEFORE:确保本地强一致性,并不保证其他节点数据实时同步。
  3. AFTER:确保全局强一致性,可以保证所有节点数据实时同步。
  4. BEFORE_AND_AFTER:最高级别,确保本地强一致性,全局强一致性。结合 BEOFRE 和 AFTER 的特性。
  5. BEFORE_ON_PRIMARY_FAILOVER:确保从节点晋升为主节点后的本地一致性。

接下来,在组复制的默认模式下讨论 EVENTUAL,BEFORE,AFTER 这三类值的含义以及使用场景。

二、环境准备

  • debian-ytt1:3306(写节点,简称节点 1)
  • debian-ytt2:3306(读节点,简称节点 2)
  • debian-ytt3:3306(读节点,简称节点 3)

以下为集群 ytt_mgr 的状态,节点 1 为主,节点 2 和节点 3 为从。

MySQL  debian-ytt1:3306 ssl  ytt  Py > c1 = dba.get_cluster('ytt_mgr');
MySQL  debian-ytt1:3306 ssl  ytt  Py > c1.status();
{
    "clusterName": "ytt_mgr",
    "defaultReplicaSet": {
        "name": "default",
        "primary": "debian-ytt1:3306",
        "ssl": "REQUIRED",
        "status": "OK",
        "statusText": "Cluster is ONLINE and can tolerate up to ONE failure.",
        "topology": {
            "debian-ytt1:3306": {
                "address": "debian-ytt1:3306",
                "mode": "R/W",
                "readReplicas": {},
                "replicationLag": null,
                "role": "HA",
                "status": "ONLINE",
                "version": "8.0.20"
            },
            "debian-ytt2:3306": {
                "address": "debian-ytt2:3306",
                "mode": "R/O",
                "readReplicas": {},
                "replicationLag": null,
                "role": "HA",
                "status": "ONLINE",
                "version": "8.0.20"
            },
            "debian-ytt3:3306": {
                "address": "debian-ytt3:3306",
                "mode": "R/O",
                "readReplicas": {},
                "replicationLag": null,
                "role": "HA",
                "status": "ONLINE",
                "version": "8.0.20"
            }
        },
        "topologyMode": "Single-Primary"
    },
    "groupInformationSourceMember": "debian-ytt1:3306"
}

三、三种选项值的含义和适用场景

3.1 EVENTUAL

这类选项代表最终一致性,组复制默认值。意思是说,设置了 EVENTUAL 的节点,其读或者写请求可以立即返回结果,不用等到新请求之前的中继日志处理完。

创建一张测试表 t1。

<debian-ytt1|mysql>create table t1 (id serial primary key, r1 int,r2 int,r3 char(36));
Query OK, 0 rows affected (0.07 sec)

节点 1 正常插入一条记录。

<debian-ytt1|mysql>insert into t1 (r1,r2,r3) select 10,20,uuid();
Query OK, 1 row affected (0.02 sec)
Records: 1  Duplicates: 0  Warnings: 0

节点 2 及时应用这条记录到表 t1。

<debian-ytt2|mysql>select * from t1;
+----+------+------+--------------------------------------+
| id | r1   | r2   | r3                                   |
+----+------+------+--------------------------------------+
|  1 |   10 |   20 | e878289e-89c4-11ea-861d-08002753f58d |
+----+------+------+--------------------------------------+
1 row in set (0.00 sec)

此时给节点 2 加一个 server 层的共享读锁,人为制造拥堵延迟。

<debian-ytt2|mysql>lock table t1 read;
Query OK, 0 rows affected (0.00 sec)

节点 1 再次插入一条 ID 为 2 的新记录。

<debian-ytt1|mysql>insert into t1 (r1,r2,r3) select 20,20,uuid();
Query OK, 1 row affected (0.02 sec)
Records: 1  Duplicates: 0  Warnings: 0

<debian-ytt1|mysql>select  * from t1;
+----+------+------+--------------------------------------+
| id | r1   | r2   | r3                                   |
+----+------+------+--------------------------------------+
|  1 |   10 |   20 | e878289e-89c4-11ea-861d-08002753f58d |
|  2 |   20 |   20 | 2982d33f-89c5-11ea-861d-08002753f58d |
+----+------+------+--------------------------------------+
2 rows in set (0.00 sec)

此时再次查询节点 2 可立即返回结果,但是数据并非最新,不包含最新 ID 为 2 的记录,还是之前的旧数据。

<debian-ytt2|mysql>select * from t1;
+----+------+------+--------------------------------------+
| id | r1   | r2   | r3                                   |
+----+------+------+--------------------------------------+
|  1 |   10 |   20 | e878289e-89c4-11ea-861d-08002753f58d |
+----+------+------+--------------------------------------+
1 row in set (0.00 sec)

节点 2 上,ID 为 2 的这条记录,目前状态为:已拉到自己的中继日志,但尚未应用到表 t1。表 t1 的共享读锁释放掉后,才能继续应用。现在释放表 t1 的共享读锁,再次查询已经包含最新的记录。

<debian-ytt2|mysql>unlock tables;
Query OK, 0 rows affected (0.01 sec)

<debian-ytt2|mysql>select * from t1;
+----+------+------+--------------------------------------+
| id | r1   | r2   | r3                                   |
+----+------+------+--------------------------------------+
|  1 |   10 |   20 | e878289e-89c4-11ea-861d-08002753f58d |
|  3 |   20 |   20 | 759cc5c0-89c7-11ea-861d-08002753f58d |
+----+------+------+--------------------------------------+

从以上例子可以看出,最终一致性模式优缺点。

  • 优点:可以快速返回本节点已经成功应用的数据,不用等待所有的数据应用完成。
  • 缺点:可能返回的数据比较旧。

3.2 BEFORE

这类选项代表保证本地节点强一致性。也就是说设置为此选项的本地节点必须要等待中继日志数据全部应用完成后,才会执行新的请求,否则会一直等待。等待的时间和中继日志里未应用的事务量成一定比率。

为了清晰起见,清空表 t1 数据。

<debian-ytt1|mysql>truncate t1;
Query OK, 0 rows affected (0.17 sec)

新启一个连接到节点 2,给表 t1 上共享读锁,对应的 SESSION ID =1。

<debian-ytt2|mysql>lock table t1 read;
Query OK, 0 rows affected (0.01 sec)

在节点 1 上插入一条新记录。

<debian-ytt1|mysql>insert into t1 select 1,1,1,uuid();
Query OK, 1 row affected (0.02 sec)
Records: 1  Duplicates: 0  Warnings: 0

另外开启一个新连接到节点 2,对应的 SESSION ID = 2。设置参数 group_replication_consistency=before,完了立刻查询表 t1 数据,处于等待状态。

<debian-ytt2|mysql>set @@group_replication_consistency='before';
Query OK, 0 rows affected (0.00 sec)

<debian-ytt2|mysql>select * from t1;

# 此处 HANG 住!

在节点 3 上查询表 t1 数据,立刻返回刚才插入的记录,也就是说对节点 3 没有影响。

<debian-ytt3|mysql>select * from t1;
+----+------+------+--------------------------------------+
| id | r1   | r2   | r3                                   |
+----+------+------+--------------------------------------+
|  1 |    1 |    1 | ee83837e-89ce-11ea-861d-08002753f58d |
+----+------+------+--------------------------------------+
1 row in set (0.00 sec)

此时切换到节点 2 的 SESSION ID = 1 的会话,解锁表 t1。

<debian-ytt2|mysql>unlock tables;
Query OK, 0 rows affected (0.00 sec)

再次查看节点 2 的 SESSION ID = 2 的会话,结果已经返回,时间为 3 分 17 秒。相比 EVENTUAL,并不是立即返回结果。

<debian-ytt2|mysql>select * from t1;
+----+------+------+--------------------------------------+
| id | r1   | r2   | r3                                   |
+----+------+------+--------------------------------------+
|  1 |    1 |    1 | ee83837e-89ce-11ea-861d-08002753f58d |
+----+------+------+--------------------------------------+
1 row in set (3 min 17.51 sec)

可以看出,BEFORE 模式优先保证了本地节点永远读取到最新的数据。最大的缺点是必须煎熬等待本地节点中继日志里未应用的数据正常应用。如果日志里有很多写的不好的事务块或者大事务,则会造成本节点很大的延迟。

3.3 AFTER

这类选项代表全局强一致性。设置为此模式的节点,必须等待集群内其他所有其他节点应用完自己中继日志里的事务,才能返回结果。

把节点 1 参数 group_replication_consistency 设置为 AFTER,清空表 t1。

<debian-ytt1|mysql>truncate t1;
Query OK, 0 rows affected (0.22 sec)

<debian-ytt1|mysql>set @@group_replication_consistency='after';
Query OK, 0 rows affected (0.00 sec)

在节点 2 上,给表 t1 加共享读锁。

<debian-ytt2|mysql>lock table t1 read;
Query OK, 0 rows affected (0.01 sec)

之后在节点 1 插入一条记录,并没有立即返回,处于等待状态,因为节点 2 上的表 t1 被锁了,节点 2 的日志要成功应用必须要等表 t1 解锁才可以。

<debian-ytt1|mysql>insert into t1 select 1,1,1,uuid();

# 处于等待状态

此时回到节点 2,由于模式默认,立即返回结果,不过数据很旧。

<debian-ytt2|mysql>select * from t1;
Empty set (0.00 sec)

此时在节点 3 上对表 t1 进行查询,发现这个请求也处于等待状态。也就是说虽然节点 3 也是默认模式,但是由于主节点设置为 AFTER,节点 3 也必须等待其他的从节点日志应用完毕后才能返回结果。

<debian-ytt3|mysql>select * from t1;

现在在节点 2 上解锁表 t1,再次回到节点 1 上的 ID 为 121 的连接,结果已经返回,不过花费了 6 分 47 秒。

<debian-ytt1|mysql>insert into t1 select 1,1,1,uuid();
Query OK, 1 row affected (6 min 47.14 sec)
Records: 1  Duplicates: 0  Warnings: 0

此时在节点 3 上检查之前的查询,结果也已经返回。

<debian-ytt3|mysql>select * from t1;
+----+------+------+--------------------------------------+
| id | r1   | r2   | r3                                   |
+----+------+------+--------------------------------------+
|  1 |    1 |    1 | 49430687-89e9-11ea-861d-08002753f58d |
+----+------+------+--------------------------------------+
1 row in set (18.25 sec)

从以上过程可以看到,AFTER 是一个强同步的选项。优先保证了集群内所有节点的数据一致性,但是也带来一个很大的性能问题:集群对外总的事务提交时间依赖于组内最慢的那个节点。如果最慢的节点遇到故障,那其他节点就必须等待超时回滚了。

总结

本文对组复制的数据一致性级别参数值的设置做了详细的演示。可以看到我只说明了前三个选项,后面两个由于基于前三个选项的组合,这里没有单独说明,感兴趣可以自己实验下。

MySQL之复制主备切换实战与一致性保障指南 大家好!在MySQL复制系统的运维中,主备切换是保障高可用性的关键操作,而数据一致性则是切换过程中的核心挑战。写作本文的初衷,是希望与各位开发者、运维人员分享计划内与计划外主备切换的流程、数据一致性保障方法及实战技巧,通过通俗解析和案例演示,帮助大家在面对主库故障或架构升级时能够快速、稳定地完成切换。文中将结合切换步骤、工具使用和代码示例,助力读者掌握主备切换的全流程管理。欢迎随时交流探讨! 阅读详情

相关推荐

从0到1打造MySQL高可用集群:MGR与主从复制实战全解析

摘要: 数据库高可用性已成为业务稳定运行的关键需求。传统主从复制存在延迟、切换依赖人工等问题,而MySQL Group Replication(MGR)通过分布式共识机制实现自动选主和数据同步,显著提升故障恢复能力。MGR支持多主模式、自动成员管理,适合金融、交易等核心业务场景。本文对比了主从复制与MGR的优缺点,并提供了MGR集群的五步搭建指南及生产环境优化建议。高可用不仅是技术保障,更是商业信用的体现,MGR代表了数据库自愈架构的未来趋势。

Pengyh的博客 1367

MySQL MGR数据一致性关键参数group_replication_consistency

  group_replication_consistency是MySQL 8.0.14为解决MGR中一致性读提供的参数,可以在全局或单个事务中进行配置。分为以下5种可选值: EVENTUAL:   RO和RW事务执行前不会等待先序事务的回放完成,也不会影响后序事务等待该事务回放完成,只需要在超过半数节点冲突检测通过以后即可提交;RW事务不等待其他成员完成应用事务,意味着事务可以在其他成员完成之前外部化。这就可能在在主库发生故障转移的情况下,新主数据库可以在先前的主要事务完成全部应用之前就开始接受新的RO

雪辉博客 1822

MySQL 中的 GTID 复制详解

在现代分布式数据库系统中,数据复制是一项关键功能,而 GTID(Global Transaction ID)则是 MySQL 中一种有效的复制机制。本文将以 Java 开发语言为例,深入探讨 GTID 复制的工作原理、核心源码及其应用场景,并通过具体案例分析和代码演示,为开发者们提供一份详尽的参考。本文主要介绍 MySQL 中 GTID 复制的基本概念、工作机制及其应用。在解析核心源码的同时,还会给出详细的 Java 示例代码,包括 GTID 复制的配置、启动以及如何进行测试。

喵手的博客 1173

MGR之group_replication_consistency性能测试

导读作者徐晨亮,MySQL DBA,知数堂学员。热衷于数据库优化,自动化运维及数据库周边工具开发,对MySQL源码有一定的兴趣一、前言开篇先说明下MGR中group_re...

老叶茶馆 2576

施耐德 Modicon M580 ePAC 项目实战:从硬件选型到 Control Expert V15 组态

本文详细解析了施耐德 Modicon M580 ePAC 在工业自动化项目中的实战应用,从硬件选型到 Control Expert V15 组态的全流程。重点介绍了水处理站控制系统的硬件配置、网络架构设计、软件安装授权及程序框架开发,帮助工程师高效实施中大型控制系统项目。

weixin_33701617的博客 326

汽车电缆选型实战:基于ISO 19642-3~12的7类电缆电压/材料/场景对照表

本文详细解析了基于ISO 19642-3~12标准的7类汽车电缆选型实战,涵盖电压等级、导体材料和场景应用的对照表。通过全参数速查表和典型选型陷阱分析,帮助工程师快速掌握从低压信号线到高压动力电缆的选型逻辑,提升新能源汽车与智能驾驶技术的安全性和可靠性。

weixin_29043895的博客 365

组复制常规操作-事务一致性保证 | 全方位认识 MySQL 8.0 Group Replication

作者 罗小波 · 数据库技术专家出品 沃趣科技对于组复制这样的分布式系统来说,主要的需求之一是它需要有数据的一致性保证。换句话说,需要保证在组成员之间分布的事务的全局同步的一致性。本...

老叶茶馆 1079

扩视机器视觉—Halcon机器视觉48个实战项目六(检测定位角度)

此项目halcon检测检测定位角度问题,并显示。

qq_21516871的博客 1093

MGR同步复制验证

/在①delete过程中,多次执行该sql,前几次很快(2秒钟)执行完毕,t1数据量是删除前的数据量,但发现有时会阻塞,阻塞了74秒,进程状态是Executing hook on transaction begin,不阻塞后,显示查询结果为0,读到的是① delete后的数据量。//在①delete过程中,多次执行该sql,t1数据量一直是删除前的数据量,直到① delete完毕,这里变成0条数据,说明是同步复制,节点2删除完,节点1才执行成功。//①执行期间,在节点2上查询同一个表,出现阻塞。

雅冰石的专栏 970

Memory SystemsCache, DRAM, Disk翻译学习DRAM部分(二)

DRAM 的发展史

qq_33473931的博客 995

android6 usb默认文件管理,不弹RSA配对提示框

本文修改针对 高通 Android6.0.1 出user版本时 https://www.cnblogs.com/Jokeyyu/p/7424262.html http://blog.youkuaiyun.com/sinc00/article/details/44957943 diff --git a/frameworks/base/packages/SystemUI/src/com/android...

木叶风的博客 692

MySQL复制—MGR原理(从几个核心问题入手)

MGR基于配额(Quota)进行流控,也就是说,一个Group在一个周期内,只能执行固定数量的事务,这个固定数量就是配额。

m0_60006388的博客 2311

查看电脑mac地址+主机名+用户名并导出

张三:李四,应公司要求,今天下班前必须将这张表格里面用户电脑的mac地址统计出来!李四:我该怎么办呢?一个一个查看,太没有效率了吧!对了,我可以做一个bat脚本啊!

拥抱着青春 1971

mysql组复制参数_技术分享 | MySQL 组复制数据一致性管理解析

作者:杨涛涛资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。MySQL 组复...

weixin_30831105的博客 180

基于ArduPilot的旋翼式无人机飞行器开发系列(二,学习路线)

一,热爱 作为一名耿直的技术男,在这里我只想说一句,热爱是可持续学习的第一要素,也只有热爱才能让你坚持到最后。 至于最后能得到什么,只有你自己知道。常说书中自有颜如玉,书中自有黄金屋。如果你是为了颜如玉,我相信大多数颜如玉做不了你的红颜知己。如果是为了黄金屋,当你持续投入时间和金钱却看不到回报的时候,相信退堂鼓早已隆隆作响。 我给自己的信条就是为当下努力工作,为将来持续学习。当前飞控行业并没有爆发,如果想赚块钱,去互联网汽车,去VR/AR吧,去元宇宙吧。 那么我热爱...

从0到1,突破自己 1667

手把手教你学Simulink——基于Simulink的模糊自适应PI调节FOC电流环

本文提出基于模糊自适应PI控制的FOC电流环优化方案,针对传统PI控制参数固化、抗扰性差等问题,通过模糊逻辑在线调整PI参数。方案采用双输入(电流误差及变化率)和三输出(ΔKp/ΔKi/PI调节)结构,实现动态响应时间<30μs(提升38%)、超调<5%(降低71%)、参数摄动下误差<±0.4A(精度提升73%)。详细介绍了Simulink建模步骤,包括模糊规则设计(7语言变量、49条规则)、隶属度函数配置及自适应PI实现逻辑,并提供实机部署建议。仿真结果表明,该方法显著提升系统鲁棒性,特

MHD0815的博客 79

mysql 组复制 对比_技术分享 | MySQL 组复制数据一致性管理解析

作者:杨涛涛资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。来源于客户的一个...

weixin_39624873的博客 208

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

mgr未同步 mysql_技术分享 | MySQL 组复制数据的一致性管理解析

作者:杨涛涛资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。来源于...

weixin_35023786的博客 181

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

mysql 组复制 不一致_技术分享 | MySQL 组复制数据的一致性管理解析

来源于客户的一个问题。客户对组复制的数据一致性保障机制非常困惑,一直不太明白,其实就是对组复制参数group_replication_consistency几个值的含义不太清楚。这里我举了几个简单的例子,来说明这个参数包含的几个选项的真实含义。一、概念组复制的概念:组复制是 MySQL 基于传统的主从复制开发的一个插件。这个插件改善了原生主从复制的一些重大功能缺陷,诸如数据一致性监测管理、自动冲突...

weixin_36187176的博客 325

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

深入解析MySQL9主从复制架构详解从原理到实战优化

本文详细解析MySQL主从复制架构的核心原理、配置步骤与实战优化策略。主从复制通过二进制日志实现数据同步,支持读写分离、负载均衡与高可用性。文章涵盖异步复制、半同步复制与组复制等模式,探讨延迟问题、数据一致性及故障切换方案,并提供性能调优建议,帮助构建稳定高效的数据库架构。

ztt123654的博客 641

揭秘MySQL数据一致性:从原理到实践,助你征服大厂面试官

在当今的互联网世界中,数据是企业最为宝贵的资产之一。而保证数据的一致性、可靠性和可用性则成为了数据库系统设计的核心问题。作为最受欢迎的关系型数据库管理系统之一,MySQL通过其强大的主备复制(也称为Master-Slave复制)机制来确保数据的一致性。本文将深入解析MySQL主备复制的工作原理,并探讨如何利用这一机制应对实际场景中的挑战。

无休居士的博客 1383

Zookeeper:数据一致性保障机制解析

在分布式系统中,数据的一致性是保证系统稳定性和可靠性的关键。想象一个典型的分布式应用场景,如电商平台,当用户在多个节点上同时进行购物操作时,如何确保所有节点上的库存数据保持一致,避免出现超卖的情况?这就需要一种机制来保证全局数据的一致性。Zookeeper正是为了解决这类问题而设计的,它提供了一种分布式协调服务,确保分布式系统中数据的一致性。介绍Zookeeper知识点之全局数据一致性:概述的重要性,是因为在分布式系统中,数据的一致性是确保系统正确性和可靠性的基石。

MoneyHacksPro的博客 775

mysql innodb 数据复制_MySQL : 基于InnoDB的物理复制实现

最近有幸前去美国参加Percona Live 2016会议并分享了我们最近在MySQL复制上所做的工作,也就是基于InnoDB的物理复制。会后很多小伙伴私信我说分享的PPT太内核了,不太容易理解。因此本文主要针对分享的内容进行展开描述,希望能对大家有所帮助。背景知识在开始之前,你需要对InnoDB的事务系统有个基本的认识。如果您不了解,可以参考我之前的几篇关于InnoDB的文章,包括InnoDB的...

weixin_34556619的博客 390

dsh-purge 拆解:5 分钟看懂 DeepSeek Harness 破甲插件改了什么、怎么装、怎么干净卸载

dsh-purge 是装在 DeepSeek Harness(下称 DSH)上的红队评测插件,俗称「破甲」:把宿主层的提示词改写、审批门与沙箱策略逐条拆开,让你分清一次拒答来自模型本身还是宿主拦截。本文面向想把它装进本机 DSH、同时确认随时能退出的读者。 ## 问题一:怎么最快跑起来 ### 先核对版本:只打 0.2 系,不匹配就跳过 [package.json](https://link

gitblog_00076的博客 269

MySQL GTID复制:构建高可靠主从架构的终极指南

log-bin = /var/log/mysql/mysql-bin # GTID要求从库开启binlog。-- 关键参数:启用GTID自动定位。skip-slave-start = true # 启动时不自动开启复制。log-slave-updates = true # 关键参数!'一致', '不一致') AS status;:检查gtid_executed集合是否包含该GTID。在新主库的binlog中定位该语句的位置。:每个MySQL实例的唯一标识(位于。

XYL6AAD8C的博客 1036

MySQL高级篇:查询优化、锁机制与主从复制深入解析【含代码示例】

通过深入理解并掌握查询优化、锁机制以及主从复制,您可以更高效地管理和开发MySQL数据库,提升系统的整体性能和可靠性。查询优化是指通过对SQL语句的结构、索引的选择和使用等进行调整,以减少数据库执行查询所需的时间和资源消耗的过程。主从复制是MySQL中一种重要的数据同步机制,通过将主服务器上的所有数据更改自动复制到一个或多个从服务器上,实现数据的实时备份和读写分离,从而提高系统的可靠性和扩展性。希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 946
上一篇: 第11问:不小心对一个大表进行了 update,怎么看进度?
下一篇: 新特性解读 | binlog 压缩
爱可生开源社区
博客等级 码龄8年 1936粉丝 1004原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值