互联网服务故障诊断

SQL2310N (-1655)问题,请专家诊断

环境:
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 会对表的数据页或索引页造成损坏?
参与8

7同行回答

jlandzpajlandzpa系统运维工程师广州华南资讯科技有限公司
提交ibm ,确认是否是bug.显示全部
提交ibm ,确认是否是bug.收起
系统集成 · 2014-01-04
浏览1278
db2_amateurdb2_amateur数据库架构师wangQJ
:), 谢谢关注!问题已经解决,主要是runstats问题。因a, b, c, d表数据是通过 MERGE 方式生成,后改变写法问题解决。但是还是有疑问,为什么MERGE后runstats会提示页损坏。runstats报错后,如索引页损坏,SQL查询索引字段,没有发现问题。...显示全部
:), 谢谢关注!
问题已经解决,主要是runstats问题。
因a, b, c, d表数据是通过 MERGE 方式生成,后改变写法问题解决。
但是还是有疑问,为什么MERGE后runstats会提示页损坏。
runstats报错后,如索引页损坏,SQL查询索引字段,没有发现问题。收起
互联网服务 · 2014-01-03
浏览1419
Scott_jinScott_jin数据库管理员环境
应该是你本来就有坏页,是runstats做统计的时候发现了。 你试试数据库重启,还能正常起来吗?显示全部
应该是你本来就有坏页,是runstats做统计的时候发现了。 你试试数据库重启,还能正常起来吗?收起
互联网服务 · 2014-01-03
浏览1311
db2_amateurdb2_amateur数据库架构师wangQJ
没有的其他操作,磁盘检查过了,没有问题。操作系统日志没有任何错误信息。显示全部
没有的其他操作,磁盘检查过了,没有问题。操作系统日志没有任何错误信息。收起
互联网服务 · 2014-01-03
浏览1274
junli0411junli0411数据库管理员NULL
回复 3# db2_amateur    换不同的存储,也是这个结果吗?  理论上runstats是不会发生这个结果的。 runstats的同时,你还有别的操作吗?显示全部
回复 3# db2_amateur


   换不同的存储,也是这个结果吗?  理论上runstats是不会发生这个结果的。 runstats的同时,你还有别的操作吗?收起
互联网服务 · 2014-01-03
浏览1332
db2_amateurdb2_amateur数据库架构师wangQJ
实际情况就发生了。已经测试多轮。显示全部
实际情况就发生了。已经测试多轮。收起
互联网服务 · 2014-01-03
浏览1383
jayciededejayciedede技术经理安图特(北京)科技有限公司
runstats 肯定不会对表的数据页或索引页造成损坏啊,之前就有坏块了显示全部
runstats 肯定不会对表的数据页或索引页造成损坏啊,之前就有坏块了收起
互联网服务 · 2014-01-03
浏览1335

提问者

db2_amateur
数据库架构师wangQJ

相关问题

相关资料

问题状态

  • 发布时间:2014-01-02
  • 关注会员:1 人
  • 问题浏览:9348
  • 最近回答:2014-01-04
  • X社区推广