mysql主从故障分析_MySQL主从不一致的几种故障总结分析、解决和预防

(1).主从不一致故障,从库宕机,从库启动后重复写入数据报错

解决与预防:

relay_log_info_repository=TABLE

(InnoDB)

参数解释说明:

若relay_log_info_repository为FILE,当设置为0,交由OS刷新磁盘,受参数sync_relay_log_info的影响,默认为10000次刷新到磁盘;

若relay_log_info_repository为TABLE,且为INNODB存储,则无论为任何值,则都每次event都会更新表。

relay_log_info_repository=table可以避免relay.info更新不及时,SLAVE 重启后导致的主从复制数据重复插入报错问题。

修改步骤:

1. stop slave;

2. set global relay_log_info_repository=’TABLE’;

或在my.cnf中设置:

relay_log_info_repository = TABLE

(2).主从不一致故障,主库宕机

解决与预防:

方法1:主库启动后,binlog补全即可

方法2:Innodb_flush_log_at_trx_commit=1

Innodb_flush_log_at_trx_commit参数值说明如下:

0 - 每一秒将修改记录同步到日志(磁盘)中,commit的时候不同步

1 - 每次事务commit都将修改记录同步到日志(磁盘)中

2 - 每次事务commit都将修改写入到操作系统cache中,然后每一秒将修改记录同步写入到日志(磁盘)中

方法3:应用程序双写

方法4:应用程序写日志

方法5:MySQL半同步(semi sync)

(3).主从不一致故障,从库数据被修改

通常报错总结如下:

ERROR:1032

从库找不到要删除的数据

ERROR:1062

从库插入数据,发生唯一性冲突

ERROR:1452

无法在外键的表插入或更新参考主键没有的数据

解决与预防:

1.设置用户权限

2.设置从库只读权限

set global read_only=true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值