整理数据库日常问题处理方法

发布时间:2020-04-28 23:51:34 作者:shaiberni
来源:网络 阅读:301

select from information_schema.processlist where INFO is not null and INFO not like 'select from information_schema.processlist%' order by time,db \G

用来查看一些执行时间比较长的sql,根据执行时间递增排序

show engine innodb status\G
可以用来查看死锁,事务执行状态,锁等待等信息

userstat相关监控命令:
flush USER_STATISTICS;
flush TABLE_STATISTICS;
set global long_query_time=0;
flush logs;
show processlist;

select from information_schema.USER_STATISTICS where user not in('admin',,'monitor','#mysql_system#')\G
select
from information_schema.TABLE_STATISTICS where table_name not in ('mysql','db')\G

数据库延迟处理:
1.数据库延迟情况可能如下:a.主库执行一个大的修改数据的SQL导致;b.主库并发写入量突增;c.从库上的查询或者其它操作导致磁盘io或者cpu瓶颈或者锁;d.从库硬件问题导致性能很低
2.处理:
a.让研发知晓情况,并建议将大的操作拆成小的操作,避免再次出现
b.如果经常出现,因主从不可以扩展写,那就找RD沟通确认,业务上不能控制写入的话,就准备拆库操作
c.通知RD相关情况,如果是必须的sql,可以讲这些sql放到专门的统计库上执行,调高报警阈值解决,否则让研发拆分或者下线sql。如果是锁例如是MDL,这需要kill掉相应的查询后释放锁来解决。
d.如果还有从库,可以考虑停机修复该从库,如果没有,需要紧急重新部署一台新从库后进行修理

杀掉匹配某个sql的连接
pt-kill --match-command Query --busy-time 5 --host dbxx --port 5002 --interval --print --kill --victims all --match-info="select distinct(Issue_label)"

杀掉正在进行filesort的sql
pt-kill --match-command Query --match-state "Sorting result" --busy-time 5 --host *.*.. --port 5002 --interval 2 --print --kill --victims all -uduzq -p

推荐阅读:
  1. 日常SQL数据库死锁跟踪及处理
  2. 前端日常问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

数据库 dba 日常问题

上一篇:关于WEBGL的那点破事

下一篇:F5命令

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》