Oracle数据库ASM功能详解
2.2 ASM滚动升级
在ORACLE11g及之后的版本,你可以把ASM的集群置为"滚动升级"模式,充许不同版本的ASM结点共同工作。滚动升级"模式中的每个结点能够独立的升级或打补丁,而不会影响到数据库的使用,因些其很大的提升数据库的正常运行时间。需要注意的是你只可以对ORACLE11g及之后的版本进行"滚动升级",换句话说,你不能用这种功能把ORACLE10g的数据库升级到11G的。
在进行滚动升级前,你的环境也一定要做一定的准备的。举例来说,如果你使用了ORACLE Clusterware软件,在你开如做滚动升级前,Clusterware也一定要完整的升级到下一个满足要求的版本。当然,做Clusterware升级时也应当用滚动的方式,更大的确保高稳定性和最大的正常运行时间。
在对一个结点的ASM软件打补丁或进行升级之前,必须把ASM集群置为滚动升级模式,这允许开始升级和操作你的环境在多个软件版本的模式,语句如下:
ALTER SYSTEM START ROLLING MIGRATION TO number;
number是由版本号、发行号、更新号、端口发行号和端口更新号这几部分组成的,中间以逗号分开,例如11.2.0.0.0。
实例在运行这条语句时会检查你指定的number与当前已安装的软件版本是不是兼容。当升级开始后,ASM实例只有如下的一些操作才是充许的:
磁盘组挂载和卸载
数据库文件打开,关闭,重新设定尺寸和删除
限制访问ORACLE自带的视图和包,所有的全局视图都是失效的
在滚动升级开始后,可以任意一个宕掉ASM实例来进行软件升级,升级完的ASM实例在启动后会自动重新加入ASM集群。当集群中的所有实例都完成升级到最新的软件版本后,你就可以结束滚动升级模式了。
如果一块磁盘在ASM实例进行滚动升级时是脱机的,那么直到升级结速这块磁盘都会保持脱机的状态,而且直到ASM集群回到正常模式触发删除磁盘的记时器也是停止的。
如果升级过级出现问题,可以用同样的过程回滚结点的软件到之前的版本。集群的任一地方有数据重整操作,升级会失败,所以必须等数据重整操作完成才可以开始滚动升级。另外,只要集群中有一个结点是活动的,滚动升级状态是保留的。
如果一个集群正在进行滚动升级时一个新的ASM实例加进来,新的实例会被告知集群正处在滚动升级模式,你可以用如下的SQL语句查询ASM集群环境的状态:
SELECT SYS_CONTEXT('sys_cluster_properties', 'cluster_state') FROM DUAL;
如果ASM集群所有的实例都停了,那么当任何一个ASM实例重新启动,这个实例都会脱离滚动升级模式。如要实例都重新启动后 还要进行升级,必须重新开始滚动升级操作。
当滚动升级完成后,运行如下的SQL:
ALTER SYSTEM STOP ROLLING MIGRATION;
发出这条语句后,ORACLE做了如下的一些操作:
校验ASM集群的所有成员的软件版本是不是相同,如果一个或几个实例运行在不同的软件版本,这条语句会报错,集群继续处在滚动升级模式.
使集群的所有实例都脱离滚动升级模式,集群开始全功能工作
如果设定ASM_POWER_LIMIT参数允许数据重整理,因滚动升级而被阻塞的数据重整理操作会重新开始。
0
相关文章