加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

如何解除sql server数据库数据被锁定

(2012-06-14 14:21:00)
标签:

解开

解锁

sql

server

2005

被锁

locked

sql2005

分类: PC服务器维护经验谈

 

解开 解锁 sql server 2005 被锁 locked  sql2005 被锁

在使用SQL数据库的时候,有时候由于数据访问的冲突会导致数据被锁定,而sql本身无法解锁,甚至重新启动数据库主机系统,也是无法解决。

那么,究竟被锁定的数据是什么呢?又是哪个进程把数据锁定了呢?下边我们来看看如何找出被锁定的数据,并且如何进行解锁。

首先发现有数据被锁定,则会有这样的现象:

 1.操作软件的某个页面时候被卡住了;

 2.在数据库查询分析器上执行操作的时候发现被锁了。

如果是以上1的情况,则可以知道执行该操作,到底是在对数据库的哪个表进行操作,并且应该可以找出具体是对该表的哪个单据(具体哪一笔数据进行操作);如果是2的情况,那就很明显了。

这个时候,打开SQL Server的控制管理器,进入:管理-活动监视器 ,如下

http://s2/middle/5d7c337cgc268d2eef741&690server数据库数据被锁定" TITLE="如何解除sql server数据库数据被锁定" />

双击“活动监视器”,可以看到里边有三个选项:如下图

http://s12/middle/5d7c337cgc268e238b04b&690server数据库数据被锁定" TITLE="如何解除sql server数据库数据被锁定" />

其中“进程信息”里边是每个进程的详细信息说明,而“依对象锁定”则是被锁定的对象的相关信息。

这时候,我们应该先找出究竟哪个进程把当前的数据给锁住了。首先通过执行软件上的操作可以判断具体去操作的哪个数据表(如果是在查询分析器里边执行操作而被锁定,那就是当前操作的表了)

如下,执行这个操作:

http://s7/middle/5d7c337cgc26957951936&690server数据库数据被锁定" TITLE="如何解除sql server数据库数据被锁定" />
这个时候会发现,SQL语句是无法执行的,因为该表被锁定了。

然后 打开数据库管理器,查看“活动监视器”里边的:进程信息 ,可以通过查看其中的“主机”来找出我们刚刚有在执行语句的进程,如下

http://s9/middle/5d7c337cgc26950b7b9f8&690server数据库数据被锁定" TITLE="如何解除sql server数据库数据被锁定" />
“主机”这个列,表示的是从哪个计算机发送过来的请求,很容易就会发现跟你计算机名字相同的记录,如上,并且双击该记录,可以显示我们在查询分析器中执行的语句。

此时,我们再注意看上图中的“资源”列,就发现这里边有一系列的编码,这个是最重要的信息,其实这个资源就是当前被锁定的资源了。我们把这个资源的编码全部记录下来,然后切换到“活动监视器”的“依对象锁定”里边去,同样里边也有“资源”列,点击该列的标题,把资源按照顺序排列,然后再从该列里边去比较,哪个记录的资源编码跟刚才发现的一致,就可以找出是哪笔记录了。

找到了具体的记录行,再看最左边的“进程标识号”即可发现到底是哪些进程把这个资源锁定了,

http://s8/middle/5d7c337cgc2698405c4d7&690server数据库数据被锁定" TITLE="如何解除sql server数据库数据被锁定" />
如上图,发现这个资源编码有被两个进程锁定,分别是150、299,这个时候,再返回到“处理信息”页面,进行解锁就可以了。(注意:强行终止进程有可能导致数据异常,要慎重考虑再执行,但是要是该数据一直都解开不了,恐怕也只有冒险了,呵呵)
http://s9/middle/5d7c337cgc2699edbffc8&690server数据库数据被锁定" TITLE="如何解除sql server数据库数据被锁定" />
如上图,右键点击该进程,可以查看它的详细信息,也可以选择“清除处理序”。

如果你执行了“清除处理序”,则锁定自然就被解开了。

到此,问题也就解决完成啦。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有