当前位置: 首页 > 知识库问答 >
问题:

mysql主从同步时,如果出现网络闪断,如何保证主从同步的正确性、完整性的?

庞修贤
2023-07-06

如题,面试的时候被问到了这个问题。
我只回答了binlog,可以根据offset或gtid进行同步,不知道有没有回答到重点上

共有1个答案

伍溪叠
2023-07-06
  1. 检查主库和从库的同步状态:可以使用 SHOW SLAVE STATUS 命令查看从库的同步状态,并确认从库当前是否处于同步中。如果从库当前没有执行任何操作,可以使用 STOP SLAVE 命令停止同步,等待网络恢复后再次启动同步。
  2. 检查主库和从库的日志文件和位置信息:在网络恢复后,需要检查主库和从库的二进制日志文件位置信息是否一致,如果不一致,需要手动修复从库的数据。
  3. 启用半同步复制:半同步复制可以确保主库和从库之间的数据一致性,即只有当主库将数据写入至少一个从库后,才认为该操作已成功完成。这可以避免在网络闪断时主从数据不一致的情况。
  4. 启用 GTID 复制GTID 复制可以确保主库和从库之间的数据完整性,即使在网络闪断的情况下,也可以保证从库能够正确地恢复数据。GTID 复制使用全局事务标识符(GTID)来标识主库和从库之间的数据复制关系,从库不需要手动指定二进制日志文件和位置信息,而是根据 GTID 自动恢复数据,避免了手动修复数据的麻烦。

注意:启用半同步复制和 GTID 复制需要 MySQL版本大于 5.5.9


至于你说的binlog是mysql 主从复制的原理,而不是具体的解决方案.

 类似资料:
  • 本文向大家介绍MySQL是如何实现主备同步,包括了MySQL是如何实现主备同步的使用技巧和注意事项,需要的朋友参考一下 主备同步,也叫主从复制,是MySQL提供的一种高可用的解决方案,保证主备数据一致性的解决方案。 在生产环境中,会有很多不可控因素,例如数据库服务挂了。为了保证应用的高可用,数据库也必须要是高可用的。 因此在生产环境中,都会采用主备同步。在应用的规模不大的情况下,一般会采用一主一备

  • 问题内容: 我在Linode服务器上运行了docker。有时,我看到码头上的时间不正确。目前,我已经在每个docker中更改了运行脚本,以包括以下代码行。 但是,我理想地希望做的是docker应该与主机同步时间。有没有办法做到这一点? 问题答案: 该答案的来源是对该答案的注释:docker容器会自动与主机同步时间吗? 查看答案后,我意识到docker容器上不会发生时钟漂移。Docker使用与主机相

  • 在LMAX中断器模式中,复制器用于将输入事件从主节点复制到从节点。因此,设置可能如下所示: 主节点的复制器将事件写入DB(尽管我们可以想到比写入DB更好的机制,但这对问题陈述并不重要)。从节点的接收器从DB读取数据,并将事件放入从节点的环形缓冲区。 从节点的输出事件将被忽略。 现在,主节点的业务逻辑处理器有可能比从节点的业务逻辑处理器慢。例如,主节点的BL可以位于插槽102处,其中as从节点可以位

  • 本文向大家介绍zookeeper 怎么保证主从节点的状态同步?相关面试题,主要包含被问及zookeeper 怎么保证主从节点的状态同步?时的应答技巧和注意事项,需要的朋友参考一下 zookeeper 的核心是原子广播,这个机制保证了各个 server 之间的同步。实现这个机制的协议叫做 zab 协议。zab 协议有两种模式,分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后,z

  • 问题内容: 我正在编写自己的ContentProvider,它将使用SyncAdapter同步到Web服务。 当同步适配器修改内容提供者的数据时,问题会发生,当内部调用getContentResolver()。notifyChange导致同步循环时,提供者触发网络同步。 客户端应用程序进行修改时,需要带有网络同步标志的notifyChange,但在修改同步适配器时应避免使用notifyChange

  • 面试题 你们有没有做 MySQL 读写分离?如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题? 面试官心理分析 高并发这个阶段,肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是 app,其实都是读多写少。所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗