码迷,mamicode.com
首页 > 数据库 > 详细

数据库问题处理

时间:2020-07-20 13:11:02      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:active   like   red   running   sql   大量   strong   更新   eating   

一、表被破坏

1.  问题报错:table is marked as crashed and should be repaired

 

2.  解析: 某些不可测的问题造成表的损坏(频繁查询和更新)。进而造成无法读取数据。

3.  处理:

check table tbname  -- 用来检查出现问题的表的状态,出现错误就正常(tbname--出现错误的表)

repair table tbname  -- 修理
check table tbname  -- 用来检查是否修理好

4. 情景 :由于同事清理一个二十多G的表直接使用 truncate tbname 清理,导致数据库进程堵塞,然后表被破坏。(原因不一定是这个原因,但结果是这个结果)

 

二、进程堵塞

1. 问题 wait millis 60000, active 50, maxActive 50, creating 0, runningSqlCount 41

2.  解析: 数据库活动的连接数与最大连接数相同,连接用完了,在等待新的连接,却没有新连接可用,然后超时了

3.  处理:查询数据库进程

show full processlist; -- 查看数据库进程

kill 528094; -- 杀死堵塞进程(进程编号)

4. 情景 :数据库表被破坏,然后修改表的sql进程堵塞,造成死锁,复制堵塞语句,杀死堵塞进程,修复表,运行进程语句

 

总结:不当操作引起 ,表坏了,阻塞了进程!!

 

清空大量数据表技巧:

 

create table a like b ; -- 复制表结构
drop table b ;  -- 彻底删除
alter table a rename to b ; -- 重命名空表 

 

数据库问题处理

标签:active   like   red   running   sql   大量   strong   更新   eating   

原文地址:https://www.cnblogs.com/dztHome/p/13344276.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!