189 8069 5689

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

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

创新互联建站主要从事网站制作、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务鼓楼,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

用来查看一些执行时间比较长的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


分享标题:整理数据库日常问题处理方法
转载来源:http://jkwzsj.com/article/gccojh.html

其他资讯