跳转至

22. 主从复制-SQL线程故障

1.故障原因

1.读写relay-log.info
2.relay-log损坏、断节、找不到
3.接收到的SQL无法执行
    1.要创建的数据库对象已存在
    2.要删除或修改的数据库对象不存在
    3.DML语句不符合表定义及约束

#归根结底的原因:从库发生了写入操作!

2. 模拟故障:从库写入

#1.登录从库,创建数据库m
create database m;

show slave status\G
#此时一切正常
#2.登录主库,创建数据库m
create database m;

#3.登录从库,查看状态
show slave status\G
#此时,sql线程报错

3. 处理方法

#以从库为核心的处理方案
stop slave;
set global sql_slave_skip_counter=1;
start slave;

/etc/my.cnf
slave-skip-errors=1032,1062,1007

#以上操作有风险,最安全的做法就是:重新构建主从!!!

#把握一个原则,一切以主库为主。

4. 万金油的解决方案

#将从库设定为只读库

set global read_only=1;

/etc/my.cnf
[mysqld]
read_only=1
#对管理员也生效的命令
innodb_read_only=1; #待验证

最后更新: 2022-02-20 08:44:07