0
点赞
收藏
分享

微信扫一扫

sqlserver 排查及处理行锁 DBCC OPENTRAN

事件起因:一个用户提交不了业务数据
故障表现

select from bstable where id=xxx;
select count(1) from bstable;
上面两个查询超时。
select
from usertable with(nolock) where id=xxx;
加上with(nolock) 正常。

故障分析
因为with(nolock) 可以执行,且别的操作这个表的用户正常
所以判断应该是行锁导致数据异常。

故障处理
DBCC OPENTRAN 查询未提交的事务id
然后kill 掉这个事务id。

检查
select * from usertable where id=xxx;
select count(1) from usertable;
执行正常,用户业务正常。

总结:事务提交异常,假死的事务导致了行锁,杀掉可恢复

注意事项:判断是行锁,故障状态已经修复,没有sql证明是行锁

举报

相关推荐

0 条评论