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