在DB2的命令行中输入:
update monitor switches using lock on table on
然后打开另一个DB2命令窗口执行我的那个被吊死的Update语句。
然后在第一个DB2命令窗口执行:
get snapshot for locks on Database_Name(你的数据库的名字)> locks.TXT
然后,可以看到第一个DB2的窗口有一个信息输出,把这些信息输出到TXT中,大致如下:
应用程序句柄 = 36
应用程序标识 = AC100C47.IC05.00F6C6095828
序号 = 0246
应用程序名 = java.exe
CONNECT 授权标识 = DB2ADMIN
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 0
总计等待时间(毫秒) = 0
应用程序句柄 = 43
应用程序标识 = *LOCAL.DB2.060512054331
序号 = 2273
应用程序名 = java.exe
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
应用程序标识 = *LOCAL.DB2.060512053913
序号 = 1254
应用程序名 = java.exe
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上,则可以使用“控制中心”->实例->右键“应用程序”,可以看到当前的锁定情况,并且可以强行关闭某个进程,也可以显示“锁定链”。
分享到:
相关推荐
### DB2 Load锁表后解锁详解 #### 一、引言 在数据库管理与维护过程中,数据加载(Load)操作是常见的数据导入手段之一。在DB2环境下进行数据加载时,由于Load操作不生成事务日志,这可能导致加载完成后表被锁定的...
本文将深入探讨Linux下DB2的常用命令,帮助开发者更好地理解和操作DB2数据库。 1. **安装与启动DB2** - `sudo rpm -ivh db2_v11.5_linux_x86_64.rpm`:在Linux上安装DB2的RPM包。 - `db2start`:启动DB2实例。 -...
### DB2数据库用户手册知识点概览 #### 一、DB2专有名词解释 - **Instance(实例)**:DB2数据库实例是指运行DB2数据库软件的一组进程和服务,每个实例都可以独立地管理多个数据库。 - **DB2 Administration Server...
在DB2数据库管理系统中,锁是一种重要的机制,用于管理多个用户对数据资源的同时访问,确保数据的一致性和准确性。当一个事务正在修改数据时,其他试图访问同一数据的事务可能会被阻止,直到第一个事务完成。这种...
本文将探讨Db2数据库中常见的堵塞问题及其分析与处理方法。 首先,数据库堵塞的主要表现是数据库活动会话增多,SQL执行速度减缓,甚至出现无法连接的情况。这可能是由于锁问题、大SQL执行或系统资源耗尽等原因导致...
使用`db2look`命令导出数据库`testdb`的全部表结构到文件`test.sql`中。此步骤对于备份或迁移数据库结构非常有用。 ##### 5. 导入数据库表结构 ```bash db2 -tvf test.sql ``` 执行SQL脚本`test.sql`,导入之前导出...
DB2数据库支持多种类型的锁,包括表空间锁、表锁、页锁和行锁等不同级别的锁。下面通过一张表格来详细说明DB2锁的兼容性: | 请求的锁类型 | 当前锁类型 | 兼容性 | |--------------|------------|--------| | 共享...
Toad for DB2是一款强大的数据库管理工具,专为IBM的DB2数据库系统设计。它提供了丰富的功能,包括SQL开发、...通过遵循上述步骤,并留意可能遇到的问题,你将能够充分利用这个强大的工具,提升你的DB2数据库管理工作。
Quest Central for DB2 v5.0 是一款强大的数据库管理工具,专门针对IBM DB2数据库设计,旨在帮助DBA(数据库管理员)、开发者以及IT专业人士更高效地管理、监控和维护DB2环境。它提供了一系列全面的功能,包括性能...
1. **Instance(实例):** DB2中的实例是指运行DB2数据库管理系统的单一进程或一组进程。每个DB2实例都有一个唯一的名字,并且可以管理多个数据库。实例是DB2运行的基本单位。 2. **DB2 Administration Server(管理...
在DB2环境中,**实例**是指运行DB2数据库管理系统软件的一个特定进程集合。每个实例都由一个唯一的名称标识,并且该名称通常与操作系统用户账户关联。一个操作系统上可以安装多个DB2实例,每个实例独立管理自己的...
**说明**:这条命令用于锁定表 `TEST`,阻止其他用户对该表进行修改,直到解锁。 #### 二十二、共享锁表 **命令**: ```sql LOCK TABLE TEST IN SHARE MODE; ``` **说明**:这条命令为表 `TEST` 加上共享锁,允许...
Quest Central for DB2 是一款由 Quest Software 开发的专业数据库管理工具,旨在为用户提供全面且直观的方式来管理 IBM DB2 数据库。该软件支持多种版本的 DB2,包括 DB2 LUW(Linux, Unix, Windows)、DB2 for z/...
Toad for DB2能够帮助用户提高生产效率、减少错误并简化日常任务,使得DBA(数据库管理员)、开发人员以及其他数据库用户可以更加轻松地进行DB2数据库的管理和维护工作。 ### 二、Toad for DB2 6.5版本特性 Toad ...
IBM DB2是一款由IBM公司开发的关系型数据库管理系统(RDBMS),在企业级应用中广泛使用,尤其在金融、电信等关键领域。标题提到的是IBM DB2 9.5和9.7企业版的License,这涉及到软件授权的重要概念。 在数据库管理...
Oracle数据库基础学习是数据库学习的基础部分,本节课程将从DOS命令、SQL命令行、数据库简述、SQL语言简述、表等几个方面对Oracle数据库进行详细的介绍。 一、DOS命令 DOS命令是Disk Operating System的缩写,即...
在数据库领域,根据其规模和技术特性,可以将数据库大致分为三类:小型数据库、中型数据库以及大型数据库。 - **小型数据库**:这类数据库通常适用于个人或者小型项目的需求。文中提到的**Access**是由微软开发的一...