sql数据库如何解锁呢

sql数据库如何解锁呢,第1张

你先查一下你的数据表示不是锁表了。

select sesssid,

sessserial#,

looracle_username,

loos_user_name,

aoobject_name,

lolocked_mode

from v$locked_object lo,

dba_objects ao,

v$session sess 

where aoobject_id = loobject_id and losession_id = sesssid

通过以上sql就可以知道哪个进程、序列,oracle用户名、 *** 作系统用户名、表名、锁表模式几个字段

下面一步就是将改锁表的进程和序列杀掉了,执行下面的语句即可。

alter system kill session '1020,38953' --(1020,就是执行第一步语句得到的sid字段值,38953就是serial#字段值)

详细的请参照:网页链接

1、找到并进入运行窗口:(可以用windows+r快捷键哦)输入sqlplus命令:如图

2、进入新窗口后使用scott/tiger用户和密码进行登录会发现登录不成功:如图

3、这时我们可以使用system用户进行登录,应为此用户的权限排第二,并且密码我们已经在安装时输入了了,所以是可以登录进入的:如图

4、system登录成功之后就可以使用命令给用户进行解锁了:如图

5、最后再用scott/tiger用户时,你可以神奇的发现此时能连接成功了:如图

用下面的语句检查数据库锁,然后kill 掉产生锁的进程就ok了。

查锁:

select nvl(SUSERNAME,'Internal') username,

nvl(STERMINAL,'None') terminal,

LSID||','||SSERIAL# Kill,

U1NAME||''||substr(T1NAME,1,20) tab,

decode(LLMODE,1,'No Lock',

2,'Row Share',

3,'Row Exclusive',

4,'Share',

5,'Share Row Exclusive',

6,'Exclusive',null) lmode,

decode(LREQUEST,1,'No Lock',

2,'Row Share',

3,'Row Exclusive',

4,'Share',

5,'Share Row Exclusive',

6,'Exclusive',null) request

from V$LOCK L,

V$SESSION S,

SYSUSER$ U1,

SYSOBJ$ T1

where LSID = SSID

and T1OBJ# = decode(LID2,0,LID1,LID2)

and U1USER# = T1OWNER#

and STYPE != 'BACKGROUND'

order by 1,2,5

杀锁:

alter system kill session 'sid,#serial';

sid和#serial用前面查询到的结果替换。

以上就是关于sql数据库如何解锁呢全部的内容,包括:sql数据库如何解锁呢、怎样给oracle数据库的用户解锁、数据库中某条数据被锁了。如何解锁等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9500390.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存