环境 产品:DB2 UDB
平台:AIX 5.2 和5.3
版本:V7.1, V7.2, V8.1, V8.2
问题 安装完包含APAR IY62223 (5.2) 或 IY62462 (5.3)的补丁包后,启用了EXTSHM的32位DB2实例在进行数据库操作时,会碰到SQL1224N错误,导致DB2实例异常中止,不能继续操作。
解答 该问题是由于APAR IY62223或IY62462更改了AIX对于扩展内存使用的行为导致的。带有文件集bos.up/mp/mp64 5.2.0.50 的AIX 5.2 或者带有文件集bos.up/mp/mp64 5.3.0.10 的 AIX 5.3 容易出现该问题。这个问题影响到所有启用了EXTSHM的32位DB2实例,不会影响到64位DB2实例。
在db2diag.log中会看到类似信息:
2004-11-30-14.08.05.290383 Instance:db2i81 Node:000
PID:753818(db2pclnr 0) TID:1 Appid:none
oper system services sqloDispatchNBlocks Probe:30
Unexpected system error 0xE has occurred.
This has been mapped to ZRC 0x8300000E.
PID:753818 TID:1 Node:000 Title: SYSTEM ERROR DESCRIPTION
Bad address
2004-11-30-14.08.05.382395 Instance:db2i81 Node:000
PID:753818(db2pclnr 0) TID:1 Appid:none
buffer pool services sqlbClnrDispatchSomeAIO Probe:100
writeStatus =
0x2FF21840 : 0x0000000000000001 ........
2004-11-30-14.08.05.453307 Instance:db2i81 Node:000
PID:753818(db2pclnr 0) TID:1 Appid:none
buffer pool services sqlbClnrDispatchSomeAIO Probe:110
Dispatch Error - IOReq to be written:
0x2003E068 : 0000 0002 0000 0006 0000 0000 0000 0000 ................
0x2003E078 : 4086 B000 FFFF FFFF 0000 000E 0000 1000 @...............
0x2003E088 : 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x2003E098 : 0000 0000 2003 E070 0000 0000 0000 0000 .... ..p........
0x2003E0A8 : 0000 0000 0000 0000 F053 31E4 4035 AA08 .........S1.@5..
0x2003E0B8 : 2003 E040 0000 0000 0000 0000 0100 0000 ..@............
0x2003E0C8 : FFFF FFFF 0000 0018 FFFF FFFF 0000 0000 ................
2004-11-30-14.08.05.794267 Instance:db2i81 Node:000
PID:753818(db2pclnr 0) TID:1 Appid:none
buffer pool services sqlbClnrDispatchSomeAIO Probe:120
Dispatch Error - gatheredPage to be written:
0x2003E040 : 4084 C190 0000 0000 0000 0B50 0000 0000 @..........P....
0x2003E050 : 0000 0000 0000 0002 0000 0000 0000 0000 ................
0x2003E060 : 0000 0001 0000 0000 0000 0002 0000 0006 ................
0x2003E070 : 0000 0000 0000 0000 4086 B000 FFFF FFFF ........@.......
0x2003E080 : 0000 000E 0000 1000 0000 0000 0000 0000 ................
0x2003E090 : 0000 0000 0000 0000 0000 0000 2003 E070 ............ ..p
0x2003E0A0 : 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x2003E0B0 : F053 31E4 4035 AA08 2003 E040 0000 0000 .S1.@5.. ..@....
0x2003E0C0 : 0000 0000 0100 0000 FFFF FFFF 0000 0018 ................
0x2003E0D0 : FFFF FFFF 0000 0000 0000 0000 0000 0000 ................
0x2003E0E0 : 2003 A520 0000 0000 0000 0000 0000 0003 .. ............
0x2003E0F0 : 0000 0000 0000 0000 ........
我们强烈建议碰到这个问题的客户安装HIPER APAR IY66127(AIX 5.2)或者IY66147(AIX 5.3),这个APAR会把EXTSHM的机制更改回以前的机制。
作为一个规避措施,您可以将EXTSHM设置为1SEG(请参照DB2信息中心中关于EXTSHM的设置说明)。
请注意:“1SEG”设置只对引起这个问题的AIX补丁级别有效。
另外,如果可能的话,您可以使用64位DB2实例,因为64位DB2实例不受这个问题的影响。或者使用TCP/IP编目的方式编目您的数据库,避免使用EXTSHM扩展一个应用程序使用IPC连接方式在AIX只有11个连接数的限制。