当前位置: 首页 > news >正文

MySQL8主从数据库复制故障

MySQL8主从数据库复制故障

检查从库的状态,发现 Slave_IO_Running :Yes ,Slave_SQL_Running :No
报错信息如下:

Coordinator stopped because there were error(s) in the worker(s). … Worker 1 failed executing transaction …

SQL 线程在回放事务时遇到异常,复制被自动挂起。 MySQL 8 并行复制(slave_parallel_workers > 0)最常见的报错样式。

一、定位分析错误
  1. 登录从库
mysql> SELECT * FROM performance_schema.replication_applier_status_by_worker;

最后一行会出现类似:

1146 Worker 1 failed executing transaction ‘d841e3f6-8e07-11f0-aad4-00d861733003:15155609’ at master log mybinlog.000334, end_log_pos 11343248; Error executing row event: ‘Table ‘db.ts_list’ doesn’t exist’

  1. 可以直接看错误日志
grep -A5 "d841e3f6-8e07-11f0-aad4-00d861733003:15155609" mysqld.err

日志里会打印 具体 SQL / 事件类型errno

3.处理方式:
在主库上找到 表 ts_list 的创建表语句,在从库上执行创建表;

mysql> stop slave ;
mysql> start slave;
mysql> show slave status;
mysql> show processlist;

停止同步,启动同步,检查状态,看是否
Slave_IO_Running :Yes
Slave_SQL_Running :Yes
检查同步进程是否运行。

二、另外常见错误
场景日志典型片段出现原因处理方案
1. 主键/唯一键冲突Duplicate entry 'xxx' for key 'PRIMARY'主从数据已不一致:主库 insert 时从库已有该行pt-table-checksum / table-sync 确认是否只有这一行差异;
仅差异一行:SET GLOBAL sql_slave_skip_counter=1; START SLAVE;SKIP_TRANSACTION
差异很多:重建从库或在线修复。
2. 行找不到(1032)Could not execute Delete_rows / Update_rows … Can't find record主库 delete/update 时从库已无该行同上,用 pt-table-sync 修复后再次启动 SQL 线程;
临时应急可 sql_slave_skip_counter=1
3. 外键约束失败(1452)Cannot add or update a child row: a foreign key constraint fails从库外键检查严格(slave_skip_errors 未忽略 1452)且数据缺失父行① 确认 foreign_key_checks=1 导致;
② 先修复父表数据;
③ 或临时 SET GLOBAL foreign_key_checks=OFF; START SLAVE; 再补齐数据。
4. 列不存在或类型不符Unknown column 'col_new' … / Incorrect integer value主库已 DDL(加列/改列),从库未执行或执行失败① 手动在从库补跑缺失 DDL;
② 确保 log_slave_updates=ON 且 DDL 在 binlog 里;
③ 若 GTID 连续可 STOP/START SLAVE 重新拉取。

三、MySQL 8 推荐修复步骤(GTID 环境)
  1. 找到错误号
mysql> SELECT LAST_ERROR_NUMBER, LAST_ERROR_MESSAGE
FROM performance_schema.replication_applier_status_by_worker
WHERE WORKER_ID=1;
  1. 若确定只有 单事务 有问题,可 注入空事务跳过(无需重启):
-- 在主库执行
SET GTID_NEXT='d841e3f6-8e07-11f0-aad4-00d861733003:15155609';
BEGIN; COMMIT;
SET GTID_NEXT='AUTOMATIC';

然后从库自动继续。

四、预防配置建议
[mysqld]
slave_parallel_workers=4              # 并行复制
slave_parallel_type=LOGICAL_CLOCK
slave_preserve_commit_order=ON
binlog_transaction_dependency_tracking=WRITESET
slave_skip_errors=0                   # 除非确定要忽略指定错误码
log_slave_updates=ON                  # 级联/故障切换必备
gtid_mode=ON                          # 方便跳过事务
五、总结

报错是复制挂起,真正原因要去 replication_applier_status_by_worker 或错误日志里看 errno/消息
大部分的错误可能是 **数据不一致 → 主键冲突/1032/1452 ,按错误号,对于处理方法解决。

http://www.dtcms.com/a/549893.html

相关文章:

  • 阿里、腾讯、百度同台拆解AICoding
  • 皋兰县城乡和住房建设局网站金昌市建设局官方网站
  • 网站开发的标准流程室内设计联盟课堂
  • 学习PLC编程与PLC的总线
  • Rust 闭包:定义、捕获(深入理解)
  • Arbess零基础学习,安装与快速入门
  • 天河怎样优化网站建设vi设计步骤流程
  • 做网站要不要用jsp遵义建设厅官方网站 元丰
  • NGINX 集群负载与配置管理
  • OpenStack虚拟化平台之T版搭建部署
  • 东软专业力考试--Java基础语法部分
  • 从企业开发到AI时代:Java的新征程与技术蜕变
  • 株洲做网站建设广东上海专业网站建设公司排名
  • 上海专业建网站简历免费模板下载
  • 两数之和
  • 扩展阅读:什么是Pandas?
  • 怎样注册网站域名html5响应式模板
  • ☆本博客Simulink/FPGA/Matlab/RK3588等系统开发教程总目录
  • ThingsBoard如何设置仪表板初始默认实体
  • 记一次Gb28181视频流异常的排查
  • JavaScript 03 【基础语法学习】
  • Java项目2——拼图小游戏(上)
  • 深圳住房和建设局网站 申请大连工程信息招标网
  • uni-app VOD 与 COS 选型、开发笔记
  • Spring WebSocket实战:实时通信全解析
  • 网站建设及推广方案ppt模板互联网时代的营销
  • 身份证三要素实名核验API:基于OCR与可信身份认证的技术解析
  • OCR-图片内容识别
  • wordpress 网址导航页面济南seo网站关键词排名
  • VM虚拟机共享宿主机代理(Ubuntu24.04)