DB2如何将数据库表解锁

在DB2的命令行中输入: 
update monitor switches using lock on table on 
然后打开另一个DB2命令窗口执行我的那个被吊死的Update语句。 
然后在第一个DB2命令窗口执行: [@[email protected]]get snapshot
for locks on Database_Name(你的数据库的名字)> locks.TXT

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

应用程序句柄 =
36 
应用程序标识 = AC100C47.IC05.00F6C6095828 
序号 =
0246 
应用程序名 =
java.exe 
CONNECT 授权标识 =
DB2ADMIN 
应用程序状态 = UOW 正在等待 
状态更改时间 = 未收集 
应用程序代码页 =
1208 
挂起的锁定 =

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

应用程序句柄 =
43 
应用程序标识 =
*LOCAL.DB2.060512054331 
序号 =
2273 
应用程序名 =
java.exe 
CONNECT 授权标识 =
DB2ADMIN 
应用程序状态 = 联合请求暂挂 
状态更改时间 = 未收集 
应用程序代码页 =
1208 
挂起的锁定 =

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

锁定列表 
锁定名称 = 0x031F9052000000000000000055 
锁定属性 =
0x00000000 
发行版标志 =
0x40000000 
锁定计数 =
255 
挂起计数 = 0 
锁定对象名 =

对象类型 = 内部 
方式 = S

锁定名称 =
0x26800000000000000000000044 
锁定属性 =
0x00000000 
发行版标志 =
0x40000000 
锁定计数 = 1 
挂起计数 = 0 
锁定对象名 =

对象类型 = 内部 
方式 = S

锁定名称 = 0x020006000F1700000000000052 
锁定属性 =
0x00000000 
发行版标志 =
0x00000001 
锁定计数 = 1 
挂起计数 = 0 
锁定对象名 =
5903 
对象类型 = 行 
表空间名 =
USERSPACE1 
表模式 =
DB2ADMIN 
表名 =
C_USER 
方式 = NS

锁定名称 =
0x01000000010000000500BC0056 
锁定属性 =
0x00000000 
发行版标志 =
0x40000000 
锁定计数 = 1 
挂起计数 = 0 
锁定对象名 =

对象类型 = 内部变化锁定 
方式 = S

锁定名称 =
0x535953534E333030FD965C0641 
锁定属性 =
0x00000000 
发行版标志 =
0x40000000 
锁定计数 = 1 
挂起计数 = 0 
锁定对象名 =

对象类型 = 内部方案锁定 
方式 = S

锁定名称 =
0x02000600000000000000000054 
锁定属性 =
0x00000000 
发行版标志 =
0x00000001 
锁定计数 = 1 
挂起计数 = 0 
锁定对象名 =

对象类型 = 表 
表空间名 =
USERSPACE1 
表模式 =
DB2ADMIN 
表名 =
C_USER 
方式 = IS

应用程序句柄 =
557 
应用程序标识 =
*LOCAL.DB2.060512053913 
序号 =
1254 
应用程序名 =
java.exe 
CONNECT 授权标识 =
DB2ADMIN 
应用程序状态 = 联合请求暂挂 
状态更改时间 = 未收集 
应用程序代码页 =
1208 
挂起的锁定 =

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

锁定列表 
锁定名称 = 0x031F9052000000000000000055 
锁定属性 =
0x00000000 
发行版标志 =
0x40000000 
锁定计数 =
255 
挂起计数 = 0 
锁定对象名 =

对象类型 = 内部 
方式 = S

锁定名称 =
0x26800000000000000000000044 
锁定属性 =
0x00000000 
发行版标志 =
0x40000000 
锁定计数 = 1 
挂起计数 = 0 
锁定对象名 =

对象类型 = 内部 
方式 = S

锁定名称 =
0x02000600071D00000000000052 
锁定属性 =
0x00000000 
发行版标志 =
0x00000001 
锁定计数 = 1 
挂起计数 = 0 
锁定对象名 =
7431 
对象类型 = 行 
表空间名 =
USERSPACE1 
表模式 =
DB2ADMIN 
表名 =
C_USER 
方式 = NS

锁定名称 =
0x01000000010000000500BC0056 
锁定属性 =
0x00000000 
发行版标志 =
0x40000000 
锁定计数 = 1 
挂起计数 = 0 
锁定对象名 =

对象类型 = 内部变化锁定 
方式 = S

锁定名称 =
0x535953534E333030FD965C0641 
锁定属性 =
0x00000000 
发行版标志 =
0x40000000 
锁定计数 = 1 
挂起计数 = 0 
锁定对象名 =

对象类型 = 内部方案锁定 
方式 = S

锁定名称 =
0x02000600000000000000000054 
锁定属性 =
0x00000000 
发行版标志 =
0x00000001 
锁定计数 = 1 
挂起计数 = 0 
锁定对象名 =

对象类型 = 表 
表空间名 =
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上,则可以使用“控制中心”->实例->右键“应用程序”,可以看到当前的锁定情况,并且可以强行关闭某个进程,也可以显示“锁定链”。

时间: 2024-10-04 20:53:35

DB2如何将数据库表解锁的相关文章

数据库表解锁

1.查询表锁 SELECT a.sid,a.serial#,a.username,a.program,b.os_user_name,c.object_name FROM v$session a,v$locked_object b,dba_objects c where b.session_id = a.sid and c.object_id = b.object_id order by a.logon_time; 2.解锁 alter system kill session'1025,41';

Shell脚本实现DB2数据库表导出到文件

该Shell脚本用于实现将DB2数据库表导出到文件,将在另一篇博文<Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件>中通过Java代码实现调用该脚本并传入参数. 1 #!/usr/bin/env sh 2 3 DBSCHEMA=$1 4 DBUSER=$2 5 DBPASSWORD=$3 6 TABLENAME=$4 7 FILEPATH=$5 8 DELIMITER=$6 9 EXPORTLIMIT=$7 10 11 SQLERR="NO ERROR MSG&

Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件

本文通过Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件,代码如下: import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.io.LineNumberReader; import java.util.HashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import

PowerDesigner中SQL文件、数据库表反向生成PDM

1      反向生成PDM 1)        创建一个空的PDM模型(选择对应的DBMS): 2)        选择[Database]--[Update Model from Database-]菜单: 1.1    使用SQL文件 1)        在新窗口选择对应[Using script files]--[(Add Files)].然后再弹出窗口选择对应的SQL文件.点击打开,完成选择. 2)        点击[确定]生成. 1.2    使用数据源 1)        选择数

DB2中的系统表SYSIBM.SYSDUMMY1

ORACLE中有一张系统数据库表DUAL用来访问系统的相关信息 SELECT SYSDATE FROM DUAL;  --返回当前系统日期 ----------------------------------------------------------------------------------------- db2中的系统表为SYSIBM.SYSDUMMY1,不太好记 SELECT CURRENT DATE FROM SYSIBM.SYSDUMMY1  --返回当前系统日期SELECT

Java 通过JDBC查询数据库表结构(字段名称,类型,长度等)

Java 通过JDBC查询数据库表结构(字段名称,类型,长度等) 发布者:唛唛家的豆子 时间:2012-11-20 17:54:02 在JDBCPreparedStatement.executeQuery().getMetaData();后,我们可以通过ResultSetMetaData对象查询返回结果集的源数据信息,也就是表结构信息. 示例代码如下: package astar.sutil.db; import java.sql.Connection; import java.sql.Driv

SQL Server数据库表锁定原理以及如何解除表的锁定

1. 数据库表锁定原理 1.1 目前的C/S,B/S结构都是多用户访问数据库,每个时间点会有成千上万个user来访问DB,其中也会同时存取同一份数据,会造成数据的不一致性或者读脏数据. 1.2 事务的ACID原则 1.3 锁是关系数据库很重要的一部分, 数据库必须有锁的机制来确保数据的完整和一致性. 1.3.1 SQL Server中可以锁定的资源: 1.3.2 锁的粒度: 1.3.3 锁的升级: 锁的升级门限以及锁升级是由系统自动来确定的,不需要用户设置. 1.3.4 锁的类型: (1) 共享

DB2导入导出数据库数据

导出数据库中数据 在db2cmd命令下生成建库脚本(-z指定模式名) db2look -d BBS -z db2admin -u db2admin -e -o bbs.sql 在db2cmd命令下导出数据 db2move BBS export -sn db2admin -u db2admin -p db2admin 导入数据到数据库 1.使用指定的csv格式的数据文件并生成日志文件 import   from   "D:/tmp/qm_east_info.csv"   OF   DEL

06-Mysql数据库----表的操作

本节掌握 存储引擎介绍(了解) 表的增删改查 一.存储引擎(了解) 前几节我们知道mysql中建立的库===>文件夹,库中的表====>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文本用txt类型,处理表格用excel,处理图片用png等 数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎. ps: 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因