对于那些long running URL来说,重启DB2需要花更长的时间,因此DB2引入了CONSISTENT RESTART的概念。所谓的CONSISTENT RESTART,就是在常规的RESTART加入了一个POSTPONED UR RESOLUTION的阶段。支持在DB2启起来之后,再去back out这些long running的UR。这个功能由LBACKOUT=AUTO/YES控制
那什么样的UR才叫long running UR呢?由ZPARM CHKFREQ and BACKODUR 控制,在所有CATALOG/DIRECTORY都backout完了之后,需要继续backout的的log数量大于等于CHKREQ*BACKODUR, 就认为是个long running UR.
当LBACKOUT=AUTO/YES的时候,当在BLR阶段没能完成BACK OUT的UR就自动转成POSTPONED UR,这样DB2就可以快点启起来。当RESTART 结束的时候, POSTPONED UR里包含的page set就被mark成RESTP(for non-DS)/AREST(for DS)。
START DB..SP..ACCESS(FORCE)也不能消除RESTP/AREST状态,这个很好理解,page set都没有RESTART好怎么能够被访问呢? 正确的办法可以做个RECOVER POSTPONED去complete back out...
可以用DIS THREAD(*) TYPE(POSTPONED)去查看所有POSTPONED THREAD/UR.
使用RECOVER POSTPONED CANCEL去CANCEL掉所有POSTPONED UR...