本文的内容,如题所示:Oracle Database 10g RAC,CRS/DB/Instance升级到:10.2.0.5
本文的整理为事后整理,而非全部都是顺着步骤一步步的做出来的,所以,在有的步骤中的截图与说明可能会出现不够精确与不够全面的问题。

首先,你需要从Oracle的My Oracle Support网站(http://support.oracle.com)上获取10.2.0.5(Patch No:8202632)的补丁包:p8202632_10205_LINUX.zip。

上传介质到服务器并解压:

解压后,是:Disk1。

如果当前有数据库正在运行,需要关闭(一个节点一个节点的关)。
关闭监听器:lsnrctl stop
关闭EM:emctl stop dbconsole
关闭iSQLPlus:isqlplusctl stop
关闭数据库实例:sqlplus / as sysdba —> shutdown immediate

升级有风险,运行需谨慎。所以,可能的话,先做备份吧,备份数据文件(数据库实例),以及软件(CRS与DB)的安装目录。
备份软件目录:
cp -r $ORACLE_HOME /
cp -r $ORA_CRS_HOME /
备份数据库实例:RMAN或者EXP都可以,又或者停库后冷备。

对于Oracle DB 10g RAC的环境,升级到:10.2.0.5大概有以下几个步骤:
1. 升级CRS到10.2.0.5
2. 升级Database到10.2.0.5
3. 升级Instance到10.2.0.5

一、CRS的软件升级
进入补丁的介质目录(Disk1),
执行“./runInstaller -ignoreSysPrereqs”,
调出OUI安装:
crs_upgrade_0
在OUI的图形界面中,大部分的时候都可以“下一步”。
需要注意的是如上图所示的位置,如果你要升级CRS,则需要在这里指定到CRS的安装目录,如果你要升级的是DB,则需要指向到DB的安装目录。

另外,在系统状态自检的步骤,可能会出现多个Warning,它们是可以被手动忽略的。

最后,你会看到下图的安装进度:
crs_upgrade_1
安装进度的步骤,可能会耗时较长,视具体机器的性能而不同。

crs_upgrade_2
执行脚本:
/u01/app/10g/grid/bin/crsctl stop crs
/u01/app/10g/grid/install/root102.sh

执行脚本的时候,需要注意的是顺序:先执行第一个脚本后执行第二个,在执行每个脚本时,要按照后面列出的主机顺序,依次执行。通常是顺着节点一优执行,节点二次之,节点三再次,…以此类推。

在最后一个节点执行脚本时可能会遇到诸如VIPCA的一些问题,需要注释掉:srvctl和vipca中的“LD_ASSUME_KERNEL”,然后重新执行:oifcfg和vipca,即可;如果遇到了类似“java”的报错,也可能是需要注释掉“LD_ASSUME_KERNEL”。

修复完成了,OUI提示的脚本不需要重新执行,继续“NEXT”,就完成了对CRS的升级了。

二、Database软件的升级
一样的是要保证数据库实例没有运行。
如果没有关闭数据库实例,就执行了OUI,你会看到如下警告:
db_upgrade_1

一样的是要进入补丁的介质路径拉起OUI图形化操作。

和CRS升级的不同是如上文所述的,在安装路径选择的时候,选择到Database的软件路径,而不是CRS的软件路径,这是需要注意的部分。

系统自检的部分和CRS一样,有的也是可以手动忽略的。

最后你会看到安装进度条:
db_upgrade_2

db_upgrade_3

然后,你会被要求以“root”去执行某个脚本:
db_upgrade_4

最后:
db_upgrade_5
对数据库软件的升级就结束了。

三、升级数据库实例
对于数据库实例的升级,有两种方案可供选择:DBUA或者手动执行脚本。

下面的篇章中,呈现的是手动执行脚本的技术细节。

升级数据库实例前,你需要拉起CRS资源:
Command is: crs_start -all

查看CRS的资源状态:

如上所示,数据库实例相关的资源无法起来。
查看后台日志(alert_dblogic1.log),你会更明确该问题:

Alert日志的报错显示,必须以“Upgrade”方式启动数据库实例。

在这一步,对于RAC和单实例,是有所差别的:
对于单实例的环境,直接在“SQL>”执行“startup upgrade”,即可进入UPGRADE模式。
但是对于RAC的实例环境,在执行“startup upgrade”之前,需要修改数据库的参数“CLUSTER_DATABASE”,否则无法将数据库启动到“Upgrade”阶段。

RAC的操作具体如下:

如上操作后,就能在RAC的其中一个节点上通过“startup upgrade”登入数据库实例了。

在UPGRADE阶段,执行实例升级脚本:
Step One
1. 执行脚本:@?/rdbms/admin/catupgrd.sql
该脚本执行完了之后,你会看到如下所示的画面:

2. 关闭数据库实例:shutdown immediate

3. 以正常方式启动数据库实例

4. 执行脚本:@?/rdbms/admin/utlrp.sql
该脚本成功的执行完成后,数据库实例的升级就完成了。

查看数据库实例的组件的版本与可用性状态信息:

对于RAC环境,还需要将之前改掉的初始化参数(cluster_database)更正:

最后,依次在其余各个节点上,通过SQL*Plus启动数据库实例“startup”。
成功启动后,你会看到CRS的资源状态,如下所示:

至此,数据库升级完成。
————————————————————————————
Finished:2015年1月30日11:16:20

2 thoughts on “Oracle Database 10g RAC,CRS/DB/Instance升级到:10.2.0.5”

  1. 这次的代码用的是Xmanager的Xshell,所以,代码的呈现上,格式乱掉了,非常的不友好,保持格式方面,SecureCRT做的很好,但是SecureCRT在界面色彩上不如Xshell做的好。这两者难道是不能兼得的吗?

  2. 格式乱掉的部分是:SQL*Plus中的数据表输出格式,而不是全部的格式。
    SQL*Plus里面的数据表格式输出的格式符是用TAB?或者空格?
    是这些方面处理的不好,所以乱掉的吗?

    但是,在UltraEdit的写字板中,两个终端模拟工具中拉出的代码的格式都没有乱掉。

    看来,不同的厂家实现的字处理功能模块还是有很大的差异的。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

隐藏
变装