记录一次生产中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 是否变化。

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

相关推荐
Nturmoils4 分钟前
集中式与分布式怎么选:从订单读写看 KingbaseES 的架构边界
数据库
xiaomuzuirenzhen13 分钟前
大专电子商务从事电商运营分析师需要考证吗?
大数据·数据库
翔云1234563 小时前
RocksDB中,客户端每写入一次数据,需要访问几次磁盘
运维·数据库·mysql
DevOpenClub3 小时前
职教高考控制线 API:招生类别枚举、筛选与空分数含义
java·数据库·高考
GeW4 小时前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux·数据库
在多学一点6 小时前
MYSQL第二次作业
android·数据库·mysql
yeccheng6 小时前
MySQL 索引超详解:从底层 B+ 树到面试高频考点
java·开发语言·jvm·mysql·面试
Risehuxyc6 小时前
Microsoft.Data.Sqlite体验
数据库·sqlite
骑着蜗牛撵大象3276 小时前
MySQL 8.0 迁移后 SQL 变慢:执行计划里 3 类被忽略的成本差异
android·数据库·sql·mysql·优化器·执行计划
ZENERGY-众壹7 小时前
告警风暴怎么压?100MW 电站监控平台告警引擎架构复盘
数据库·架构·iot·电站监控