主从复制发生错误长时间未处理导致主服务器性能降低 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
S4msara
V2EX    MySQL

主从复制发生错误长时间未处理导致主服务器性能降低

  •  
  •   S4msara 2023-10-09 15:41:23 +08:00 1631 次点击
    这是一个创建于 800 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    前两天某项目客户反馈系统卡顿,同事开始接手处理,对 MySQL 配置进行了缓存及线程部分参数的调整,直至昨天下午仍未解决卡顿问题。昨天下午我开始介入,复盘近期该项目所作的变更及发生的事件,想起在问题发生前几天同时反馈主从复制失效,当时上服务器执行show slave status看到 Error Code: 1677 ,当时综合考虑客户系统使用情况,决定暂不处理,也并未执行stop slave暂停复制。解决卡顿问题的第一件事就是先确定问题是发生在哪个环节,由于是全面卡顿,于是用 Arthas 先 trace 了一个较复杂的接口,发现耗时 99%都是集中在数据库访问,至此已经确认问题是出现在数据库,于是尝试关闭主从复制:stop slave并修改主服务器配置文件,将主从复制相关配置注释掉(想着晚上客户停用系统了再重新配置,于是把 binlog 也通过purge删掉了),重启 MySQL ,重启项目,暴力测试并观察了半个小时,未发生卡顿问题。

    今早又出现卡顿,检查发现主从复制又报错了,stop slave没一会儿就恢复了……


    环境说明

    两套系统和 MySQL(主)部署在同一台服务器(Windows Server),同局域网还有一台服务器部署了 MySQL(从)用于数据备份。


    疑问

    翻看 MySQL Reference Manual ,里面写基于 binlog 的复制是异步的,如图:

    https://imgur.com/a/CyTMzrs

    因此我认为主从复制线程不影响读写线程。

    于是我开上到网上找原因,有相关文章提到 binlog 过长占用磁盘而影响到了 IO 性能,这个可能性似乎不大,我在昨天删除 binlog 文件前还看了一下文件大小,基本在 500kb 以下。

    所以想请教大家,是什么原因导致 MySQL 主从复制在发生错误时导致了对 master 的查询(Query)性能大幅下降?

    5 条回复    2023-10-10 08:35:19 +08:00
    tool2d
        1
    tool2d  
       2023-10-09 16:03:29 +08:00
    Error Code: 1677 ,一般来说就两个原因,一个是数据类型被改动了。另一个是非法关机,导致数据库有小部分损坏,需要手动修复一下数据库。

    你说查询慢,我猜测可能是断电引起的。
    S4msara
        2
    S4msara  
    OP
       2023-10-09 16:13:14 +08:00
    @tool2d 1677 的原因是 cannot be converted from type 'varchar(2000)' to 'varchar(255)',是因为当时在主库执行建表语句的时候未指定字符集,而主服务器配置了默认的字符集是 utf8mb4 ,从服务器配置的默认字符集是 utf8 。服务器近期未断电维护。
    lvzhiqiang
        3
    lvzhiqiang  
       2023-10-09 16:31:46 +08:00
    是物理还是虚拟机,先监测 IO 和 CPU 使用率看看,特别是 IO 读写耗时
    S4msara
        4
    S4msara  
    OP
       2023-10-09 16:33:37 +08:00
    @lvzhiqiang 物理机,在异常发生时查看了 IO 和 CPU 负载情况,均正常。
    lvzhiqiang
        5
    lvzhiqiang  
       2023-10-10 08:35:19 +08:00
    @S4msara iowait 这个这个 值,结合 io 利用率看看。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2850 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 14:26 PVG 22:26 LAX 06:26 JFK 09:26
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86