轻微有些范围的网站,基本上都邑设置mysql主从复制,一方面用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、innodb_flush_logs_at_trx_commit = 1
2、innodb-support_xa = 1 # Mysql 5.0 以上
3、innodb_safe_binlog # Mysql 4.0
同时在从数据库上面引荐到场下面两个参数
1、skip_slave_start
2、read_only
以上是在Mysql搭建的主从环境下涌现题目的解决方法,愿望对人人有所协助。
相干文章:
Mycat读写星散在MySQL主从复制基础上完成的实例
怎样应用docker疾速构建MySQL主从复制环境的概况引见
以上就是从以下几个方面来处置惩罚,MySQL主从复制不一致的题目的细致内容,更多请关注ki4网别的相干文章!