意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

sqlserver 排查及处理行锁 DBCC OPENTRAN

来源:恒创科技 编辑:恒创科技编辑部
2023-12-14 20:22:59

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

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

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


sqlserver 排查及处理行锁 DBCC OPENTRAN

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

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

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

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

上一篇: 阿里云有奖体验:如何使用 PolarDB-X 下一篇: 了解SQL