需要评估RAC在某一个实例故障后,剩余实例多长时间可以恢复服务。
假设一个RAC包含A和B两个实例,现在A突然挂掉,那么实例B在经过多长时间后,可以正常提供服务?
个人理解:1、首先是心跳超时时间(缺省30秒),在这段时间内,RAC集群不会有任何动作,但当访问B的会话需要更新一个原本A持有的缓存块时,会hang住或者出错;
2、前述达到超时时间后,集群内的存活实例(也就是B)开始了资源的重新配置,这个过程是要冻结整个数据库的访问的;
3、存活实例读取故障实例的redo日志进行恢复,恢复完成后,数据库解冻;
4、对故障实例的undo日志进行在线恢复,这个阶段应该不影响对数据库的访问。所以,在A故障后,B在上面前3个阶段也是不能被正常访问的。请教一下,我的理解是正确的吗?如果是正确的,前3个阶段一般总计会占用多少时间(肯定和实际部署相关,只想了解一个大概的经验值)?