GTID复制必知:如何用sql_log_bin临时跳过特定SQL同步(MySQL 5.7/8.0实测)

MySQL 8.0主从复制部署与生产环境调优实战指南 数据库复制技术是构建高可用、可扩展数据架构的核心基础,其核心原理在于将主节点的数据变更实时同步到一个或多个从节点。这项技术通过日志(如MySQL的二进制日志)捕获和重放数据变化来实现,其核心价值在于保障数据冗余、实现读写分离以提升系统整体性能与可用性。在实际应用场景中,它广泛服务于在线业务的数据备份、报表查询分离以及构建高可用集群的基石。本文聚焦于MySQL 8.0环境,深入探讨主从复制的部署细节与生产环境调优。针对**数据一致性**这一关键挑战,文章对比了Clone Plugin、mysqldump等数据 阅读详情

GTID复制场景下的精准控制:临时屏蔽SQL同步的深度实践与避坑指南

在MySQL的主从复制架构中,GTID(全局事务标识符)的引入极大地简化了复制管理和故障恢复的流程。然而,这种“自动化”有时也会带来一些“甜蜜的负担”。想象一下这样的场景:你正在主库上执行一次紧急的数据修复,或者导入一批仅供主库使用的测试数据,你并不希望这些操作被同步到从库,以免污染从库环境或引发不必要的业务逻辑问题。在非GTID时代,我们或许可以通过sql_log_bin这个会话变量轻松实现。但在GTID复制下,事情变得微妙起来——它依然有效,但背后的机制和需要注意的细节却大不相同。本文将深入GTID复制环境,为你拆解如何安全、有效地利用sql_log_bin实现SQL同步的临时屏蔽,并分享在数据修复、环境隔离等实际场景中的高阶应用技巧。

1. 理解基石:sql_log_bin与GTID复制的交互原理

在动手操作之前,我们必须先厘清几个核心概念是如何协同工作的。这能帮助你在遇到意外情况时,快速定位问题的根源。

sql_log_bin是一个会话级别的系统变量,它控制着当前数据库连接(会话)中执行的SQL语句是否会被记录到二进制日志(binlog)中。它的默认值为ON。这里有一个至关重要的前提:它只影响当前会话。你无法通过SET GLOBAL sql_log_bin = OFF来全局关闭,这个全局变量是只读的。这意味着,你的控制粒度可以非常精细,只针对某一次特定的连接或操作。

而GTID,是MySQL 5.6版本引入的一个强大特性。它为每一个提交到主库的事务分配一个全局唯一且具有单调递增性的标识符,格式为source_id:transaction_id。从库通过比对已执行的GTID集合(Executed_Gtid_Set)来决定是否需要应用新的事务,从而实现了基于事务的复制,摆脱了对二进制日志文件名和位置的依赖。

那么,当sql_log_bin=OFF遇上GTID复制,会发生什么?

关键在于,二进制日志是GTID的载体。一个事务只有在被记录到binlog时,才会被分配一个GTID。当你将当前会话的sql_log_bin设置为OFF后,在该会话内执行的所有数据修改操作(DML)和部分数据定义操作(DDL),虽然会在主库上生效,但根本不会进入binlog的流水线。既然没有进入流水线,自然也就不会有GTID被生成和分配。

我们可以通过一个简单的对比表格来直观理解其影响:

操作场景sql_log_bin 状态Binlog 记录GTID 生成是否复制到从库
默认情况ON是是是
临时屏蔽同步OFF否否否

注意:sql_log_bin 主要影响 DML(如 INSERT, UPDATE, DELETE)和部分 DDL。对于一些必须记录的特殊操作(如某些账号管理语句),即使设置了 OFF,仍可能被记录。实践前,在测试环境验证是关键。

理解了这一层,我们就能明白,在GTID复制下使用sql_log_bin=OFF,本质上是让操作“隐身”于复制体系之外。主库的Executed_Gtid_Set不会增长,从库也就无从感知和复制这些操作。

2. 实战演练:验证与观察GTID集的静默

理论需要实践来验证。让我们通过一个完整的命令行操作流程,亲眼见证sql_log_bin如何让GTID“停止跳动”。以下操作均在MySQL 5.7或8.0的GTID复制环境主库上执行。

首先,我们建立一个基线。查看当前主库的二进制日志状态和已执行的GTID集合。

-- 查看当前二进制日志文件、位置和GTID执行情况
SHOW MASTER STATUS\G

你可能会看到如下输出(示例):

*************************** 1. row ***************************
             File: mysql-bin.000002
         Position: 154
     Binlog_Do_DB:
 Binlog_Ignore_DB:
Executed_Gtid_Set: 3a8df5e8-f76c-11ed-8b1a-02001701a450:1-47

记下当前的Position(例如154)和Executed_Gtid_Set(例如...:1-47)。这意味着已经执行了47个事务。

接下来,我们开启一个专门用于测试的会话,并关闭该会话的binlog记录功能。

-- 在新会话中,关闭当前会话的binlog记录
SET sql_log_bin = OFF;

-- 确认设置已生效
SELECT @@sql_log_bin;

SELECT语句应该返回 0,表示OFF状态。

现在,执行一些数据修改操作。为了安全起见,我们最好在一个专门创建的测试表中进行。

-- 创建测试表(如果不存在)
CREATE TABLE IF NOT EXISTS test_gtid_skip (
    id INT AUTO_INCREMENT PRIMARY KEY,
    data VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 插入一条测试数据
INSERT INTO test_gtid_skip (data) VALUES ('This data will NOT be replicated');

-- 可以再执行一个更新操作
UPDATE test_gtid_skip SET data = CONCAT(data, ' - updated') WHERE id = LAST_INSERT_ID();

操作执行成功后,在主库上查询该表,数据已经存在。关键步骤来了:我们再次检查主库状态。

-- 再次查看主库状态(可以在原会话,也可以在新会话)
SHOW MASTER STATUS\G

仔细观察输出:

  • File 和 Position 很可能没有变化(可能还是 mysql-bin.000002 和 154)。
  • Executed_Gtid_Set 也没有变化,依然是 ...:1-47。

这个现象完美印证了我们的理论:在sql_log_bin=OFF的会话中执行的操作,没有产生新的binlog事件,因此没有新的GTID被分配,主库的GTID集合停滞不前。从库会一直等待GTID ...:48,但它永远不会到来,因为主库压根没生成它。

最后,别忘了重新打开binlog记录,以免影响后续正常操作。

-- 重新开启当前会话的binlog记录
SET sql_log_bin = ON;
SELECT @@sql_log_bin; -- 确认返回 1

3. 核心应用场景:何时需要按下“同步暂停键”

掌握了基本操作后,我们来看看哪些具体的、真实的生产或测试场景会需要用到这个“同步暂停键”。正确识别场景,比单纯记忆命令更重要。

场景一:主库数据修复与后台维护 这是最经典的应用。当主库因为程序BUG、误操作导致部分数据出现逻辑错误时,你需要一个“手术台”进行精细修复。例如,批量修正一批用户的账户状态字段。你希望:

  • 修复过程对业务影响最小,通常直接在主库进行。
  • 修复脚本可能多次试错,你不希望这些中间状态甚至错误的修正语句被同步到从库,造成数据混乱。
  • 只有在最终验证修复结果完全正确后,才允许后续的正常操作被同步。

这时,在一个独立连接中,先SET sql_log_bin = OFF,执行你的修复脚本,验证数据,确认无误后,再SET sql_log_bin = ON。整个修复过程对从库完全透明。

场景二:测试数据注入与环境隔离 在开发或测试阶段,你需要在主库(或模拟主库的环境)上构造一些特定的测试数据,用于压力测试、功能验证或故障演练。但这些数据纯粹是为了测试目的,绝对不能污染线上从库的数据一致性。例如:

  • 为性能测试,批量生成数百万条模拟用户数据。
  • 导入一个包含复杂业务逻辑的测试数据库快照。
  • 执行一些会触发从库特定警告或错误的DDL语句进行兼容性测试。

在这些操作前关闭sql_log_bin,可以确保你的测试沙箱与复制链路彻底隔离。

场景三:规避特定语句的复制副作用 有些SQL语句在主库执行是安全的,但在从库的复制应用上下文中可能会引发问题。一个不太常见但确实存在的例子是,某些依赖于当前服务器UUID或特定环境变量的函数。虽然更推荐从库上设置sql_log_bin来跳过,但在某些紧急情况下,也可以在主库执行时临时关闭。

重要提示:sql_log_bin 并非银弹。对于需要跨多语句保持原子性的复杂修复,或者涉及多个相关表的更新,单纯关闭binlog可能不够。你需要考虑事务的完整性。这时,需要结合我们下一节要讲的“事务内限制”来设计更稳妥的方案。

4. 高级议题与避坑指南:事务、DDL与长期影响

就像任何强大的工具一样,sql_log_bin也有其使用边界和陷阱。了解这些,能让你从“会用”进阶到“精通”。

第一大坑:事务内部的禁地 这是MySQL明确规定的限制:你不能在一个活跃的事务内部(START TRANSACTION之后,COMMIT或ROLLBACK之前)更改sql_log_bin的值。 尝试这样做会立即收到一个错误。

START TRANSACTION;
SET sql_log_bin = OFF; -- 错误!ER_CANT_CHANGE_SQL_LOG_BIN_INSIDE_TRANSACTION

这意味着,如果你的数据修复逻辑本身就需要包裹在一个事务里以保证原子性(这很常见),那么“关闭binlog -> 执行修复 -> 开启binlog”这个流程就无法简单地放在同一个事务中。怎么办?

解决方案是采用“会话级控制,事务内操作”的模式:

  1. 在开始修复连接时,首先 SET sql_log_bin = OFF;(此时尚未开启事务)。
  2. 然后 START TRANSACTION;,执行你的所有修复语句。
  3. 确认无误后 COMMIT;。
  4. 最后 SET sql_log_bin = ON;。

这样,整个事务内的操作都不会被记录。但请务必小心,这种操作一旦提交就无法通过常规复制回滚,务必先在测试环境充分验证。

关于DDL的特别说明 对于DDL语句(如CREATE, ALTER, DROP),情况略有不同。在MySQL 5.7及以后版本,大多数DDL语句是隐式提交的,并且其binlog记录行为可能更复杂。虽然sql_log_bin=OFF通常也能阻止DDL被复制,但强烈建议对于重要的结构变更,采用pt-online-schema-change等在线变更工具,或在从库上先行测试,而非依赖此变量。

长期影响与状态管理 sql_log_bin是会话级别的。这意味着:

  • 它不会影响其他已经存在的连接。
  • 当你关闭连接后,新连接的sql_log_bin默认值恢复为ON。
  • 你需要非常清楚当前会话的状态。一个良好的习惯是,在执行完不希望复制的操作后,立即显式地将其设回ON,或者使用编程语言连接池时,在特定任务代码块的首尾显式设置。

为了避免混淆,可以在执行关键操作前,通过一个简单的查询来确认状态:

-- 在执行任何操作前,先确认当前会话的binlog记录状态
SELECT @@sql_log_bin AS current_binlog_state;

与其它复制过滤规则的协同 你的系统可能还配置了binlog-do-db、binlog-ignore-db或者从库上的replicate-*过滤规则。需要理解的是,sql_log_bin=OFF的优先级非常高。如果SQL没有被记录到binlog,那么后续所有基于binlog的过滤规则都将失效,因为根本就没有需要过滤的事件。它是复制链条上最早的一环控制。

5. 替代方案与策略选型:不只是sql_log_bin

虽然sql_log_bin在会话级临时控制上非常方便,但它并非解决“不同步”问题的唯一工具。根据不同的场景和管控粒度,我们还有其他选择。

方案对比:不同需求下的工具选择

方案控制层级适用场景GTID影响优点缺点
SET sql_log_bin = OFF会话级临时、精细化的操作屏蔽(如单次修复、测试数据导入)不生成GTID控制精准,即时生效,无需重启仅限当前会话;需注意事务限制
从库 sql_slave_skip_counter从库全局跳过从库复制遇到的特定错误(如重复键)跳过指定数量GTID事件用于故障恢复,可跳过错误基于事件计数,在GTID下需谨慎,已逐渐被gtid_next方式替代
从库设置 gtid_next会话级高级故障恢复,手动注入或跳过特定GTID事务直接操作GTID执行集合最精确的GTID级别控制操作复杂,风险高,需深刻理解GTID
复制过滤规则库/表级永久性过滤某些库或表的复制(如不同步日志表)被过滤的事务仍会生成GTID配置一次,长期生效粒度较粗;配置需重启或动态加载;可能增加主库负载

如何选择?

  • 临时性、操作性的屏蔽:首选 sql_log_bin。比如你正在写的这个一次性数据修复脚本。
  • 永久性的结构隔离:使用复制过滤规则。比如audit_log表永远不需要复制到从库。
  • 从库复制错误恢复:在GTID模式下,优先使用基于gtid_next的恢复方法,而不是传统的sql_slave_skip_counter。
  • 模拟特定故障或测试:可能需要结合使用。例如,先在主库用sql_log_bin=OFF制造数据差异,再测试从库的自动修复能力。

一个综合案例:安全的数据清洗流程 假设你需要清洗主库users表中一批无效的邮箱记录,这是一个涉及多步骤的敏感操作。

  1. 准备阶段:在从库或测试环境,完全模拟清洗逻辑,确保SQL无误。
  2. 执行阶段(主库):
    • 开启一个新的数据库连接。
    • 立即执行 SET sql_log_bin = OFF; 和 SELECT @@sql_log_bin; 确认。
    • START TRANSACTION; -- 开启事务保证原子性。
    • 执行清洗SQL(例如 UPDATE users SET email = NULL WHERE email LIKE '%@deleted.com' AND last_login < '2020-01-01';)。
    • SELECT ROW_COUNT(); -- 查看影响行数,确认符合预期。
    • 如果一切正常,COMMIT;。
    • SET sql_log_bin = ON; -- 恢复。
  3. 验证阶段:在从库查询对应条件的数据,确认清洗操作没有被同步。在主库验证数据已更新。

这个流程融合了事务的原子性和sql_log_bin的同步屏蔽,形成了一个相对安全的手术方案。

回过头看,sql_log_bin这个看似简单的变量,在GTID复制架构下扮演了一个精准的“流量开关”角色。它赋予我们在复杂运维场景下一种难得的控制力。但记住,能力越大,责任越大。每一次关闭binlog记录,都意味着你正在主库上执行一段“隐形”的操作,这些操作会脱离复制的高可用保护伞。因此,清晰的流程、充分的测试、以及操作后对主从状态的双重校验,应当成为你的标准动作。把它当作你工具箱里的一把精密手术刀,用在最合适的场景,而非一把随意挥舞的锤子。

DigitalOcean MySQL 5.7到8.0平滑迁移实战指南 MySQL版本升级是数据库运维中的基础性技术动作,其核心在于理解版本间兼容性原理与托管平台的架构约束。MySQL 8引入了CTE、窗口函数、JSON_TABLE等关键能力,但重大版本升级并非简单配置变更,而需兼顾元数据结构差异、字符集演进、binlog格式变化及权限模型重构等多维技术价值。在DigitalOcean Managed Databases这类不可变基础设施环境中,原地升级被明确禁止,必须采用新建集群+逻辑同步+流量切换的工程化路径,以保障RPO=0与业务零感知。本文聚焦真实生产环境下的MySQL 阅读详情

相关推荐

MySQL主从复制故障排查:深度解读SHOW SLAVE STATUS核心字段与实战指南

数据库主从复制是构建高可用架构、实现读写分离与负载均衡的核心技术。其原理基于二进制日志(binlog)的数据同步机制,通过IO线程和SQL线程的协同工作,将主库的数据变更实时应用到从库。这项技术的核心价值在于提升系统的可用性、扩展数据读取能力,并为备份容灾提供支持,广泛应用于电商、金融、社交等需要高并发访问和数据可靠性的业务场景。要确保复制链路稳定,关键在于精准监控其运行状态。通过解析SHOW SLAVE STATUS命令的输出,可以全面掌握复制线程状态、同步坐标、延迟指标等关键信息。例如,Slave_IO

weixin_34353714的博客 544

GTID复制必知:sql_log_bin的5个隐藏陷阱与实战测试

本文深度解析MySQL GTID复制中sql_log_bin参数的5个关键陷阱,包括数据静默丢失、事务内限制、DDL操作影响等。通过实战测试与原理剖析,揭示了该参数如何影响GTID生成与主从数据一致性,并提供了安全使用模式与监控告警方案,帮助DBA规避高可用架构中的数据风险。

weixin_29271263的博客 174

430单片机实现三人投票表决器_基于单片机的五人表决器的设计

姚海云+马野摘要:本设计利用51单片机,按键开关模块,数码管显示模块和LED模块来实现一个简单的五人表决器的功能。按键开关模块中的键2~键6表示五个人,由5个人来投票,当同意的票数大于或者等于3人时,数码管显示同意的人数,说明表决通过。当表决的人数小于3时,数码管显示同意的人数。关键词:表决器;单片机;流水灯;数码管;矩阵键盘;时钟中图分类号:TP391 文献标识码:A 文章编号:1009-304...

weixin_33277215的博客 2558

folia-major 安装指南:几分钟点亮全屏歌词动画

刚拿到 folia-major(Folia 歌词动画播放器)安装包、想尽快在桌面端看到全屏歌词动画的人看这篇。全程三步:装好应用、接上音源、点播放。跟下来大概几分钟,屏幕上会出现跟随节奏铺满窗口、逐句推进的歌词动画。 ## Windows 安装 **取包**:打开 [README.md](https://link.gitcode.com/i/687943d6e72b65782a9a8acd1f

gitblog_00695的博客 948

X3850x6 6241 fireware固件升级

登录联想https://datacentersupport.lenovo.com/cn/zc网站,选择system x,x3850 x6,type选择6241 选择驱动及应用程序,BIOS/UEFI 选择lnvgy_fw_uefi_a9e156a-4.90_anyos_32-64.uxz 文件,点击下载 选择IMM2, 下载lnvgy_fw_imm2_tcoo58b-5.80_anyos_noarch.uxz ps:3837和3839会跳转到ibm网站下载 笔记本直连.

zds00virtue的博客 5453

【SWAT水文模型】SWAT-CUP参数率定与模型验证实战指南

本文提供了SWAT水文模型参数率定与模型验证的完整实战指南。详细介绍了如何使用SWAT-CUP工具,特别是SUFI-2算法,进行自动化参数校准,并阐述了模型验证的关键步骤以避免过度拟合。内容涵盖从工程搭建、核心参数选择、迭代优化到结果分析与常见问题排查的全流程,旨在帮助用户提升SWAT模型模拟的准确性与可靠性。

weixin_29072299的博客 499

基于centos7.9安装mysql8主从

基于centos7.9搭建mysql8数据库主从、互为主从,不使用ssl认证连接

m0_56363537的博客 964

泰凌微8258入门教程 基础篇①——Bluetooth® SIG Mesh 快速上手

Bluetooth® SIG Mesh Quick Start

6729

mysql复制出现问题【GTID模式】

非GTID模式下 当BIN-LOG里面出现错误导致主从不能同步的时候, -- 错误状态的部分截图 mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.41.141

Happywzy~的博客 546

YOLOv8 智能交通违章检测 - 压线/越线行驶检测详解

本文提出了一种基于YOLOv8的智能交通违章检测方案,重点解决车辆压线/越线行驶的识别问题。系统采用多技术融合方案:YOLOv8检测车辆、ByteTrack跟踪轨迹、传统或深度学习方法识别车道线,并通过几何计算判断车辆是否违规跨越实线。文章详细介绍了技术难点(如车道线分类、透视变形处理)、判定流程、系统架构和核心代码实现,包括车道线检测、违章逻辑判断和可视化模块。同时指出了现有方案的局限性,建议通过引入逆透视变换和专用车道线分割模型来提升准确率。该纯视觉方案具有低成本、易部署的特点,适用于智能交通监控场景。

u010117029的博客 175

PCIe 全解析笔记:从协议本质到工程实现

学习 PCIe,最容易陷入的误区是直接跳进协议手册(Base Spec 1300 多页),然后在 TLP 字段、LTSSM 状态、Ordering Rules 中迷失方向。正确的思维路径历史维度:从 PCI 到 PCIe,解决了什么核心矛盾?抽象维度:协议栈分层的真正意图是什么?工程维度:高速串行链路面临哪些物理挑战?协议如何应对?系统维度:作为 CPU 与外设的"动脉",PCIe 如何融入整个计算机体系?带着这四个视角去看每一个细节,知识才能内化为认知。

m0_46644103的博客 261

mysql gtid深入_深入理解MySQL 5.7 GTID系列(八):GTID带来的运维改变

依托前文的解析来讲5.7中 GTID带来的运维改变,我想理解应该是更加深刻,这节主要讨论以下几个部分:如何跳过一个事务mysqldump导出行为的改变5.7中搭建基于GTID的主从5.7中GTID的主从的切换5.7中在线改变GTID模式一、如何跳过一个事务和传统基于位置的主从不同,如果从库报错我们需要获得从库执行的最后一个事务,方法有如下:show slave status \G 中的 Execu...

weixin_29913191的博客 292

【ACP】2025-最新-疑难题解析-1

即用户手动释放时,因实例释放保护开启,不会释放该 ECS 实例(不同云厂商具体实现有差异,但题目场景下选 C )。结合题目中标记,答案为。综上,答案选 B。综上,答案选 C。综上,答案选 D。综上,答案选 A。综上,答案选 A。综上,答案选 C。综上,答案选 D。综上,答案选 A。

jundao1997的专栏 364

mysql gtid寻找位置_GTID,你了解多少?

全局事务标识符(Global Transaction Identifier,GTID)是MySQL5.6版本开始在主从复制方面推出的重要特性,它是一个已提交事务的编号,并且是全局唯一编号,不仅是在主库上,在给定的复制设置中的所有数据库上,它都是唯一的。GTID是由server_uuid和事务id组成,格式为GTID=server_uuid:transaction_id。其中server_uuid是...

weixin_35639750的博客 999

【图像超分】论文精读:Accelerating the Super-Resolution Convolutional Neural Network(FSRCNN)

作为应用于图像超分辨率 (SR) 的成功深度模型,超分辨率卷积神经网络 (SRCNN) [1,2] 在速度和恢复质量方面都比以前的手工制作的模型表现出更好的性能。然而,高计算成本仍然阻碍了它的实际使用,这需要实时性能(24 fps)。在本文中,我们旨在加速当前的 SRCNN,并提出了一种紧凑的沙漏形 CNN 结构,以实现更快和更好的 SR。我们从两个方面重新设计了SRCNN结构。首先,我们在网络末端引入了一个反卷积层,然后将映射直接从原始低分辨率图像(无插值)学习到高分辨率图像。其次,我们通过在映射之前缩小

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

阿里云mysql gtid_深入理解MySQL 5.7 GTID系列(八):GTID带来的运维改变

依托前文的解析来讲5.7中 GTID带来的运维改变,我想理解应该是更加深刻,这节主要讨论以下几个部分:如何跳过一个事务mysqldump导出行为的改变5.7中搭建基于GTID的主从5.7中GTID的主从的切换5.7中在线改变GTID模式一、如何跳过一个事务和传统基于位置的主从不同,如果从库报错我们需要获得从库执行的最后一个事务,方法有如下:show slave status \G 中的 Execu...

weixin_31484881的博客 172

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

MySQL——GTID模式应用及数据恢复

GTID介绍 GTID(Global Transaction Identifier)全局事务标识。由主库上生成的与事务绑定的唯一标识,这个标识不仅在主库上是唯一的, 在MySQL集群内也是唯一的。GTID在MySQL 5.6.2版本中开始支持到现在已经非常完善了,它相对于之前版本基于Binlog文件+Position和GTID的主从复制,数据一致性更高,主从数据复制更健壮,主从切换、故障切换出错率...

nmb_jiang的博客 4989

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

mysql gtid坑_数据库mysqldump的坑

今天的坑主要来自于 执行mysqldump命令时,参数的设置。主要涉及的参数为sql_log_bin基于mysql5.7进行分析一.bin_logbin_log就是数据库的日志文件,记录了数据库的操作,它主要用于2个功能bin_log主要有2个作用1:数据恢复 如果你的数据库出问题了,而你之前有过备份,那么可以看日志文件,找出是哪个命令导致你的数据库出问题了,想办法挽回损失2.复制主从服务器之间同...

weixin_42557537的博客 565

MySQL8.0新版GTID主从同步异常修复

MySQL8.0.22+废弃传统SLAVE语法,全面采用REPLICA新命令管理主从同步,默认开启GTID强一致复制,废弃事务跳过计数器。新版GTID同步异常主要分为主键冲突、GTID越界、日志断层、并行回放错乱四类。冲突事务采用空事务注入安全跳过,GTID越界通过RESET REPLICA轻量修复,日志断层对齐gtid_purged解决,复杂错乱通过MASTER_AUTO_POSITION自动重建同步。新版内核校验更严格,需统一使用新语法、开启从库强只读,保障主从数据稳定一致。

只要肯攀登,终有登顶时 424

MySQL gtid purge_一言不合就干货,这次是MySQL5.7 GTID运维实战

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloudGTID 和 START SLAVESTART SLAVE 语法START SLAVE [thread_types] [until_option] [connection_options]如何从multi-threaded slave 转化成 single-threaded modeSTART SLAVE UNT...

weixin_30518613的博客 477

MySQL 8.0主从复制实战:从零搭建高可用数据库架构

数据库高可用架构是保障业务连续性的核心技术,其核心原理是通过数据复制实现多副本冗余。MySQL主从复制作为最经典的技术方案,通过二进制日志(Binary Log)实现异步数据同步,为读写分离、负载均衡和故障恢复提供基础支撑。在工程实践中,合理配置主从复制能有效提升系统扩展性和数据安全性,尤其适用于应对业务增长带来的性能瓶颈。本文基于MySQL 8.0版本,详细解析主从复制的部署流程与运维要点,涵盖服务器规划、GTID配置、半同步复制等关键环节,并针对复制延迟、数据一致性等常见问题提供解决方案,帮助开发者构建

weixin_34327761的博客 424

深入理解MySQL 5.7 GTID系列(八):GTID带来的运维改变

导 读作者:高鹏(重庆八怪)原文地址:https://www.jianshu.com/p/caae9a019dbd深入理解MySQL 5.7 GTID系列文章共十篇,本文为第四篇,第一篇:深入理解MySQL 5.7 GTID系列(一)第二篇:深入理解MySQL 5.7 GTID系列(二):GTID相关内部数据结构第三篇:深入理解MySQL 5.7 GTID系列(三):GTID的生成时机第四篇:深入

老叶茶馆 2594

mysql开启gtid并配置主从

/如果用户已存在,会改密码,如果不存在会直接创建这个用户,所以不需要create user单独创建用户。1.主从都在/etc/my.cnf中加入并重启服务。2.在从库10.153.35.5中执行。默认主从都开启了bin log.2.在主库创建用户并授权。3.在从库开启复制线程。3.在从库开启复制线程。

liys0811的博客 569

mysql8 主从 HA切换

salve: 原理: 主从复制能工作,全靠三个在不同服务器上各司其职的线程,它们配合默契,缺一不可。流程详解:提交事务:应用在主库执行,数据首先被写入主库的数据表。记录Binlog:事务提交后,这条语句会被记录到主库的二进制日志(Binlog)中。传输Binlog:主库的Binlog Dump线程检测到Binlog有更新,立即将新内容推送给从库。接收并暂存:从库的IO线程收到数据后,会写入从库自己的中继日志(Relay Log) 中。重放并应用:从库的SQL线程会一直监控中继日志,一有新的内容,就

码农崛起 350

mysql主从复制配置

可以开黑框启动,也可以作为服务启动。我这里用的是mysqld --console启动黑框。里面的一个uuid一样。所以要删除auto.cnf。并且重启mysql。注意,从库配置了3307端口,因为我在一台机器上测试。注意观察端口,主库是3306,从库是3307。#授权用户复制的权限(从服务器ip)执行如下两个命令,并且记住其中的内容。因为我是两个mysql拷贝的,因为我是两个mysql拷贝的。因为我是两个mysql拷贝的。我用navcate操作。也可以用命令行创建用户。显示成功yes,yes。

weixin_39766667的博客 875

GTID,你了解多少?

全局事务标识符(Global Transaction Identifier,GTID)是MySQL5.6版本开始在主从复制方面推出的重要特性,它是一个已提交事务的编号,并且是全局...

qq_24432315的博客 414
上一篇: SPEED2000避坑手册:电源完整性仿真中SSN噪声分析的5个关键设置
下一篇: PLC编程入门:从电路图到S7-1200自锁程序的全过程解析
珊珊333333
博客等级 码龄16年 83粉丝 1375原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值