环境:
Red Hat Enterprise Linux 6.3
db2 v9.7fp7
故障:
insert into xxx select a.* from a, b, c, d where ....
报错:
2013-12-30-18.32.51.412024-300 I2335358E3785 LEVEL: Severe
PID : 23360 TID : 140652155234048PROC : db2sysc 0
INSTANCE: db2inst1 NODE : 000 DB : xxx
APPHDL : 0-788 APPID: x.x.x.x.10162.131230233122
AUTHID : xxx
EDUID : 179 EDUNAME: db2agent (xxx) 0
FUNCTION: DB2 UDB, buffer pool services, sqlb_verify_page, probe:2
MESSAGE : ZRC=0x86020001=-2046689279=SQLB_BADP "page is bad"
DIA8400C A bad page was encountered.
DATA #1 : String, 64 bytes
Error encountered trying to read a page - information follows :
DATA #2 : String, 23 bytes
Page verification error
DATA #3 : Page ID, PD_TYPE_SQLB_PAGE_ID, 4 bytes
191029
DATA #4 : Object descriptor, PD_TYPE_SQLB_OBJECT_DESC, 88 bytes
Obj: {pool:9;obj:52;type:0} Parent={9;52}
lifeLSN: 000000008390E2EF
tid: 0 0 0
extentAnchor: 3232
initEmpPages: 0
poolPage0: 0
poolflags: 122
objectState: 27
lastSMP: 0
pageSize: 32768
extentSize: 32
bufferPoolID: 2
partialHash: 3407881
bufferPool: 0x00007fecc5e1a980
pdef: 0x00007fece49cc7c0
DATA #5 : Bitmask, 4 bytes
0x00000002
DATA #6 : Page header, PD_TYPE_SQLB_PAGE_HEAD, 48 bytes
pageHead: {tbspSeed:0;obj:0;type:0} PPNum:0 OPNum:0
begoff: 0
datlen: 0
pagebinx: 0
revnum: 0
pagelsn: 0000000000000000 flag: 0
future32: 0
cbits1to31: 0
cbits32to63: 0
DATA #7 : Bufferpool globals, PD_TYPE_SQLB_GLOBALS, 1256 bytes
dbcb: 0x00000002038d9c80
bpcb: 0x00007fecc16b30e0
ptbl: 0x00007fecc16b3260
eduType: SQLB_EDU_AGENT
eduCB: 0x00000002045761c0
qryData: 0x0000000000000000
qryDataSz: 0
qryDataPos: 0
contQryData: 0x0000000000000000
contQryDataSz: 0
contQryDataPos: 0
bglobals_flags: 200
dbmon_cb: 0x0000000000000000
eduId: 179
curPfQ: 11
curRemHateListCounter: 263725
debugInfo: 0x0000000000000000
pCurRecLsn: 0x0000000000000000
clnrCB: 0x0000000000000000
prefetchPriority: 1
agentPriorityWeight: 00
staticStr:
numPFRequestsHeld: 0
memAccessCount:
m_bIsInitialized: false
m_iDisabled: 0
m_iAccessCount: 0
CALLSTCK: (Static functions may not be resolved correctly, as they are resolved to the nearest symbol)
[0] 0x00007FF37EC31260 pdLog + 0x398
[1] 0x00007FF37F949A38 _Z25sqlbLogReadAttemptFailurejP16SQLB_OBJECT_DESCjP9SQLB_PAGEibmjPcP12SQLB_GLOBALS + 0x1BE
[2] 0x00007FF3814982DF sqlbReadPage + 0xA17
[3] 0x00007FF38148EC02 _Z19sqlbGetPageFromDiskP11SQLB_FIX_CBi + 0x474
[4] 0x00007FF3814815F4 _Z7sqlbfixP11SQLB_FIX_CB + 0x108C
[5] 0x00007FF3814B2B2F _Z15sqldFetchDirectP13SQLD_DFM_WORK + 0x14B
[6] 0x00007FF3814A5222 _Z13sqldDataFetchP8SQLD_CCBP8SQLZ_RIDmP7SQLI_CB + 0xF4
[7] 0x00007FF37F43A9B6 /home/db2inst1/sqllib/lib64/libdb2e.so.1 + 0x15719B6
[8] 0x00007FF37F43979B _Z8sqlifnxtP7SQLI_CBP11SQLI_SFGLOB + 0x1FF
[9] 0x00007FF38155F7B4 _Z7sqlirdkP8sqeAgentP10SQLI_IXPCRP9SQLD_IXCBmP8SQLD_KEYP12SQLI_KEYDATAP9sqli_scanPi + 0xABA
a, b, c, d 数量级别千万,其中某一个表会出现页损坏,测试多次。
设置数据库参数:
db2 update db cfg for xxx using AUTO_MAINT OFF
db2 update db cfg for xxx using AUTO_DB_BACKUP OFF
db2 update db cfg for xxx using AUTO_TBL_MAINT OFF
db2 update db cfg for xxx using AUTO_RUNSTATS OFF
后,能够正常insert。
再对a, b, c, d执行runstats 时:
runstats on table user.a with distribution on all columns and detailed indexes all;
其中某个表会报数据页损坏或者索引损坏。信息如下:
SQL2310N The utility could not generate statistics. Error "-1655" was returned.
db2diag.log中信息同上。
db2安装时已做检查:
./db2prereqcheck
安装相应的包。
问题不理解是,为什么 runstats 会对表的数据页或索引页造成损坏?
收起