1. 程式人生 > >DB2中索引(index)失效的原因、確認、重建及監控

DB2中索引(index)失效的原因、確認、重建及監控

本文總結了DB2中索引失效的幾種常見原因,如何找出所有失效的索引以及判斷某個索引是否失效,如何重建失效的索引,以及如何監控索引建立/重建的進度

索引失效的原因

1.) 如果logindexbuild是off(預設選項),那麼建立、重建索引的操作不會記錄到日誌中,之後如果有rollforward操作時,這些索引就會被標記為無效。(例如在t1時刻建立了表並做了backup,在t2時刻建立/重建了索引,那麼之後rollforward到t2時,索引就會失效)

2.) load使用了 INDEXING MODE DEFERRED選項

3.) db2dart顯示地將索引標記為無效了。db2dart有一個選項/MI,只需要輸入表ID、表空間ID,即可將該表上的索引標記為無效。

4.) 之前索引重建/reorg失敗了。 Reorg操作如果因為某些原因失敗,比如臨時表空間不足,則由可能導致索引重建失敗,變為失效狀態


檢視索引是否失效

下面這條SQL可以檢視所有 表模式名 "E105Q5A"下所有表上所有需要重建的索引

db2 "SELECT substr(TABNAME,1,20) as TABNAME, substr(INDSCHEMA,1,20) as INDSCHEMA, substr(INDNAME,1,20) as INDNAME, INDEX_REQUIRES_REBUILD FROM TABLE(sysproc.admin_get_index_info('','E105Q5A','')) AS t where INDEX_REQUIRES_REBUILD= 'Y' "

TABNAME              INDSCHEMA            INDNAME              INDEX_REQUIRES_REBUILD
-------------------- -------------------- -------------------- ----------------------
T1                   E105Q5A              IDX1                 Y                     
T1                   E105Q5A              IDX2                 Y                     

  2 record(s) selected.

https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.sql.rtn.doc/doc/r0054905.html

如何重建失效的索引:

1.) 所有對錶的訪問都被導致失效索引被自動重建

2.) 若indexrec設定為RESTART(預設選項),發出restart database命令也可會自動重建

監控索引重建:

首先診斷日誌會在開始和結束階段各列印一條訊息
2017-03-14-13.03.55.339517+480 E201703A552          LEVEL: Warning
PID     : 37093388             TID : 3343           PROC : db2sysc 0
INSTANCE: e105q5a              NODE : 000           DB   : SAMPLE
APPHDL  : 0-9                  APPID: *LOCAL.e105q5a.170314035841
AUTHID  : E105Q5A              HOSTNAME: db2b
EDUID   : 3343                 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, data management, sqldLoadTCB, probe:10797
MESSAGE : ADM5572I  One or more indexes on table "E105Q5A .T1" are marked 
          invalid and require rebuilding.

2017-03-14-13.03.55.354589+480 E202256A507          LEVEL: Warning
PID     : 37093388             TID : 3343           PROC : db2sysc 0
INSTANCE: e105q5a              NODE : 000           DB   : SAMPLE
APPHDL  : 0-9                  APPID: *LOCAL.e105q5a.170314035841
AUTHID  : E105Q5A              HOSTNAME: db2b
EDUID   : 3343                 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, data management, sqldBeginIndexCreate, probe:1
MESSAGE : ADM5540W  Rebuilding "2" indexes on table "E105Q5A .T1".

2017-03-14-13.03.55.356059+480 E202764A566          LEVEL: Warning
PID     : 37093388             TID : 3343           PROC : db2sysc 0
INSTANCE: e105q5a              NODE : 000           DB   : SAMPLE
APPHDL  : 0-9                  APPID: *LOCAL.e105q5a.170314035841
AUTHID  : E105Q5A              HOSTNAME: db2b
EDUID   : 3343                 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, data management, sqldIndexCreate, probe:1
MESSAGE : ADM5541W  Rebuilding index with IID "1" in object with ID "13" and 
          table space ID "3" on table "E105Q5A .T1".

2017-03-14-13.03.55.358700+480 E203331A566          LEVEL: Warning
PID     : 37093388             TID : 3343           PROC : db2sysc 0
INSTANCE: e105q5a              NODE : 000           DB   : SAMPLE
APPHDL  : 0-9                  APPID: *LOCAL.e105q5a.170314035841
AUTHID  : E105Q5A              HOSTNAME: db2b
EDUID   : 3343                 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, data management, sqldIndexCreate, probe:1
MESSAGE : ADM5541W  Rebuilding index with IID "2" in object with ID "13" and 
          table space ID "3" on table "E105Q5A .T1".

2017-03-14-13.03.55.367301+480 E203898A515          LEVEL: Warning
PID     : 37093388             TID : 3343           PROC : db2sysc 0
INSTANCE: e105q5a              NODE : 000           DB   : SAMPLE
APPHDL  : 0-9                  APPID: *LOCAL.e105q5a.170314035841
AUTHID  : E105Q5A              HOSTNAME: db2b
EDUID   : 3343                 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, data management, sqldEndIndexCreate, probe:1
MESSAGE : ADM5542W  Indexes on table "E105Q5A .T1" are successfully rebuilt.

實時監控重建進度的話,可以參考下面的連結:
http://www-01.ibm.com/support/docview.wss?uid=swg21984248