基本上用了mysql作为oltp业务的,基本上都会配置mysql的主从,一方面用mysql的主从做数据库的读写分离,另一方面mysql本身的单机备份不是很强,一般采用主从架构,在从上进行数据备份。
在这过程中或多或少出现一些主从不同步的情况,本文将对数据主从不同步的情况进行简单的总结,在看这篇文章请注意了本文主要从数据库层面上探讨数据库的主从不一致的情况,并不对主从的本身数据不一致引起的主从不同步进行说明:
1.网络的延迟
由于mysql主从复制是基于binlog的一种异步复制,通过网络传送binlog文件,理所当然网络延迟是主从不同步的绝大多数的原因,特别是跨机房的数据同步出现这种几率非常的大,所以做读写分离,注意从业务层进行前期设计。
2.主从两台机器的负载不一致
由于mysql主从复制是主上面启动1个io线程,而从上面启动1个sql线程和1个io线程,当中任何一台机器的负载很高,忙不过来,导致其中的任何一个线程出现资源不足,都将出现主从不一致的情况。
3.max_allowed_packet设置不一致
主上面设置的max_allowed_packet比从大,当一个大的sql语句,能在主上面执行完毕,从上面设置过小,无法执行,导致的主从不一致。
4.key自增键开始的键值跟自增步长设置不一致引起的主从不一致。
5.mysql异常宕机情况下,如果未设置sync_binlog=1或者innodb_flush_log_at_trx_commit=1很有可能出现binlog或者relaylog文件出现损坏,导致主从不一致。
6.mysql本身的bug引起的主从不同步。
7.版本不一致,特别是高版本是主,低版本为从的情况下,主上面支持的功能,从上面不支持该功能。
以上是我遇到的一些主从不同步的情况。或许还有其他的一些不同步的情况,请说出你所遇到的主从不一致的情况。
基于以上情况,先保证max_allowed_packet,自增键开始点和增长点设置一致,再者牺牲部分性能在主上面开启sync_binlog,对于采用innodb的库,推荐配置下面的内容
1
2
3
|
innodb_flush_logs_at_trx_commit = 1 innodb-support_xa = 1 # Mysql 5.0 以上 innodb_safe_binlog # Mysql 4.0 |
相关推荐
本主题将深入探讨MySQL主从不一致的原因、检查方法以及修复策略,旨在帮助数据库管理员有效地解决这类问题。 一、主从不一致的原因 1. 网络延迟:网络不稳定或延迟可能导致主库的更新未及时同步到从库。 2. 错误的...
然而,由于网络故障、硬件故障或配置错误等原因,主从服务器之间的数据可能会发生不一致。因此,需要定期进行一致性检查并采取相应措施修复数据差异。本文将详细介绍如何进行MySQL主从一致性检查和修复,以及相关...
在应用场景和业务限制方面,MySQL主从同步虽然有诸多好处,但并不适合所有的业务场景。例如在需要极高一致性的场景下,主从同步可能会存在光速问题,即数据传播速度的物理限制,或者更新延迟问题,导致数据同步不够...
### Linux下MySQL主从同步配置详解 #### 一、引言 在数据库管理领域,MySQL主从同步是一种常见的数据复制技术,它可以帮助我们构建高可用性和数据冗余性,从而提高系统的稳定性和可靠性。本文将详细介绍如何在Linux...
MySQL主从复制中的1062错误是数据一致性问题的一个常见标志,需要及时识别并处理。通过理解错误原因、熟悉解决策略以及采取预防措施,我们可以有效管理和维护主从复制环境,确保数据的完整性和系统的稳定性。在处理...
本文将深入探讨基于Mycat的MySQL主从配置与读写分离的详细步骤,并结合【心跳问题heartbeat bug #393】和【bug407:修复主从状态监控和读写分离】的修复进行讲解。 首先,理解Mycat的工作原理至关重要。Mycat作为...
MySQL主从同步过程中可能会遇到“延迟”问题,即从服务器未能及时跟上主服务器的更新速度,导致数据不一致。主要原因包括: 1. **主库更新多线程:** 主服务器可能同时执行多个写操作,而从服务器默认情况下只使用...
#### 一、MySQL主从同步基本流程 在MySQL中,主从同步是一种常见的数据复制机制,用于实现数据的高可用性和负载均衡。其基本流程主要包括以下几个步骤: 1. **Master端**:在Master服务器上,每当有数据更改操作时...
LNH_MySQL 14-企业生产场景MySQL主从复制故障原因及实战解决.mp4
下面将详细介绍MySQL主从架构的基本概念、搭建步骤以及日常管理。 **1. 主从复制的概念** 在MySQL主从复制中,数据更改操作(如INSERT、UPDATE、DELETE)首先在“主”服务器上执行,然后这些更改被记录到二进制日志...
### 超简单MySQL主从复制 #### 一、引言 在数据库管理领域,MySQL因其易用性、稳定性和强大的功能集而受到广泛欢迎。其中,“MySQL主从复制”是一项重要的技术,它通过将一个MySQL服务器(主服务器)的数据复制到一...
#### 一、MySQL主从复制原理及延时原因 在互联网技术领域中,MySQL数据库作为重要的数据存储系统之一,其主从复制机制被广泛应用于实现读写分离、数据备份等多种场景。但在数据量庞大且并发量高的环境下,主从延时...
1. **检查日志**:首先查看主从服务器的错误日志,确定出现问题的具体原因。 2. **重置复制**:如果是因为数据不一致导致的问题,可以通过重置复制状态(Reset Slave)的方式来解决。 3. **数据修复**:对于数据损坏...
### MySQL主从同步备份 #### 一、MySQL主从同步的作用与原理 ##### 作用 MySQL主从同步机制主要用于实现以下几种应用场景: 1. **数据分布**:通过将数据复制到多个从服务器,可以在不同地理位置分发数据,提高...
MySQL主从复制是一种数据库高可用性和负载均衡的技术,它允许数据从一个主数据库(Master)实时同步到一个或多个从数据库(Slave)。这种复制过程确保了数据的安全性,并且为应对高并发场景提供了架构扩展的可能性。...
MySQL主从复制是数据库高可用架构中的一项重要技术,其主要目的是实现数据的备份、读写分离以及扩展数据库的负载能力。...因此,对于希望在生产环境中部署MySQL主从复制的管理员而言,深入理解这些知识点是必不可少的。
- **原因**:两边数据不一致,在复制同步过程中发现对方库中存在相同的主键,导致同步失败。 - **解决方法**: - 修改MySQL配置文件`/etc/my.cnf`,在`[mysqld]`下添加一行`slave_skip_errors = 1062`。 - 保存并...