面试题答案
一键面试常见原因
- 网络问题:主从之间网络延迟、丢包等,导致主库二进制日志(binlog)不能及时、完整传输到从库。
- 主库并发事务:主库上高并发事务执行,在从库应用中继日志(relay log)时,由于并行复制策略等原因,可能出现顺序不一致。
- 从库配置问题:例如从库的存储引擎、字符集等配置与主库不一致,导致数据存储和处理方式有差异。
- 数据修改操作:在从库上直接进行数据修改操作,而不是通过主库同步过来的变更。
- 主库故障恢复:主库发生故障后恢复,可能出现部分事务在从库应用异常。
- 复制过滤规则:配置了复制过滤规则,但规则设置不合理,导致部分数据未正确同步。
初步解决方案
- 网络问题:检查网络连接,使用ping、traceroute等工具排查网络延迟和丢包,优化网络环境。确保主从库之间网络稳定。
- 主库并发事务:调整从库的并行复制策略,如设置合理的slave_parallel_workers参数。查看主从库的日志,分析事务执行顺序差异并进行调整。
- 从库配置问题:对比主从库的配置参数,确保存储引擎、字符集等关键配置一致。如有差异,修改从库配置并重新初始化复制。
- 数据修改操作:避免在从库上直接进行数据修改,若已修改,需根据业务需求,在主库上执行相同操作并重新同步数据。
- 主库故障恢复:检查主库故障恢复后的日志,对比从库中继日志,找出未正确应用的事务,手动应用或重新初始化复制。
- 复制过滤规则:检查复制过滤规则,确保规则配置正确,不会误过滤需要同步的数据。必要时调整过滤规则并重新初始化复制。