Db2 LOAD RESUME YES是要往TS/TB的末尾继续LOAD数据,因此在RELOAD阶段需要定位到最后一个non-empty的data page,通过阅读Db2的源码,发现检测最后一个non-empty data page的代码在处理D status的page时候会出现问题,D status的page在传统insert 方式中表示的是non-empty page,但是在fast insert 方式中有可能是empty pipe中存储的empty page,Db2的源码在从后往前扫描segment的时候,如果最后一个segment里开始存储的都是D status的page,而这些D status的page有全部都是empty page的时候,Db2就不继续往前扫描segment,去找最后那个non-empty page, 从而LOAD RESUME YES就会报DSNIDLDU:5016的abend,错误如下
00.12.45 STC09828 ---- TUESDAY, 25 OCT 2022 ----
01.58.05 STC09828 DSNI014I -G1DB2P DSNIDLDU DATA IN USE DURING ABEND 957
957 REASON 00C90101
957 ERQUAL 5016
957 TYPE 00000302
957 NAME DPSIGDWH.S202MSG .X'08000505' <---space map page
957 CONNECTION-ID=UTILITY
957 CORRELATION-ID=@SIGJG36
957 LUW-ID=CLSNA00.LU1G.DC4E50F82646=57323
01.58.05 STC09828 DSNI014I -G1DB2P DSNIDLDU DATA IN USE DURING ABEND 958
958 REASON 00C90101
958 ERQUAL 5016
958 TYPE 00000302
958 NAME DPSIGDWH.S202MSG .X'08000606' <---smap最后一个segment
958 CONNECTION-ID=UTILITY 的第一个page
958 CORRELATION-ID=@SIGJG36
958 LUW-ID=CLSNA00.LU1G.DC4E50F82646=57323
IPCS命令BM=2 看下page的访问顺序
458 Getp DC4E50F9168E3978 0106.04F9.0008.08000505 80000100 00040000 DSNIDLDU+00001DC2 000001508E530100 000001508D2F6000 0000
459 Getp DC4E50F917136794 0106.04F9.0008.08000613 80000120 08040000 DSNIDLDU+00002FA0 000001508E5C01C0 000001508DEF7000 0000
460 Setw DC4E50F917136634 0106.04F9.0008.08000613 80000120 08040000 DSNB1GET+00002DA4 000001508E5C01C0 000001508DEF7000 0000
461 Rstw Relp DC4E50F917136EBC 0106.04F9.0008.08000613 80000100 08040000 DSNIDLDU+00003052 000001508E5C01C0 000001508DEF7000 0000
462 Getp DC4E50F917449786 0106.04F9.0008.08000612 80000120 08040000 DSNIDLDU+00002FA0 000001508E5A4B00 000001508DCAE000 0000
463 Setw DC4E50F917449732 0106.04F9.0008.08000612 80000120 08040000 DSNB1GET+00002DA4 000001508E5A4B00 000001508DCAE000 0000
464 Rstw Relp DC4E50F917449D48 0106.04F9.0008.08000612 80000100 08040000 DSNIDLDU+00003052 000001508E5A4B00 000001508DCAE000 0000
465 Getp DC4E50F917694CA2 0106.04F9.0008.08000611 80000120 08040000 DSNIDLDU+00002FA0 000001508E559F80 000001508D674000 0000
466 Setw DC4E50F917694C92 0106.04F9.0008.08000611 80000120 08040000 DSNB1GET+00002DA4 000001508E559F80 000001508D674000 0000
467 Rstw Relp DC4E50F917695124 0106.04F9.0008.08000611 80000100 08040000 DSNIDLDU+00003052 000001508E559F80 000001508D674000 0000
468 Getp DC4E50F917789D68 0106.04F9.0008.08000610 80000120 08040000 DSNIDLDU+00002FA0 000001508E5A5B80 000001508DCC4000 0000
469 Setw DC4E50F917789D36 0106.04F9.0008.08000610 80000120 08040000 DSNB1GET+00002DA4 000001508E5A5B80 000001508DCC4000 0000
470 Rstw Relp DC4E50F917789F46 0106.04F9.0008.08000610 80000100 08040000 DSNIDLDU+00003052 000001508E5A5B80 000001508DCC4000 0000
471 Getp DC4E50F9178C4344 0106.04F9.0008.0800060F 80000120 08040000 DSNIDLDU+00002FA0 000001508FCBE540 000001508F5D1000 0000
472 Setw DC4E50F9178C4334 0106.04F9.0008.0800060F 80000120 08040000 DSNB1GET+00002DA4 000001508FCBE540 000001508F5D1000 0000
473 Rstw Relp DC4E50F9178C4696 0106.04F9.0008.0800060F 80000100 08040000 DSNIDLDU+00003052 000001508FCBE540 000001508F5D1000 0000
474 Getp DC4E50F917997218 0106.04F9.0008.0800060E 80000120 08040000 DSNIDLDU+00002FA0 0000015092ABEA80 00000150923D8000 0000
475 Setw DC4E50F9179971A2 0106.04F9.0008.0800060E 80000120 08040000 DSNB1GET+00002DA4 0000015092ABEA80 00000150923D8000 0000
476 Rstw Relp DC4E50F917997782 0106.04F9.0008.0800060E 80000100 08040000 DSNIDLDU+00003052 0000015092ABEA80 00000150923D8000 0000
477 Getp DC4E50F917AA18DC 0106.04F9.0008.0800060D 80000120 08040000 DSNIDLDU+00002FA0 00000150941D1440 0000015093C65000 0000
478 Setw DC4E50F917AA1864 0106.04F9.0008.0800060D 80000120 08040000 DSNB1GET+00002DA4 00000150941D1440 0000015093C65000 0000
479 Rstw Relp DC4E50F917AA1C58 0106.04F9.0008.0800060D 80000100 08040000 DSNIDLDU+00003052 00000150941D1440 0000015093C65000 0000
480 Getp DC4E50F917B88542 0106.04F9.0008.0800060C 80000120 08040000 DSNIDLDU+00002FA0 000001509586B800 0000015094AEA000 0000
481 Setw DC4E50F917B88514 0106.04F9.0008.0800060C 80000120 08040000 DSNB1GET+00002DA4 000001509586B800 0000015094AEA000 0000
482 Rstw Relp DC4E50F917B88664 0106.04F9.0008.0800060C 80000100 08040000 DSNIDLDU+00003052 000001509586B800 0000015094AEA000 0000
483 Getp DC4E50F917DD9D42 0106.04F9.0008.0800060B 80000120 08040000 DSNIDLDU+00002FA0 0000015096F1D140 0000015095B61000 0000
484 Setw DC4E50F917DD9D36 0106.04F9.0008.0800060B 80000120 08040000 DSNB1GET+00002DA4 0000015096F1D140 0000015095B61000 0000
485 Rstw Relp DC4E50F917DD9EC8 0106.04F9.0008.0800060B 80000100 08040000 DSNIDLDU+00003052 0000015096F1D140 0000015095B61000 0000
486 Getp DC4E50F918088936 0106.04F9.0008.0800060A 80000120 08040000 DSNIDLDU+00002FA0 000001509861B700 000001509723E000 0000
487 Setw DC4E50F9180888E2 0106.04F9.0008.0800060A 80000120 08040000 DSNB1GET+00002DA4 000001509861B700 000001509723E000 0000
488 Rstw Relp DC4E50F918088F18 0106.04F9.0008.0800060A 80000100 08040000 DSNIDLDU+00003052 000001509861B700 000001509723E000 0000
489 Getp DC4E50F91817FFC2 0106.04F9.0008.08000609 80000120 08040000 DSNIDLDU+00002FA0 000001509B40F7C0 0000015099F3F000 0000
490 Setw DC4E50F91817FFB4 0106.04F9.0008.08000609 80000120 08040000 DSNB1GET+00002DA4 000001509B40F7C0 0000015099F3F000 0000
491 Rstw Relp DC4E50F918180168 0106.04F9.0008.08000609 80000100 08040000 DSNIDLDU+00003052 000001509B40F7C0 0000015099F3F000 0000
492 Getp DC4E50F9182B4ED4 0106.04F9.0008.08000608 80000120 08040000 DSNIDLDU+00002FA0 00000150AE1D48C0 00000150ADCAB000 0000
493 Setw DC4E50F9182B4E9C 0106.04F9.0008.08000608 80000120 08040000 DSNB1GET+00002DA4 00000150AE1D48C0 00000150ADCAB000 0000
494 Rstw Relp DC4E50F9182B52A4 0106.04F9.0008.08000608 80000100 08040000 DSNIDLDU+00003052 00000150AE1D48C0 00000150ADCAB000 0000
495 Getp DC4E50F91843011C 0106.04F9.0008.08000607 80000120 08040000 DSNIDLDU+00002FA0 00000150AF8D4A40 00000150AF3AD000 0000
496 Setw DC4E50F918430088 0106.04F9.0008.08000607 80000120 08040000 DSNB1GET+00002DA4 00000150AF8D4A40 00000150AF3AD000 0000
497 Rstw Relp DC4E50F91843095C 0106.04F9.0008.08000607 80000100 08040000 DSNIDLDU+00003052 00000150AF8D4A40 00000150AF3AD000 0000
498 Getp DC4E50F918554E8E 0106.04F9.0008.08000606 80000120 08040000 DSNIDLDU+00002FA0 00000150B2627F40 00000150B1349000 0000
499 Setw DC4E50F918554E28 0106.04F9.0008.08000606 80000120 08040000 DSNB1GET+00002DA4 00000150B2627F40 00000150B1349000 0000
500 Rstw Relp DC4E50F91855510E 0106.04F9.0008.08000606 80000100 08040000 DSNIDLDU+00003052 00000150B2627F40 00000150B1349000 0000
DSN1PRNT 505
PAGE: # 08000505 ------------------------------------------------------------------------------------
SEGMENTED SPACEMAP PAGE: PGCOMB='10'X PGBIGRBA='00000001404B5649F183'X PGNUM='08000505'X
PGFLAGS='30'X SEGNUM='000A'X SEGFREE='0000'X SEGENT='000A'X
SEGSIZE='0020'X SEGLENT='00000140'X SEGBFMEM='00'X FOEND='52'X
FIRST PART OF SEGMENTED SPACE MAP:
SEG 0001 0000000004FA80 FFFFFFFFFFFFFFF3FFFFFFFFFFFFFFFF <---525
SEG 0002 0000000004FA80 FFFFFFFFFFFFFFFFFF3FFFFFFFFFFFFF <---545
SEG 0003 0000000004FA80 FFFFFFFFFFFFFFFFFFFFFFF3FFFFFFFF <---565
SEG 0004 0000000004FA80 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 <---585
SEG 0005 0000000004FA80 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF <---5A5
SEG 0006 0000000004FA80 FFFFFFBFFFBFFFFFFFFFFFFFFF3DDDDD <---5C5
SEG 0007 0000000004FA80 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD <---5E5
SEG 0008 0000000004FA80 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD <---605
SEG 0009 0000000004FA80 DDDDDDDDDDDDDDCCCCCCCCCCCCCCCCCC
SEG 000A 0000000004FA80 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
可以看出是从space map page最后一个含有D status的segment开始从最后一个D status page 613开始往前找,发现从613到606都是empty D status page,就报错了
PAGE: # 08000613 ------------------------------------------------------------------------------
DATA PAGE: PGCOMB='00'X PGBIGRBA='00000001404A7F5C591F'X PGNUM='08000613'X PGFLAGS='00'X
PGFREE=3942 PGFREE='0F66'X PGFREEP=2642 PGFREEP='0A52'X PGHOLE1='0000'X
PGMAXID='39'X PGNANCH=114
PGBIGTAIL: PGPRETAIL='000000000000000000000001404A7F5C591F'X PGIDFREE='00'X PGEND='42'X
ID-MAP FOLLOWS:
01 8014 8043 806F 809F 80CB 80F8 8124 8150
09 817A 81A4 81D0 81FF 822B 825B 8287 82B4
11 82E0 830A 8336 8366 8398 83C5 83F7 8424
19 8453 8480 84B0 84DF 850F 853C 8568 8594
21 85C0 85ED 861D 864C 867B 86AB 86DB 870B
29 8738 8768 8798 87C5 87F5 8825 8854 8884
31 88B4 88E4 8916 8945 896F 899C 89C9 89F6
39 8A25
...
PAGE: # 08000606 -------------------------------------------------------------------------------
DATA PAGE: PGCOMB='00'X PGBIGRBA='00000001404A7F54E85E'X PGNUM='08000606'X PGFLAGS='00'X
PGFREE=3886 PGFREE='0F2E'X PGFREEP=3892 PGFREEP='0F34'X PGHOLE1='0000'X
PGMAXID='55'X PGNANCH=170
PGBIGTAIL: PGPRETAIL='000000000000000000000001404A7F54E85E'X PGIDFREE='00'X PGEND='42'X
ID-MAP FOLLOWS:
01 8014 8040 806C 8098 80C4 80F0 811C 814B
09 8177 81A1 81CD 81F9 8225 8251 827D 82AC
11 82D8 8307 8336 8362 8391 83C0 83EC 8416
19 8442 846E 849A 84C6 84F2 851E 854D 857D
21 85AD 85D9 8606 8636 8662 868E 86BE 86EE
29 871E 8750 8782 87AF 87DB 8807 8839 8869
31 889B 88CA 88F6 8923 894F 897B 89A7 89D3
39 8A05 8A37 8A67 8A96 8AC2 8AEF 8B1E 8B4E
41 8B7A 8BA6 8BD2 8BFE 8C2A 8C5A 8C86 8CB2
49 8CE1 8D0D 8D39 8D65 8D91 8DBD 8DED 8E19
51 8E49 8E79 8EAB 8ED8 8F08
可以看到从page 613到page 606所有的record都被删除了(idmap最高位turn on),D status page 613到D status page 606都是empty page。
Db2 developer认为应该继续往前找到第一个non-empty page,同意去改这个BUG