有时候LOG坏了或者丢了,APPLY LOG出了ABEND,NORMAL RESTART ABEND 或者 HUNG住了,在正常RESTART 不能正常work的情况下,只能上COLD RESTART, COLD RESTART不到万不得已,一定不能使用,因为即使在DB2 RESTART之后,DB2仍然可能出在inconsistent状态。
执行COLD RESTART DB2之前,除了做COLD RESTART的member,其他所有member都要关掉。COLD RESTART一定要用ACCESS(MAINT)启动DB2,再解决了所有的inconsistencises后,再正常启动DB2(WITHOUT ACCESS(MAINT))
• Stop all other members of the data sharing group, except the one needs to do cold start.
• Cold start the member using ACCESS (MAINT), after resolving the data inconsistencies,
restart without ACCESS (MAINT).
COLD RESTART步骤:
Run DSNJU004 to print BSDS
• Find the RBA for the most recent CHECKPOINT
• Run DSN1LOGP with SUMMARY(ONLY) from the last begin checkpoint to the end of the log
• Find the RBA/LRSN of the last log records has been written, then round up to the next CI as the cold start RBA
写的最后一个LOGRBA是00000000000052BCA310,入到下一个CI就是00000000000052BCB000
• Get the incomplete URs list and pending write list from summary report, the object accessed by these incomplete URs need to be recovered.
在EC上,暂时没法构造一个incomplete的UR,所以即使是ignore这个TS后,数据仍然是consistent的。但是如果是这一段log客户丢了,没法正常RESTART,那么绕过这段LOG去做COLD RESTART就能在不apply log的情况下把DB2启起来,DB2就会处于inconsistent的状态。
• DSNJU003 to create CRCR using RBA from DSN1LOGP.