mysql设置双1保证数据库一致性#Olivia丶长歌#

原创 于 2018-05-16 16:44:19 发布 · 349 阅读
· 0
· 0 ·
CC 4.0 BY-SA版权
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

MySQL知识 专栏收录该内容
11 篇文章
订阅专栏
本文介绍如何通过配置MySQL主从复制来确保数据的一致性和减少数据丢失的风险。通过对主从服务器上的特定参数进行调整,如设置innodb_flush_log_at_trx_commit和sync_binlog,以及使用InnoDB引擎和relay_log_recovery选项,可以有效防止因crash导致的数据不一致。同时,文章还提及了使用pt-table-checksum和pt-table-sync工具进行数据校验和修复的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       在MySQL中,一次事务提交后,需要写undo、写redo、写binlog,写数据文件等等。在这个过程中,可能在某个步骤发生crash,就有可能导致主从数据的不一致。为了避免这种情况,我们需要调整主从上面相关选项配置,确保即便发生crash了,也不能发生主从复制的数据丢失。

1. 在master上修改配置

innodb_flush_log_at_trx_commit = 1

sync_binlog = 1

    上述两个选项的作用是:保证每次事务提交后,都能实时刷新到磁盘中,尤其是确保每次事务对应的binlog都能及时刷新到磁盘中,只要有了binlog,InnoDB就有办法做数据恢复,不至于导致主从复制的数据丢失。

2. 在slave上修改配置

master_info_repository = "TABLE"

relay_log_info_repository = "TABLE"

relay_log_recovery = 1

     前两个选项的作用是:确保在slave上和复制相关的元数据表也采用InnoDB引擎,受到InnoDB事务安全的保护,而后一个选项的作用是开启relay log自动修复机制,发生crash时,会自动判断哪些relay log需要重新从master上抓取回来再次应用,以此避免部分数据丢失的可能性。

         通过上面几个选项的调整,就可以确保主从复制数据不会发生丢失了。但是,这并不能保证主从数据的绝对一致性,因为,有可能设置了ignore\do\rewrite等replication规则,或者某些SQL本身存在不确定因素,或者人为在slave上修改数据,最终导致主从数据不一致。这种情况下,可以采用pt-table-checksum 和 pt-table-sync 工具来进行数据的校验和修复。

确定要放弃本次机会?
福利倒计时
: :

立减 ¥

普通VIP年卡可用
立即使用
Olivia丶长歌
关注 关注
  • 0
    点赞
  • 踩
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
  • 分享
    复制链接
    分享到 QQ
    分享到新浪微博
    扫一扫
  • 举报
    举报
专栏目录
参与评论 您还未登录,请先 登录 后发表或查看评论
Olivia丶长歌

博客等级

码龄14年
26
原创
10
点赞
34
收藏
9
粉丝
关注
私信

热门文章

  • [ERROR] InnoDB: Plugin initialization aborted with error Generic error几种报错#Olivia丶长歌# 32910
  • 如何查询MySQL数据库IO过高和用户压力#Olivia丶长歌# 8639
  • MySQL中max_used_connections设置#Olivia丶长歌# 8275
  • Windows下的MySQL实例没有mysql.user表#Olivia丶长歌# 8044
  • 如何修改MySQL实例的UUID#olivia丶长歌# 2721

分类专栏

  • 云平台
  • MySQL工作记录
    13篇
  • MySQL知识
    11篇
  • Mycat知识
    3篇
  • 分布式
    1篇
  • 引擎
    1篇
  • tomcat&mycat
    1篇

展开全部 收起

上一篇:
InnoDB: Error: io_setup() failed with EAGAIN after 5 attempts#Olivia丶长歌#
下一篇:
MyCat日常监控命令#Olivia丶长歌#

最新评论

  • [ERROR] InnoDB: Plugin initialization aborted with error Generic error几种报错#Olivia丶长歌#

    甜心美少女: 第一个问题的解决方案是什么,看不懂呀

大家在看

  • 珍藏版,全网也难找,赶紧保存!
  • 76、深度学习的高级模型【用Python进行AI数据分析进阶教程】 616
  • 77、强化学习的基本原理和应用场景【用Python进行AI数据分析进阶教程】 327
  • 使用 Simulink + Robotics System Toolbox 搭建一个移动机器人的避障算法模型 280
  • 医院挂号预约小程序|基于微信小程序的医院挂号预约系统设计与实现(源码+数据库+文档)

最新文章

  • [ERROR] InnoDB: Plugin initialization aborted with error Generic error几种报错#Olivia丶长歌#
  • SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object#Olivia丶长歌#
  • mycat之server.xml参数详解#Olivia丶长歌#
2018年28篇

目录

展开全部

收起

目录

展开全部

收起

上一篇:
InnoDB: Error: io_setup() failed with EAGAIN after 5 attempts#Olivia丶长歌#
下一篇:
MyCat日常监控命令#Olivia丶长歌#

分类专栏

  • 云平台
  • MySQL工作记录
    13篇
  • MySQL知识
    11篇
  • Mycat知识
    3篇
  • 分布式
    1篇
  • 引擎
    1篇
  • tomcat&mycat
    1篇

展开全部 收起

目录

评论
被折叠的  条评论 为什么被折叠? 到【灌水乐园】发言
查看更多评论
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值