sqlserver2008存储过程如何解锁

sqlserver2008存储过程如何解锁,第1张

在DB2的命令行中输入:

update monitor switches using lock on table on

然后打开另一个DB2命令窗口执行我的那个被吊死的Update语句。

然后在第一个DB2命令窗口执行: [@more@]get snapshot for locks on Database_Name(你的数据库的名字)> locksTXT

然后,可以看到第一个DB2的窗口有一个信息输出,把这些信息输出到TXT中,大致如下:

应用程序句柄 = 36

应用程序标识 = AC100C47IC0500F6C6095828

序号 = 0246

应用程序名 = javaexe

CONNECT 授权标识 = DB2ADMIN

应用程序状态 = UOW 正在等待

状态更改时间 = 未收集

应用程序代码页 = 1208

挂起的锁定 = 0

总计等待时间(毫秒) = 0

应用程序句柄 = 43

应用程序标识 = LOCALDB2060512054331

序号 = 2273

应用程序名 = javaexe

CONNECT 授权标识 = DB2ADMIN

应用程序状态 = 联合请求暂挂

状态更改时间 = 未收集

应用程序代码页 = 1208

挂起的锁定 = 6

总计等待时间(毫秒) = 0

锁定列表

锁定名称 = 0x031F9052000000000000000055

锁定属性 = 0x00000000

发行版标志 = 0x40000000

锁定计数 = 255

挂起计数 = 0

锁定对象名 = 0

对象类型 = 内部

方式 = S

锁定名称 = 0x26800000000000000000000044

锁定属性 = 0x00000000

发行版标志 = 0x40000000

锁定计数 = 1

挂起计数 = 0

锁定对象名 = 0

对象类型 = 内部

方式 = S

锁定名称 = 0x020006000F1700000000000052

锁定属性 = 0x00000000

发行版标志 = 0x00000001

锁定计数 = 1

挂起计数 = 0

锁定对象名 = 5903

对象类型 = 行

表空间名 = USERSPACE1

表模式 = DB2ADMIN

表名 = C_USER

方式 = NS

锁定名称 = 0x01000000010000000500BC0056

锁定属性 = 0x00000000

发行版标志 = 0x40000000

锁定计数 = 1

挂起计数 = 0

锁定对象名 = 0

对象类型 = 内部变化锁定

方式 = S

锁定名称 = 0x535953534E333030FD965C0641

锁定属性 = 0x00000000

发行版标志 = 0x40000000

锁定计数 = 1

挂起计数 = 0

锁定对象名 = 0

对象类型 = 内部方案锁定

方式 = S

锁定名称 = 0x02000600000000000000000054

锁定属性 = 0x00000000

发行版标志 = 0x00000001

锁定计数 = 1

挂起计数 = 0

锁定对象名 = 6

对象类型 = 表

表空间名 = USERSPACE1

表模式 = DB2ADMIN

表名 = C_USER

方式 = IS

应用程序句柄 = 557

应用程序标识 = LOCALDB2060512053913

序号 = 1254

应用程序名 = javaexe

CONNECT 授权标识 = DB2ADMIN

应用程序状态 = 联合请求暂挂

状态更改时间 = 未收集

应用程序代码页 = 1208

挂起的锁定 = 6

总计等待时间(毫秒) = 0

锁定列表

锁定名称 = 0x031F9052000000000000000055

锁定属性 = 0x00000000

发行版标志 = 0x40000000

锁定计数 = 255

挂起计数 = 0

锁定对象名 = 0

对象类型 = 内部

方式 = S

锁定名称 = 0x26800000000000000000000044

锁定属性 = 0x00000000

发行版标志 = 0x40000000

锁定计数 = 1

挂起计数 = 0

锁定对象名 = 0

对象类型 = 内部

方式 = S

锁定名称 = 0x02000600071D00000000000052

锁定属性 = 0x00000000

发行版标志 = 0x00000001

锁定计数 = 1

挂起计数 = 0

锁定对象名 = 7431

对象类型 = 行

表空间名 = USERSPACE1

表模式 = DB2ADMIN

表名 = C_USER

方式 = NS

锁定名称 = 0x01000000010000000500BC0056

锁定属性 = 0x00000000

发行版标志 = 0x40000000

锁定计数 = 1

挂起计数 = 0

锁定对象名 = 0

对象类型 = 内部变化锁定

方式 = S

锁定名称 = 0x535953534E333030FD965C0641

锁定属性 = 0x00000000

发行版标志 = 0x40000000

锁定计数 = 1

挂起计数 = 0

锁定对象名 = 0

对象类型 = 内部方案锁定

方式 = S

锁定名称 = 0x02000600000000000000000054

锁定属性 = 0x00000000

发行版标志 = 0x00000001

锁定计数 = 1

挂起计数 = 0

锁定对象名 = 6

对象类型 = 表

表空间名 = USERSPACE1

表模式 = DB2ADMIN

表名 = C_USER

方式 = IS

其中应用程序句柄43和557的状态都是死锁了,猜测是这2个应用争用DB2的表,造成死锁,根据日志提示,在DB2的命令窗口输入:

force application (43)

force application (557)

提示这个 *** 作是异步的,我执行list applicaions,结果进程中还有那2个进程,那2个进程可能是在执行比较大的 *** 作,需要耐心等待,如何还不行,则使用下面的命令来强制所有的应用都停止,然后重启DB2:

force application all

terminate

db2stop force

db2start

如果DB2在Window上,则可以使用“控制中心”->实例->右键“应用程序”,可以看到当前的锁定情况,并且可以强行关闭某个进程,也可以显示“锁定链”。

PL/SQL中记录被另一个用户锁住的原因:另一个用户正在修改或删除该记录。此时其它用户只能做查询,不能进行删改 *** 作。如果要解锁,正在删改 *** 作的用户退出删改状态即可。

因死机或挂起不能退出删改状态时,找到该用户的进程,kill该进程就可以了。实在不行的话重新启动数据库也可以。

处理方法:

1、查看数据库锁,诊断锁的来源及类型:

select object_id,session_id,locked_mode from v$locked_object;

或者用以下命令:

select bowner,bobject_name,lsession_id,llocked_mode from v$locked_object l, dba_objects b where bobject_id=lobject_id

2、找出数据库的serial#,以备杀死:

select t2username,t2sid,t2serial#,t2logon_time from v$locked_object t1,v$session t2 where t1session_id=t2sid order by t2logon_time;

3、杀死该session:

alter system kill session 'sid,serial#'

扩展资料

SQL Server中的锁类型及用法:

从数据库系统的角度来看:分为独占锁(即排它锁), 共享锁和更新锁。MS-SQL Server使用以下资源锁模式。

锁模式描述:

共享(S)用于不更改或不更新数据的 *** 作(只读 *** 作),如SELECT语句。

更新(U)用于可更新的资源中。防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。

排它(X)用于数据修改 *** 作,例如INSERT、UPDATE 或DELETE。确保不会同时同一资源进行多重更新。

意向锁用于建立锁的层次结构。意向锁的类型为:意向共享(IS)、意向排它(IX)以及与意向排它共享(SIX)。

架构锁在执行依赖于表架构的 *** 作时使用。架构锁的类型为:架构修改(Sch-M)和架构稳定性(Sch-S)。

大容量更新(BU)向表中大容量复制数据并指定了TABLOCK提示时使用。

方法一:用window身份登录之后,执行下面的语句

sp_password Null,'123,'sa'

把sa的密码设为“123”(可以自己随意填写)

方法二:

第一步:打开 SQL2008 用window登录先,然后在服务名处右击选属性>安全性>右边的登录方式选项改为身份验证 确定!

第二步:选择安全性(展开)>登录名>双击sa>密码改成你需要的密码确定!

1、在做Oracle监听程序测试时,发现帐户已经被锁定。

2、在数据库安装电脑上,点击开始打开运行窗口。

3、在运行窗口输入CMD,调出命令提示符界面。

3、在命令提示符下面,用管理员身份登入到数据库sqlplus / as sysdba。

4、输入解锁命令alter user Scott account unlock后回车。

5、看见用户已更改的字样,表示命令已成功执行。

6、再切换到监听程序验证,原来的ora-28000帐户被锁定的提示已经不存在了。用户解锁成功。

打开2005的策略,可以取消

alter login sa with password = '数据库密码'

unlock, check_policy = off, check_expiration = off

以上就是关于sqlserver2008存储过程如何解锁全部的内容,包括:sqlserver2008存储过程如何解锁、sqlserver 数据库死锁后多长时间解锁、用SQL如何给DB2表加锁和解锁等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存