数据库某个进程一直处在KILLED/ROLLBACK 状态达2天,求解决办法

nzperfect 2008-05-22 11:24:19
sp_who2 active结果如下:

456 SUSPENDED sa host_a . STS KILLED/ROLLBACK
456 SUSPENDED host_a 456 STS KILLED/ROLLBACK
456 SUSPENDED host_a . STS KILLED/ROLLBACK
456 SUSPENDED host_a 456 STS KILLED/ROLLBACK
456 SUSPENDED host_a 456 STS KILLED/ROLLBACK
456 SUSPENDED host_a . STS KILLED/ROLLBACK

生产的原因:
我的进程是456
我create index ix_1 on table(x1,x2,x3,x4) with(online=on),持续7分钟未成功,然后点停止,持续N外没有完成,
然后我kill 456
结果就造成了上面的情况,并且持续了2天,现在我的这个表已经被锁,不能update insert delete

求解决办法,前提是服务不能重启。被自己愁死了快
请大家帮忙。多谢
...全文
3021 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
drysea 2009-09-21
  • 打赏
  • 举报
回复
我也碰到了类似问题,谢谢

还好还没有结项,只能重启了看来
seahi 2008-06-18
  • 打赏
  • 举报
回复
路过,mark,以备查阅
zjcxc 2008-05-23
  • 打赏
  • 举报
回复
目前能够找到的方法只有重新启动
nzperfect 2008-05-23
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 zjcxc 的回复:]
目前能够找到的方法只有重新启动
[/Quote]
感谢老大回复。
感谢各位!
pt1314917 2008-05-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 happyflystone 的回复:]
关注
[/Quote]
tektite 2008-05-22
  • 打赏
  • 举报
回复
试试联机帮助上的这一段

Transact-SQL 命令 KILL <spid>。根据 SQL Server 的状态,KILL 命令并非一定会成功。如果失败,则唯一的选择是重新启动 SQL Server。下面是一般的指导原则。


通过查询 select * from sys.dm_exec_sessions where session_id = <spid> 来验证 SPID 是否已被终止。如果没有返回任何行,则表明会话已被终止。


如果会话仍在运行,则通过运行查询 select * from sys.dm_os_tasks where session_id = <spid> 来验证是否为此会话分配了任务。如果发现还有任务,则很可能当前正在终止会话。请注意,此操作可能会持续很长时间,也可能根本不会成功。


如果在与此会话关联的 sys.dm_os_tasks 中没有任何任务,但是在执行 KILL 命令后该会话仍然出现在 sys.dm_exec_sessions 中,则表明没有可用的工作线程。选择某个当前正在运行的任务(在 sys.dm_os_tasks 视图中列出的 sessions_id <> NULL 的任务),并终止与其关联的会话以释放工作线程。请注意,终止单个会话可能不够,可能需要终止多个会话。
-狙击手- 2008-05-22
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 happyflystone 的回复:]
backup ????
[/Quote]


[Quote=引用 9 楼 happyflystone 的回复:]
试试dump trans
[/Quote]
hery2002 2008-05-22
  • 打赏
  • 举报
回复
漂移~,
貌似这种情况很难搞!
期待高手,
-狙击手- 2008-05-22
  • 打赏
  • 举报
回复
backup ????
nzperfect 2008-05-22
  • 打赏
  • 举报
回复
事务日志是15分钟备一次的
-狙击手- 2008-05-22
  • 打赏
  • 举报
回复
清空日志再截断一把看看
nzperfect 2008-05-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 tektite 的回复:]
456真的杀掉了吗?



SQL codeselect * from sys.dm_exec_sessions where session_id=456



查看一下
[/Quote]

肯定没杀掉的
-狙击手- 2008-05-22
  • 打赏
  • 举报
回复
试试dump trans
tektite 2008-05-22
  • 打赏
  • 举报
回复
456真的杀掉了吗?


select * from sys.dm_exec_sessions where session_id=456


查看一下
liangCK 2008-05-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 Limpire 的回复:]
强烈关注
[/Quote]
nzperfect 2008-05-22
  • 打赏
  • 举报
回复
重启应该可以解决,但目前的情况是不可有重启。
多谢各位顶起,希望遇到过的朋友帮忙,快愁死了
nzperfect 2008-05-22
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 happyflystone 的回复:]
联机帮助中的:

根据 SQL Server 的状态,KILL 命令并非一定会成功。如果失败,则唯一的选择是重新启动 SQL Server


哈哈
[/Quote]

在网上找了下,基本上都是要重启,邹老大也说过一次,要重启。
再等等,实在不行找机会重启。
Limpire 2008-05-22
  • 打赏
  • 举报
回复
强烈关注
tektite 2008-05-22
  • 打赏
  • 举报
回复
学习
-狙击手- 2008-05-22
  • 打赏
  • 举报
回复
关注
加载更多回复(5)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧