记录一次生产中mysql主备延迟问题处理

登录库: mysql -uXXXX -p'XXXX' -P3306 -hXXXXXX -A

备库上执行:show slave status\G

查看 seconds_Behind_Master,延迟 2705s,而且还一直在增加。

复制代码
SHOW CREATE TABLE proc_i_income_temp;  -- 查看表的结构
show index from proc.proc_i_income_temp;  --查询表是否有索引

发现表是没有创建索引。

使用mysqlbinlog获取当前卡住的binlog日志里的具体sql

把/data/mariadb/mysql-relay-bin.000336文件路径换成你数据库实际的binlog日志路径,然后输出到一个文本里找到对应的sql。

mysqlbinlog --base64-output=decode-rows -v /data/mariadb/mysql-relay-bin.000336 > out.sql

知道具体的执行语句后,根据具体执行的 sql 对执行的表进行索引创建。

查询表的行数

复制代码
select count(*) from proc.proc_i_income_temp;

使用 distinct 去重,发现字段 boss_serial_number,适合做索引字段。

在备库中停止复制进程,stop slave

创建索引

在拉起复制进程,start slave

检查 relay_log_pos 是否变化。

再检查主备延迟情况,主备延迟瞬间恢复。

相关推荐
Json____几秒前
五金制品行业-企业官网源码
java·大数据·数据库·企业站·wwwoop.com
深念Y2 小时前
Opencode Event 表写入优化方案
数据库·人工智能·ai·node.js·bug·优化·opencode
竹枝溪2 小时前
MySQL进阶:约束、多表设计、多表查询与事务
java·数据库·mysql·事务·子查询·acid·多表查询
技术长镜头2 小时前
别再只会“加索引”:从磁盘页到 B+Tree,彻底理解 MySQL 索引的设计与运行
后端·mysql
weixin_431600443 小时前
NestJS 入门(9):连上数据库,SQL 写在哪?
数据库·后端·sql·学习·nest.js
math_hongfan3 小时前
一对多的数据库姻缘:ArkTS 为鸿蒙订单设计外键与明细表
数据库·华为·harmonyos
城管不管3 小时前
MySQL 慢查询完整排查
java·服务器·jvm·数据库·mysql·spring·面试
XLYcmy3 小时前
PDF论文处理器 - 功能总结
数据库·python·pdf·csv·pymupdf·dify·文本分割
树码小子3 小时前
MySQL 的事务隔离级别(重点面试题)
数据库·mysql
01_ice3 小时前
MySQL表的约束
数据库·sql·mysql