MST

星途 面试题库

面试题:MySQL备库数据改变常见问题及一般解决方案

在MySQL主从复制架构中,备库数据出现改变但与主库不一致,可能由哪些常见原因导致?针对这些原因,通常有哪些初步的解决方案?
35.0万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试

常见原因

  1. 网络问题:主从之间网络延迟、丢包等,导致主库二进制日志(binlog)不能及时、完整传输到从库。
  2. 主库并发事务:主库上高并发事务执行,在从库应用中继日志(relay log)时,由于并行复制策略等原因,可能出现顺序不一致。
  3. 从库配置问题:例如从库的存储引擎、字符集等配置与主库不一致,导致数据存储和处理方式有差异。
  4. 数据修改操作:在从库上直接进行数据修改操作,而不是通过主库同步过来的变更。
  5. 主库故障恢复:主库发生故障后恢复,可能出现部分事务在从库应用异常。
  6. 复制过滤规则:配置了复制过滤规则,但规则设置不合理,导致部分数据未正确同步。

初步解决方案

  1. 网络问题:检查网络连接,使用ping、traceroute等工具排查网络延迟和丢包,优化网络环境。确保主从库之间网络稳定。
  2. 主库并发事务:调整从库的并行复制策略,如设置合理的slave_parallel_workers参数。查看主从库的日志,分析事务执行顺序差异并进行调整。
  3. 从库配置问题:对比主从库的配置参数,确保存储引擎、字符集等关键配置一致。如有差异,修改从库配置并重新初始化复制。
  4. 数据修改操作:避免在从库上直接进行数据修改,若已修改,需根据业务需求,在主库上执行相同操作并重新同步数据。
  5. 主库故障恢复:检查主库故障恢复后的日志,对比从库中继日志,找出未正确应用的事务,手动应用或重新初始化复制。
  6. 复制过滤规则:检查复制过滤规则,确保规则配置正确,不会误过滤需要同步的数据。必要时调整过滤规则并重新初始化复制。