请教DB2查询和删除同时发生引起死锁问题

请教DB2查询和删除同时发生引起死锁问题,第1张

举一个例子:

lock table CCPCUST_GROUP in exclusive mode;

db2 get snapshot for locks on xx

数据库分区 = 0

锁定名称 = 0x02004500000000000000000054

锁定属性 = 0x00000000

发行版标志 = 0x40000000

锁定计数 = 255

挂起计数 = 0

锁定对象名 = 69

对象类型 = 表

表空间名 = CCP

表模式 = CCP

表名 = CUST_GROUP

方式 = X

这时候另一个进程执行命令如下:

select from CCPCUST_GROUP;

这时候就会死锁

看到后台锁进程如下

数据库分区 = 0

锁定名称 = 0x02004500000000000000000054

锁定属性 = 0x00000000

发行版标志 = 0x40000000

锁定计数 = 255

挂起计数 = 0

锁定对象名 = 69

对象类型 = 表

表空间名 = CCP

表模式 = CCP

表名 = CUST_GROUP

方式 = X

应用程序句柄 = 162

应用程序标识 = A9FE0B84EF0E012D48113343

序号 = 0003

应用程序名 = QuestCentralexe

CONNECT 授权标识 = CCP

应用程序状态 = 锁定等待

状态更改时间 = 未收集

应用程序代码页 = 1386

挂起的锁定 = 2

总计等待时间(毫秒) = 未收集

1 通过运行 su - root 命令切换至 root 用户权限。2 对每个实例运行下列命令: su - iname $HOME/sqllib/db2profile db2 force applications all db2 terminate db2stop db2licd -end # run at each physical node exit 其中 iname 表示实例所有者名称。 如果您是 hacmp 用户,则必须使用 ha_db2stop 命令来停止 DB2,而不是使用 db2stop 命令。否则,db2stop 命令将触发失败事件。=================以上执行成功=========3 运行下列命令: su - aname $HOME/das/dasprofile db2admin stop exit 其中,aname 表示 DAS 所有者名称。====================3 此部分没有处理,是否关于不做======1 解取(untar)并解压缩以下压缩的 tar 文件: 用于 AIX 433 和 Solaris Operating Environment 的 FP5_ $PTF_ESE_MFPtarZ 用于 AIX 5 的 FP5_$PTF_ESE_MFP_SBCStarZ 或 FP5_$PTF_ESE_MFP_DBCStarZ要安装 DB2 版本 8 修订包 5:1 切换至安装映像所在的目录。2 输入 /installFixPak 命令以启动安装程序。注: 缺省情况下,installFixPak 命令将落实 AIX 上所有已更新的文件集。在 AIX 上,如果不希望落实更新,则应按如下所示发出带 -a 选项(用于“应用”而不是“落实”)的 installFixPak 命令: /installFixPak ============解压文件以root安装,我没有用 -a 选项=====115 在安装之后1151 更新实例以使用新的 DB2 级别必须执行此 *** 作。安装新级别的 DB2 之后必须更新所有实例。需要作为 root 用户登录才能更新实例。对于每个实例,发出下列命令: INSTHOME/instance/db2iupdt iname INSTHOME/instance/dasupdt 其中,iname 表示实例名,INSTHOME 表示适用于 *** 作系统的安装目录。=========1151 *** 作OK========如果数据库管理服务器(DAS)实例存在并且是 DB2 版本 8 DAS 实例,则运行 dasupdt 命令。要更新 DAS 实例,发出以下命令: INSTHOME/instance/dasupdt dasname 其中,dasname 表示 DAS 所有者名,INSTHOME 表示适用于 *** 作系统的安装目录。有关 db2iupdt 或 dasupdt 命令的更多信息,可使用 -h 选项运行这些命令。=======没有处理==========1152 重新启动实例要重新启动实例:1 作为实例所有者登录并输入 db2start 命令。2 对每个实例重复此过程。要重新启动管理服务器,请作为 DAS 所有者登录并运行 db2admin start 命令。=====启动没有起来,就没有进行其它 *** 作=========$ ipcleanipclean: Removing DB2 engine and client's IPC resources for db2inst1 1、对于DB2的管理服务器实例,您也需要在安装补丁前停掉,然后更新管理服务器实例,重新起动。 2、您需要重新绑定程序包。 重新绑定至 DB2 UDB 数据库在应用修订之后,必须执行下列命令序列之一:在命令提示符处,输入: db2 terminate db2 CONNECT TO db2 BIND /@db2ubindlst BLOCKING ALL GRANT PUBLIC db2 BIND /@db2clilst BLOCKING ALL GRANT PUBLIC db2 terminate 或者,在 DB2 命令行上,输入: TERMINATE CONNECT TO BIND /@db2ubindlst BLOCKING ALL GRANT PUBLIC BIND /@db2clilst BLOCKING ALL GRANT PUBLIC TERMINATE其中 表示实用程序应绑定至的数据库的名称, 表示绑定文件所在的目录的全路径名,例如 $HOME/sqllib/bnd,其中 $HOME 表示数据库服务器实例的主目录。db2ubindlst 和 db2clilst 包含 DB2 UDB 使用所必需的绑定文件的列表。 对于分区服务器这边,没有什么特别注意的地方,也是按照同样的步骤安装、更新实例、启动、重新绑定程序包就可以了。如果分区服务器跨多个机器的话,就需要在每一台物理机器上执行相同的步骤安装补丁。在启动实例之前需要确保所有机器上的补丁都在同一个补丁层次上。

在windows系统下的话,默认是在C:\Program Files\IBM\SQLLIB\

在日常DB2的维护中,transaction log full是比较常见的问题,日志空间使用情况也是我们比较重视的问题,查看日志空间使用情况的方法:

DB2 在DATABASE级别有几个参数,如下决定了事物日志的使用空间大小

Log file size (4KB) (LOGFILSIZ) = 60000

Number of primary log files (LOGPRIMARY) = 16

Number of secondary log files (LOGSECOND) = 200

Changed path to log files (NEWLOGPATH) =

Path to log files = /db2inst1_log01/sample

如此可以计算分配给日志的空间大约是(200+16)600004/1024/1024大约50GB。

如果日志是单独的文件系统分区,在 *** 作系统上即可看到日志空间使用情况,对日志使用情况进行监控,可以看到如下信息:

$ df -g

Filesystem GB blocks Free %Used Iused %Iused Mounted on

/dev/db2inst1_log01 6000 5450 10% 1458 1% /db2inst1_log01

以上就是关于请教DB2查询和删除同时发生引起死锁问题全部的内容,包括:请教DB2查询和删除同时发生引起死锁问题、安装DB2之后怎样登陆原先的系统、db2日志文件在哪里等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/10064130.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存