首页 > 问答 > 关键词  > MySQL最新资讯  > 正文

MySQL从库实用技能教程 巧用slave_exec_mode参数

2020-07-02 10:57 · 稿源:数据库干货铺

MySQL从库实用技能教程,巧用slave_exec_mode参数。想必从库异常中断的情况不在少数,其中报错信息中 1032 及 1062 的错误占了不少的比重

错误 1032 指的是从库中找不到对应行的记录

错误 1062 指的是主键冲突

遇到此报错时,大多DBA会使用如下方法进行处理

1 手动处理

方法一: 找出引起异常的数据然后手动在从库处理后重启SQL线程继续观察;

根据报错的信息,通过mysqlbinlog解析binlog日志,找到对应的数据,然后查看从库是否缺失数据或者已存在对应主键的数据,然后手动在从库处理对应记录的数据。处理完毕后再次开启同步。

但是,后续还得观察是否再次出现错误

方法二: 手动跳过 1 个或更多个事务,然后继续观察。

/*传统点位模式复制*/SQL>setglobalsql_slave_skip_counter=1;
SQL>startsql_thread;/*GTID模式复制*/SQL>setgtid_next='e29d3917-9dbb-11e9-8b64-e4434b6e2c80:11103335-16054791';
SQL>begin;commit;
SQL>setgtid_next='AUTOMATIC';

注意,手动跳过事务的方式存在一个很大的缺点:1 个事务中存在多个sql,用此方式,本事务中的其他SQL也会被跳过(具体的和binlog-format有关,对于当前常用的ROW格式均有影响)。

2 持续跳过错误

但是,如果一直报错,但是,这些报错又可以忽略可以怎么处理,此时也有很多方法,通常使用的是如下几种:

方法一: 使用pt-slave-restart工具跳过对应错误

但是使用pt-slave-restart工具跳过报错时,必须关闭多线程复制,因为工具分不清到底哪个线程复制出了问题,然后会报类似如下的报错:

CannotskiptransactionsproperlybecauseGTIDisenabledandslave_parallel_workers>0.See'GLOBALTRANSACTIONIDS'inthetool'sdocumentation

处理步骤为:

/*暂停并行复制*/SQL>setglobalslave_parallel_workers=0;/*使用pt-slave-restart工具跳过错误(填写错误号)*/pt-slave-restart--user=root--password='Admin@123'--socket=/data/mysql3306/tmp/mysql.sock--error-numbers=1062/*不再报错时,再开启并行复制*/mysql>setglobalslave_parallel_workers=8;

方法二: 在配置文件里配置跳过指定错误

在配置文件[mysqld]项里加入参数slave-skip-errors

slave-skip-errors=1032,1062

但是,此方法存在一个致命缺点:该参数是静态参数,无法动态修改,需要修改配置文件后重启数据库方可生效。

3 幂等模式

因为手动跳过事务时,会忽略相同事务下的其他正常的SQL在从库的应用;pt-slave-restart工具需要停止多线程复制,影响从库应用速度;配置slave-skip-errors又需要重启数据库方可生效。那么有没有一种方式既不会跳过多余的SQL,又无需重启数据库也不影响从库应用SQL的速度呢?答案是有的,也就是将slave_exec_mode参数设置为IDEMPOTENT,即幂等模式(默认为严格模式STRICT)。

/*在线动态修改*/SQL>setglobalslave_exec_mode='IDEMPOTENT';

改为幂等模式后,可以忽略 1032 及 1062 的错误,对同一事务内的其他SQL无影响,依旧能正常执行。

4. 结语

本文中没有举具体案例进行实战演示,不过建议大家还是自行搭建环境进行场景复现的演示(在从库先插入部分数据或先更新部分数据),然后再在主库执行,即可出现 1062 或 1032 的错误。

很多初学者或实战经验不足的同学可能不知道该参数,因此,更加建议在多种场景下测试。

本文转载自微信公众号【数据库干货铺】。

举报

  • 相关推荐
  • 大家在看
  • Prime Intellect:AI开发规模化的民主化平台

    Prime Intellect是一个致力于AI开发规模化民主化的平台,提供全球计算资源的发现、模型训练以及共同拥有智能创新的能力。它通过分布式训练跨集群,使得用户能够训练最前沿的模型,并且共同拥有由此产生的开放AI创新成果,包括语言模型和科学突破。

  • Zed:高性能、多人协作代码编辑器

    Zed是由Atom和Tree-sitter的创造者开发的高性能、多人协作代码编辑器,开源且集成了AI代码生成功能。它利用多核心CPU和GPU,实现即时启动、快速文件加载和响应键盘输入。Zed支持GitHub Copilot,并通过内置助手面板与模型进行对话式交互,以生成或重构代码。

  • AuraFlow:开源的基于流的文本到图像生成模型

    AuraFlow v0.1是一个完全开源的、基于流的文本到图像生成模型,它在GenEval上达到了最先进的结果。目前模型处于beta阶段,正在不断改进中,社区反馈至关重要。感谢两位工程师@cloneofsimo和@isidentical将此项目变为现实,以及为该项目奠定基础的研究人员。

  • 墨狐AI:短篇小说写作助手

    墨狐AI是一个专为短篇小说创作者设计的在线写作助手,它通过提供创意大纲、续写故事、生成剧情树和剧本创作等功能,帮助作者激发灵感,提高写作效率。产品背景信息显示,墨狐AI旨在解决创作者在创作过程中遇到的难题,如灵感枯竭或故事发展困难。目前,墨狐AI的定位是辅助工具,详情可访问官网查看更多介绍。

  • LLaVA-NeXT:大型多模态模型,处理多图像、视频和3D数据。

    LLaVA-NeXT是一个大型多模态模型,它通过统一的交错数据格式处理多图像、视频、3D和单图像数据,展示了在不同视觉数据模态上的联合训练能力。该模型在多图像基准测试中取得了领先的结果,并在不同场景中通过适当的数据混合提高了之前单独任务的性能或保持了性能。

  • 老鱼简历:在线制作简历,简单高效。

    老鱼简历是一个在线简历制作平台,提供多种简历模板,支持AI生成简历,帮助用户快速制作出专业且个性化的简历。用户可以根据自己的需求选择不同的模板,并通过简单的在线编辑完成简历的制作,支持下载为PDF或PNG格式,满足不同场景的求职需求。

  • Enchanted:与私有自托管语言模型对话的iOS/macOS应用

    Enchanted是一个开源的、兼容Ollama的macOS/iOS/visionOS应用,它允许用户与私有自托管的语言模型如Llama 2、Mistral、Vicuna等进行对话。它基本上是一个连接到私有模型的ChatGPT应用界面。Enchanted的目标是提供一个产品,允许在iOS生态系统(macOS、iOS、Watch、Vision Pro)的所有设备上提供无过滤、安全、私密和多模态的体验。

  • Logo Galleria:在线AI Logo制作,快速生成个性化标志。

    Logo Galleria是一个在线AI Logo制作平台,利用人工智能技术帮助用户快速生成个性化的标志设计。它通过用户输入的行业、风格等参数,提供定制化的标志设计方案,满足不同用户的设计需求。该平台的主要优点是操作简便、设计效率高,可广泛应用于品牌建设、产品包装等场景。

  • Afforai.com:AI驱动的参考文献管理助手

    Afforai是一个AI驱动的参考文献管理助手,旨在帮助研究人员管理、注释、引用论文,并以AI的可靠性进行文献综述。它提供了一个全新的研究材料存储方式,使用户能够专注于真正重要的事情。Afforai支持多种文档格式,包括DOI、URL、PDF等,并具有多种搜索模式,可以连接数百篇论文进行总结、比较和翻译。此外,Afforai还提供数据引用,使用户能够方便地核实信息来源,确保研究的可靠性。

  • Rodel Agent:集成聊天、文本转图像、文本转语音和机器翻译的桌面应用

    Rodel Agent 是一款集成了聊天、文本到图像、文本到语音以及机器翻译功能的Windows桌面应用程序。它支持当前主流的AI服务,为用户提供了卓越的桌面AI体验。该产品的主要优点包括强大的集成功能、用户友好的界面以及对主流AI服务的支持,能够显著提高用户的工作效率和创造力。

  • DictionaryByGPT4:一本由GPT4生成的英语单词书,覆盖8000+单词

    DictionaryByGPT4是一个由GPT4模型生成的英语单词学习工具,它通过分析超过8000个单词,为每个单词提供词义、例句、词根词缀、变形、文化背景、记忆技巧和小故事等全方位信息,帮助用户深入理解单词的来源、使用场景以及记忆方法。该产品特别适合需要提升英语词汇量和理解力的学习者。

  • gpt-frontend-code-gen:前端页面生成神器,提升开发效率

    gpt-frontend-code-gen 是一个基于 React 和 Vite 构建的前端项目,结合 Koa 后端服务,实现前端页面生成并预览的功能。它使用 GPT-4 模型,支持 Chakra UI 和 ShadcnUI 组件生成,允许开发者通过对话形式持续迭代和修改页面,直到达到满意的效果。

  • OpenDiLoCo:开源实现分布式低通信AI模型训练

    OpenDiLoCo是一个开源框架,用于实现和扩展DeepMind的分布式低通信(DiLoCo)方法,支持全球分布式AI模型训练。它通过提供可扩展的、去中心化的框架,使得在资源分散的地区也能高效地进行AI模型的训练,这对于推动AI技术的普及和创新具有重要意义。

  • SmartCrawl:将任何网站转化为AI驱动的API。

    SmartCrawl是一个创新的在线工具,它允许用户将任何网站转化为API,通过AI技术实现数据的自动化抓取和处理。这项技术对于需要从网站获取数据的开发者和企业来说非常重要,因为它简化了数据集成的过程,提高了效率。产品目前处于Beta测试阶段,用户可以通过加入等待名单来获取试用机会。

  • TF-ID:学术文献中表格和图表的识别工具

    TF-ID是一个由Yifei Hu创建的用于从学术论文中提取表格和图表的对象检测模型系列。这些模型基于microsoft/Florence-2检查点进行微调,提供带或不带标题文本的版本,旨在提高学术文献信息的可访问性和处理效率。

  • FlashAttention:快速且内存高效的精确注意力机制

    FlashAttention是一个开源的注意力机制库,专为深度学习中的Transformer模型设计,以提高计算效率和内存使用效率。它通过IO感知的方法优化了注意力计算,减少了内存占用,同时保持了精确的计算结果。FlashAttention-2进一步改进了并行性和工作分配,而FlashAttention-3针对Hopper GPU进行了优化,支持FP16和BF16数据类型。

  • aTrain:一款用于离线语音转录的GUI工具

    aTrain是由格拉茨大学商业分析与数据科学中心的研究人员开发,并由格拉茨知识中心的研究人员测试的一款离线语音转录工具。它利用最新的机器学习模型,无需上传任何数据即可自动转录语音录音。aTrain在《行为与实验金融学杂志》上发表的论文中被介绍,如果用于研究,请引用该论文。它支持Windows 10和11系统,用户可以通过Microsoft应用商店或BANDAS中心网站下载安装。对于Linux系统,提供了Wiki上的安装指南。aTrain的主要优点包括无需上传数据的隐私保护、高质量的转录质量、以及在本地计算机上的快速处理速度。

  • Graphcore:AI加速器,推动人工智能的突破

    Graphcore是一家专注于人工智能硬件加速器的公司,其产品主要面向需要高性能计算的人工智能领域。Graphcore的IPU(智能处理单元)技术为机器学习、深度学习等AI应用提供了强大的计算支持。公司的产品包括云端IPU、数据中心IPU以及Bow IPU处理器等,这些产品通过Poplar® Software进行优化,能够显著提升AI模型的训练和推理速度。Graphcore的产品和技术在金融、生物技术、科研等多个行业都有应用,帮助企业和研究机构加速AI项目的实验过程,提高效率。

  • SandTech:企业级AI和数据解决方案提供商

    Sand Technologies提供企业级AI和数据解决方案,帮助公司解决实际商业问题并实现有意义的结果。公司已在该领域深耕十年,开发定制AI算法和模型,构建在可大规模管理数据的平台和基础设施上。

  • Melodisco.so:AI 音乐播放器智能推荐,发现你的音乐新世界

    Melodisco是一个基于人工智能技术的音乐播放器,通过智能推荐算法,为用户提供个性化的音乐播放体验。它能够根据用户的喜好和听歌习惯,推荐适合的音乐,帮助用户发现新的音乐风格和艺术家。产品背景信息显示,Melodisco致力于为用户提供一个全新的音乐探索平台,无论是音乐爱好者还是寻找灵感的创作者,都能在这里找到适合自己的音乐。目前产品提供免费试用,具体价格和定位信息未在页面上明确展示。

今日大家都在搜的词:

热文

  • 3 天
  • 7天