原创 REBUILD INDEX

接上文,當CHECK INDEX發現index上有錯的時候,當確認data是好的時候,可以執行REBUILD INDEX。REBUILD INDEX的工作機制是從data裏面抽取key column的數據,排序,然後重新build一個新的

原创 常用IPCS命令

主機上的程序ABEND之後,通常會生成一個DUMP,表示ABEND時候各個地址空間的鏡像,通過分析DUMP,我們就知道是什麼條件觸發了ABEND, 而unformatted dump是肉眼無法讀取的,因此就要藉助IPCS命令去format

原创 FAST TRAVERSE BLOCK(FTB)

    INDEX是一個B樹結構,在訪問index entry的時候,要從root page開始,折半找到non-leaf page,最後逐漸遍歷至leaf page,leaf page上存了所有的index entry(key+RID)

原创 OVERFLOW RECORD

如果當前page已經滿了,此時某些record如果變長,長到當前page裝不下,這種情況下,就會產生overflow record, 此時DB2會根據SMAP的信息,把變長後的record存到別的page上。此時index entry裏存

原创 TS extend

在創建TABLESPACE的時候,PRIQTY指定首次分配多少空間,SECQTY指定後續extend多少空間,如果都是-1的話,就是SMS來管理每次extend多少空間,當然總數不能超過DSSIZE。LISTCAT是來看VSAM使用情況的

原创 CREATE TS

從RR看,CREATE TS經歷了兩個pseudo open的操作在data set close過後,如果經歷了一段時間又重新open,進行updat

原创 LOB DATA

   DB2z的一個I/O單元是一個page(數據頁),一個page的大小取決於bp的大小,通常可以是4K,8K,16K和32K,所以一條record最長不能超過32K,顯然這個不符合現在的應用,某些數據,比如說文檔,圖片,影音什麼的通常

原创 Split index leaf page

原创 OBD

OBD: 由DDL創建數據庫裏各種對象OBDDBD/DBD/databaseOBDFILEOBDPSET/PAGE SET/FILE PAGE SET/PSFI/TABLESPACEOBDFSET/FANSET/INDEX PAGE SE

原创 00C9 ERROR

最近忽然想到一個問題,爲什麼Db2z在發現內部錯誤的時候,拋出的reason code是00C9XXXX,後來仔細一想,在主機環境下EBCDIC C9的編碼就是I, I是internal的縮寫,所以這個reason code,就是DB2Z

原创 CHECK INDEX

當INDEX有問題的時候,CHECK INDEX會告訴你INDEX有什麼問題,在REPORT裏會列出相關的index key, RID信息。看一下check index output:DSNU708I 告訴我們RID 202上的index

原创 COLD RESTART DB2

有時候LOG壞了或者丟了,APPLY LOG出了ABEND,NORMAL RESTART ABEND 或者 HUNG住了,在正常RESTART 不能正常work的情況下,只能上COLD RESTART, COLD RESTART不到萬不得

原创 update

update某條記錄的時候,如果index key column也被update了,那麼在找到index entry後,先對舊的index entry做一個pseudo delete,再插入一條新的index entry(new key+

原创 GROUP BUFFERPOOL(GBP) CASTOUT

GBP 存放的是由某個 member 更改的但是在所有 member 間共享的數據頁,所以當很多數據頁被頻繁修改的時候,GBP 裏就會存很多的 page, 同時DB2有後臺程序,不斷的從GBP裏CASTOUT數據頁到DASD。DB2z會在

原创 PAGE REGRESSION

所謂的page regression,說白了就是兩個UR對同一個record進行了update,這樣第一個UR的update就會被miss掉,這是不允許的。導致page regression的原因有很多,需要進一步分析。如果UR A對某條