由于在10.2.0.1版本存在着诸多不便,在安装和使用过程中遇到了不少问题,听取了网友的建议之后,因此决定升级到10.2.0.4,升级过程相对简单,简单记录下。
升级包:p6810189_10204_Linux-x86.zip 大小大约0.98g。
升级之前准备:
仔细阅读安装介质里面的README.html,所有的操作过程这里都写得一清二楚。
做好备份。
0. 查看下升级前版本
操作系统信息:
[oracle@R1 ~]$ cat /etc/issue
Red Hat Enterprise Linux Server release 5.6 (Tikanga)
Kernel \r on an \m
[oracle@R1 ~]$ uname -a
Linux R1 2.6.18-238.el5 #1 SMP Sun Dec 19 14:24:47 EST 2010 i686 i686 i386 GNU/Linux
clusterware版本信息:
[oracle@R1 ~]$ cd $ORA_CRS_HOME/bin
[oracle@R1 bin]$ crsctl query crs softwareversion
CRS software version on node [r1] is [10.2.0.1.0]
数据库版本信息:
[oracle@R1 bin]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Nov 29 14:58:22 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
idle> conn /as sysdba
Connected.
sys@RAC> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
sys@RAC> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
ASM版本信息:
[oracle@R1 bin]$ export ORACLE_SID=+ASM1
[oracle@R1 bin]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Nov 29 14:58:56 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
idle> conn /as sysdba
Connected.
idle> select * from v$version;
BANNER
--------------------------------------------------------------------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
idle> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
[oracle@R1 bin]$ export ORACLE_SID=RAC1
1. 上传升级包到节点R1,并解压出来,解压过程可以使用unzip命令
[oracle@R1 ~]$ pwd
/home/oracle
[oracle@R1 ~]$ ll
总计 1030308
-rw-r--r-- 1 oracle oinstall 5393 11-27 12:06 asmlog.log
-rw-r--r-- 1 oracle oinstall 362 11-05 01:22 crsstart.sh
-rwxr-xr-x 1 oracle oinstall 562 11-04 22:58 crsstat.sh
-rw-r--r-- 1 oracle oinstall 325 11-05 01:17 crsstop.sh
-rw-r--r-- 1 oracle oinstall 8002 11-27 12:06 dblog.log
drwxr-xr-x 2 oracle oinstall 4096 11-02 12:39 Desktop
-rw-r--r-- 1 oracle oinstall 1053748381 11-29 13:51 p6810189_10204_Linux-x86.zip
-rw-r----- 1 oracle oinstall 23610 11-05 07:49 RAC
-rw-r--r-- 1 oracle oinstall 26 11-05 12:40 test
[oracle@R1 ~]$ unzip p6810189_10204_Linux-x86.zip
[oracle@R1 ~]$ ll
总计 1030308
-rw-r--r-- 1 oracle oinstall 5393 11-27 12:06 asmlog.log
-rw-r--r-- 1 oracle oinstall 362 11-05 01:22 crsstart.sh
-rwxr-xr-x 1 oracle oinstall 562 11-04 22:58 crsstat.sh
-rw-r--r-- 1 oracle oinstall 325 11-05 01:17 crsstop.sh
-rw-r--r-- 1 oracle oinstall 8002 11-27 12:06 dblog.log
drwxr-xr-x 2 oracle oinstall 4096 11-02 12:39 Desktop
drwxr-xr-x 5 oracle oinstall 4096 2008-02-22 Disk1
-rw-r--r-- 1 oracle oinstall 1053748381 11-29 13:51 p6810189_10204_Linux-x86.zip
-rw-r----- 1 oracle oinstall 23610 11-05 07:49 RAC
-rw-r--r-- 1 oracle oinstall 178473 2008-02-26 README.html
-rw-r--r-- 1 oracle oinstall 26 11-05 12:40 test
[oracle@R1 ~]$
2. 执行CRS升级
2.1. 首先停止集群相关资源
在节点R1上oracle用户执行
[oracle@R1 ~]$ crs_stat -t
Name Target State Host
------------------------------ ---------- --------- -------
ora.RAC.RAC1.inst ONLINE ONLINE r1
ora.RAC.RAC2.inst ONLINE ONLINE r2
ora.RAC.db ONLINE ONLINE r1
ora.r1.ASM1.asm ONLINE ONLINE r1
ora.r1.LISTENER_R1.lsnr ONLINE ONLINE r1
ora.r1.gsd ONLINE ONLINE r1
ora.r1.ons ONLINE ONLINE r1
ora.r1.vip ONLINE ONLINE r1
ora.r2.ASM2.asm ONLINE ONLINE r2
ora.r2.LISTENER_R2.lsnr ONLINE ONLINE r2
ora.r2.gsd ONLINE ONLINE r2
ora.r2.ons ONLINE ONLINE r2
ora.r2.vip ONLINE ONLINE r2
[oracle@R1 ~]$ crs_stop -all
Attempting to stop `ora.r1.gsd` on member `r1`
Attempting to stop `ora.r1.ons` on member `r1`
Attempting to stop `ora.r2.ons` on member `r2`
Attempting to stop `ora.r2.gsd` on member `r2`
`ora.r2.ons` on member `r2` has experienced an unrecoverable failure.
Human intervention required to resume its availability.
`ora.r2.gsd` on member `r2` has experienced an unrecoverable failure.
Human intervention required to resume its availability.
Stop of `ora.r1.gsd` on member `r1` succeeded.
Stop of `ora.r1.ons` on member `r1` succeeded.
Attempting to stop `ora.r1.vip` on member `r1`
Attempting to stop `ora.r2.vip` on member `r2`
Stop of `ora.r1.vip` on member `r1` succeeded.
Stop of `ora.r2.vip` on member `r2` succeeded.
CRS-0216: Could not stop resource 'ora.r2.gsd'.
CRS-0216: Could not stop resource 'ora.r2.ons'.
[oracle@R1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.r1.gsd application OFFLINE OFFLINE
ora.r1.ons application OFFLINE OFFLINE
ora.r1.vip application OFFLINE OFFLINE
ora.r2.gsd application OFFLINE UNKNOWN r2
ora.r2.ons application OFFLINE UNKNOWN r2
ora.r2.vip application OFFLINE OFFLINE
[oracle@R1 ~]$ crs_stop -all
[oracle@R1 ~]$ crs_stat -t
[oracle@R1 bin]$ crs_stop -all
Attempting to stop `ora.r1.ons` on member `r1`
Attempting to stop `ora.r1.gsd` on member `r1`
Attempting to stop `ora.RAC.db` on member `r1`
Attempting to stop `ora.r2.ons` on member `r2`
Attempting to stop `ora.r2.gsd` on member `r2`
Stop of `ora.r2.gsd` on member `r2` succeeded.
Stop of `ora.r2.ons` on member `r2` succeeded.
Stop of `ora.r1.gsd` on member `r1` succeeded.
Stop of `ora.r1.ons` on member `r1` succeeded.
Stop of `ora.RAC.db` on member `r1` succeeded.
Attempting to stop `ora.r1.LISTENER_R1.lsnr` on member `r1`
Attempting to stop `ora.r2.LISTENER_R2.lsnr` on member `r2`
Stop of `ora.r1.LISTENER_R1.lsnr` on member `r1` succeeded.
`ora.RAC.RAC1.inst` is already OFFLINE.
Attempting to stop `ora.r1.ASM1.asm` on member `r1`
Stop of `ora.r2.LISTENER_R2.lsnr` on member `r2` succeeded.
`ora.RAC.RAC2.inst` is already OFFLINE.
Attempting to stop `ora.r2.ASM2.asm` on member `r2`
Stop of `ora.r1.ASM1.asm` on member `r1` succeeded.
Attempting to stop `ora.r1.vip` on member `r1`
Stop of `ora.r1.vip` on member `r1` succeeded.
Stop of `ora.r2.ASM2.asm` on member `r2` succeeded.
Attempting to stop `ora.r2.vip` on member `r2`
Stop of `ora.r2.vip` on member `r2` succeeded.
CRS-0216: Could not stop resource 'ora.RAC.RAC1.inst'.
CRS-0216: Could not stop resource 'ora.RAC.RAC2.inst'.
[oracle@R1 bin]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....C1.inst application OFFLINE OFFLINE
ora....C2.inst application OFFLINE OFFLINE
ora.RAC.db application OFFLINE OFFLINE
ora....SM1.asm application OFFLINE OFFLINE
ora....R1.lsnr application OFFLINE OFFLINE
ora.r1.gsd application OFFLINE OFFLINE
ora.r1.ons application OFFLINE OFFLINE
ora.r1.vip application OFFLINE OFFLINE
ora....SM2.asm application OFFLINE OFFLINE
ora....R2.lsnr application OFFLINE OFFLINE
ora.r2.gsd application OFFLINE OFFLINE
ora.r2.ons application OFFLINE OFFLINE
ora.r2.vip application OFFLINE OFFLINE
2.2. 停止CRS进程
在节点R1和R2上root执行:
节点R1
[root@R1 ~]# cd /opt/app/product/10.2.0/crs_1/bin/
[root@R1 bin]# pwd
/opt/app/product/10.2.0/crs_1/bin
[root@R1 bin]# ps -ef | grep crs | grep -v "grep"
root 4375 1 0 14:43 ? 00:00:00 /bin/su -l oracle -c sh -c 'ulimit -c unlimited; cd /opt/app/product/10.2.0/crs_1/log/r1/evmd; exec /opt/app/product/10.2.0/crs_1/bin/evmd '
root 4377 1 0 14:43 ? 00:00:07 /opt/app/product/10.2.0/crs_1/bin/crsd.bin reboot
oracle 4826 4375 0 14:44 ? 00:00:01 /opt/app/product/10.2.0/crs_1/bin/evmd.bin
root 4933 4812 0 14:44 ? 00:00:00 /bin/su -l oracle -c /bin/sh -c 'ulimit -c unlimited; cd /opt/app/product/10.2.0/crs_1/log/r1/cssd; /opt/app/product/10.2.0/crs_1/bin/ocssd || exit $?'
oracle 4934 4933 0 14:44 ? 00:00:00 /bin/sh -c ulimit -c unlimited; cd /opt/app/product/10.2.0/crs_1/log/r1/cssd; /opt/app/product/10.2.0/crs_1/bin/ocssd || exit $?
oracle 4962 4934 0 14:44 ? 00:00:02 /opt/app/product/10.2.0/crs_1/bin/ocssd.bin
oracle 5291 4826 0 14:44 ? 00:00:00 /opt/app/product/10.2.0/crs_1/bin/evmlogger.bin -o /opt/app/product/10.2.0/crs_1/evm/log/evmlogger.info -l /opt/app/product/10.2.0/crs_1/evm/log/evmlogger.log
[root@R1 bin]# ./crsctl stop crs
Stopping resources.
Successfully stopped CRS resources
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.
[root@R1 bin]# ps -ef | grep crs | grep -v "grep"
root 16850 1 0 15:12 ? 00:00:00 /bin/sh /etc/init.d/init.crsd run
节点R2
进行同样的操作。
2.3.升级clusterware
在节点R1上oracle执行,登陆图形界面进行操作
[oracle@R1 Disk1]$ export LANG=EN
[oracle@R1 Disk1]$ ll
total 1784
-rw-r--r-- 1 oracle oinstall 1620786 Feb 22 2008 10204_buglist.htm
drwxr-xr-x 4 oracle oinstall 4096 Feb 17 2008 install
-rw-r--r-- 1 oracle oinstall 178465 Feb 23 2008 patch_note.htm
drwxr-xr-x 2 oracle oinstall 4096 Feb 17 2008 response
-rwxr-xr-x 1 oracle oinstall 1756 Feb 17 2008 runInstaller
drwxr-xr-x 10 oracle oinstall 4096 Feb 22 2008 stage
[oracle@R1 Disk1]$ ./runInstaller -ignoreSysPrereqs
这样就可以开始升级操作,需要注意的是在第1个next之后注意选择的CRS的Name和Path,然后next,升级过程中可以该干啥干啥去,升级过程还是很快完成的。
安装结束之后执行提示运行的2个脚本,注意使用root用户分别在R1和R2两个节点执行:
The installer has detected that your Cluster Ready Services (CRS) installation is distributed across the following nodes:
r1
r2
Because the software consists of local identical copies distributed across each of the nodes in the cluster, it is possible to patch your CRS installation in a rolling manner, one node at a time.
To complete the installation of this patchset, you must perform the following tasks on each node:
1. Log in as the root user.
2. As the root user, perform the following tasks:
a. Shutdown the CRS daemons by issuing the following command:
/opt/app/product/10.2.0/crs_1/bin/crsctl stop crs
b. Run the shell script located at:
/opt/app/product/10.2.0/crs_1/install/root102.sh
This script will automatically start the CRS daemons on the
patched node upon completion.
3. After completing this procedure, proceed to the next node and repeat.
注意的是现在R1执行完成2个脚本之后再去R2执行。
节点R1上执行脚本:
[root@R1 bin]# /opt/app/product/10.2.0/crs_1/bin/crsctl stop crs
Stopping resources.
Error while stopping resources. Possible cause: CRSD is down.
Stopping CSSD.
Unable to communicate with the CSS daemon.
[root@R1 bin]# /opt/app/product/10.2.0/crs_1/install/root102.sh
Creating pre-patch directory for saving pre-patch clusterware files
Completed patching clusterware files to /opt/app/product/10.2.0/crs_1
Relinking some shared libraries.
Relinking of patched files is complete.
WARNING: directory '/opt/app/product/10.2.0' is not owned by root
WARNING: directory '/opt/app/product' is not owned by root
WARNING: directory '/opt/app' is not owned by root
WARNING: directory '/opt' is not owned by root
Preparing to recopy patched init and RC scripts.
Recopying init and RC scripts.
Startup will be queued to init within 30 seconds.
Starting up the CRS daemons.
Waiting for the patched CRS daemons to start.
This may take a while on some systems.
.
10204 patch successfully applied.
clscfg: EXISTING configuration version 3 detected.
clscfg: version 3 is 10G Release 2.
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node <nodenumber>: <nodename> <private interconnect name> <hostname>
node 1: r1 r1-priv r1
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
clscfg -upgrade completed successfully
节点R2上执行脚本:
进行同样的操作。
执行完脚本之后,记得点击执行界面退出完成安装。
2.4. 升级database software
2.4.1. 停止CRS相关资源
由于在完成clusterware升级之后,会将相关资源启动,但是在进行database software的时候需要停掉相关资源。
[oracle@R1 bin]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....C1.inst application ONLINE ONLINE r1
ora....C2.inst application ONLINE ONLINE r2
ora.RAC.db application ONLINE ONLINE r1
ora....SM1.asm application ONLINE ONLINE r1
ora....R1.lsnr application ONLINE ONLINE r1
ora.r1.gsd application ONLINE ONLINE r1
ora.r1.ons application ONLINE ONLINE r1
ora.r1.vip application ONLINE ONLINE r1
ora....SM2.asm application ONLINE ONLINE r2
ora....R2.lsnr application ONLINE ONLINE r2
ora.r2.gsd application ONLINE ONLINE r2
ora.r2.ons application ONLINE ONLINE r2
ora.r2.vip application ONLINE ONLINE r2
[oracle@R1 bin]$ crs_stop -all
Attempting to stop `ora.RAC.db` on member `r1`
Attempting to stop `ora.r1.gsd` on member `r1`
Attempting to stop `ora.r1.ons` on member `r1`
Attempting to stop `ora.r2.ons` on member `r2`
Attempting to stop `ora.r2.gsd` on member `r2`
Stop of `ora.r1.gsd` on member `r1` succeeded.
Stop of `ora.r2.gsd` on member `r2` succeeded.
Stop of `ora.r2.ons` on member `r2` succeeded.
Stop of `ora.r1.ons` on member `r1` succeeded.
Stop of `ora.RAC.db` on member `r1` succeeded.
`ora.RAC.RAC1.inst` is already OFFLINE.
`ora.RAC.RAC2.inst` is already OFFLINE.
Attempting to stop `ora.r1.ASM1.asm` on member `r1`
Attempting to stop `ora.r1.LISTENER_R1.lsnr` on member `r1`
Attempting to stop `ora.r2.ASM2.asm` on member `r2`
Attempting to stop `ora.r2.LISTENER_R2.lsnr` on member `r2`
Stop of `ora.r2.LISTENER_R2.lsnr` on member `r2` succeeded.
Attempting to stop `ora.r2.vip` on member `r2`
Stop of `ora.r2.vip` on member `r2` succeeded.
Stop of `ora.r1.LISTENER_R1.lsnr` on member `r1` succeeded.
Attempting to stop `ora.r1.vip` on member `r1`
Stop of `ora.r1.ASM1.asm` on member `r1` succeeded.
Stop of `ora.r1.vip` on member `r1` succeeded.
Stop of `ora.r2.ASM2.asm` on member `r2` succeeded.
CRS-0216: Could not stop resource 'ora.RAC.RAC1.inst'.
CRS-0216: Could not stop resource 'ora.RAC.RAC2.inst'.
[oracle@R1 bin]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....C1.inst application OFFLINE OFFLINE
ora....C2.inst application OFFLINE OFFLINE
ora.RAC.db application OFFLINE OFFLINE
ora....SM1.asm application OFFLINE OFFLINE
ora....R1.lsnr application OFFLINE OFFLINE
ora.r1.gsd application OFFLINE OFFLINE
ora.r1.ons application OFFLINE OFFLINE
ora.r1.vip application OFFLINE OFFLINE
ora....SM2.asm application OFFLINE OFFLINE
ora....R2.lsnr application OFFLINE OFFLINE
ora.r2.gsd application OFFLINE OFFLINE
ora.r2.ons application OFFLINE OFFLINE
ora.r2.vip application OFFLINE OFFLINE
2.4.2. 执行database software 升级
还是在图形界面上执行同样的安装脚本,注意选择的database的Name和Path。注意这个步骤可能会遇到在复制到远程节点和解压过程中出现错误的情况,解决办法是在执行安装之前将安装节点的时间调整比其他节点慢10分钟左右。
[oracle@R1 Disk1]$ ./runInstaller -ignoreSysPrereqs
这个升级过程有的漫长,慢慢等待吧,安装结束之后在R1和R2上用root执行提示的脚本:
节点R1执行脚本:
[root@R1 ~]# /opt/app/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /opt/app/product/10.2.0/db_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying coraenv to /usr/local/bin ...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
节点R1执行脚本:
[root@R2 ~]# /opt/app/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /opt/app/product/10.2.0/db_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying coraenv to /usr/local/bin ...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
3. 完成升级
3.1. 完成升级后,将crs进程和资源启动起来。
[oracle@R1 logs]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.r1.gsd application OFFLINE OFFLINE
ora.r1.ons application OFFLINE OFFLINE
ora.r1.vip application OFFLINE OFFLINE
ora.r2.gsd application OFFLINE OFFLINE
ora.r2.ons application OFFLINE OFFLINE
ora.r2.vip application OFFLINE OFFLINE
[oracle@R1 logs]$ crs_start -all
Attempting to start `ora.r1.vip` on member `r1`
Attempting to start `ora.r2.vip` on member `r2`
Start of `ora.r1.vip` on member `r1` succeeded.
Start of `ora.r2.vip` on member `r2` succeeded.
Attempting to start `ora.r2.ons` on member `r2`
Attempting to start `ora.r1.ons` on member `r1`
Attempting to start `ora.r1.gsd` on member `r1`
Attempting to start `ora.r2.gsd` on member `r2`
Start of `ora.r1.gsd` on member `r1` succeeded.
Start of `ora.r2.gsd` on member `r2` succeeded.
Start of `ora.r2.ons` on member `r2` succeeded.
Start of `ora.r1.ons` on member `r1` succeeded.
[oracle@R1 logs]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.r1.gsd application ONLINE ONLINE r1
ora.r1.ons application ONLINE ONLINE r1
ora.r1.vip application ONLINE ONLINE r1
ora.r2.gsd application ONLINE ONLINE r2
ora.r2.ons application ONLINE ONLINE r2
ora.r2.vip application ONLINE ONLINE r2
3.2. 检查升级结果
[oracle@R1 logs]$ cd /opt/app/product/10.2.0/crs_1/bin/
[oracle@R1 bin]$ crsctl query crs softwareversion
CRS software version on node [r1] is [10.2.0.4.0]
[oracle@R1 bin]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.4.0 - Production on Mon Nov 28 19:20:33 2011
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
SQL>
可以看到已经完成升级到了10.2.0.4.0版本。
-The End-
升级包:p6810189_10204_Linux-x86.zip 大小大约0.98g。
升级之前准备:
仔细阅读安装介质里面的README.html,所有的操作过程这里都写得一清二楚。
做好备份。
0. 查看下升级前版本
操作系统信息:
[oracle@R1 ~]$ cat /etc/issue
Red Hat Enterprise Linux Server release 5.6 (Tikanga)
Kernel \r on an \m
[oracle@R1 ~]$ uname -a
Linux R1 2.6.18-238.el5 #1 SMP Sun Dec 19 14:24:47 EST 2010 i686 i686 i386 GNU/Linux
clusterware版本信息:
[oracle@R1 ~]$ cd $ORA_CRS_HOME/bin
[oracle@R1 bin]$ crsctl query crs softwareversion
CRS software version on node [r1] is [10.2.0.1.0]
数据库版本信息:
[oracle@R1 bin]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Nov 29 14:58:22 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
idle> conn /as sysdba
Connected.
sys@RAC> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
sys@RAC> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
ASM版本信息:
[oracle@R1 bin]$ export ORACLE_SID=+ASM1
[oracle@R1 bin]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Nov 29 14:58:56 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
idle> conn /as sysdba
Connected.
idle> select * from v$version;
BANNER
--------------------------------------------------------------------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
idle> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
[oracle@R1 bin]$ export ORACLE_SID=RAC1
1. 上传升级包到节点R1,并解压出来,解压过程可以使用unzip命令
[oracle@R1 ~]$ pwd
/home/oracle
[oracle@R1 ~]$ ll
总计 1030308
-rw-r--r-- 1 oracle oinstall 5393 11-27 12:06 asmlog.log
-rw-r--r-- 1 oracle oinstall 362 11-05 01:22 crsstart.sh
-rwxr-xr-x 1 oracle oinstall 562 11-04 22:58 crsstat.sh
-rw-r--r-- 1 oracle oinstall 325 11-05 01:17 crsstop.sh
-rw-r--r-- 1 oracle oinstall 8002 11-27 12:06 dblog.log
drwxr-xr-x 2 oracle oinstall 4096 11-02 12:39 Desktop
-rw-r--r-- 1 oracle oinstall 1053748381 11-29 13:51 p6810189_10204_Linux-x86.zip
-rw-r----- 1 oracle oinstall 23610 11-05 07:49 RAC
-rw-r--r-- 1 oracle oinstall 26 11-05 12:40 test
[oracle@R1 ~]$ unzip p6810189_10204_Linux-x86.zip
[oracle@R1 ~]$ ll
总计 1030308
-rw-r--r-- 1 oracle oinstall 5393 11-27 12:06 asmlog.log
-rw-r--r-- 1 oracle oinstall 362 11-05 01:22 crsstart.sh
-rwxr-xr-x 1 oracle oinstall 562 11-04 22:58 crsstat.sh
-rw-r--r-- 1 oracle oinstall 325 11-05 01:17 crsstop.sh
-rw-r--r-- 1 oracle oinstall 8002 11-27 12:06 dblog.log
drwxr-xr-x 2 oracle oinstall 4096 11-02 12:39 Desktop
drwxr-xr-x 5 oracle oinstall 4096 2008-02-22 Disk1
-rw-r--r-- 1 oracle oinstall 1053748381 11-29 13:51 p6810189_10204_Linux-x86.zip
-rw-r----- 1 oracle oinstall 23610 11-05 07:49 RAC
-rw-r--r-- 1 oracle oinstall 178473 2008-02-26 README.html
-rw-r--r-- 1 oracle oinstall 26 11-05 12:40 test
[oracle@R1 ~]$
2. 执行CRS升级
2.1. 首先停止集群相关资源
在节点R1上oracle用户执行
[oracle@R1 ~]$ crs_stat -t
Name Target State Host
------------------------------ ---------- --------- -------
ora.RAC.RAC1.inst ONLINE ONLINE r1
ora.RAC.RAC2.inst ONLINE ONLINE r2
ora.RAC.db ONLINE ONLINE r1
ora.r1.ASM1.asm ONLINE ONLINE r1
ora.r1.LISTENER_R1.lsnr ONLINE ONLINE r1
ora.r1.gsd ONLINE ONLINE r1
ora.r1.ons ONLINE ONLINE r1
ora.r1.vip ONLINE ONLINE r1
ora.r2.ASM2.asm ONLINE ONLINE r2
ora.r2.LISTENER_R2.lsnr ONLINE ONLINE r2
ora.r2.gsd ONLINE ONLINE r2
ora.r2.ons ONLINE ONLINE r2
ora.r2.vip ONLINE ONLINE r2
[oracle@R1 ~]$ crs_stop -all
Attempting to stop `ora.r1.gsd` on member `r1`
Attempting to stop `ora.r1.ons` on member `r1`
Attempting to stop `ora.r2.ons` on member `r2`
Attempting to stop `ora.r2.gsd` on member `r2`
`ora.r2.ons` on member `r2` has experienced an unrecoverable failure.
Human intervention required to resume its availability.
`ora.r2.gsd` on member `r2` has experienced an unrecoverable failure.
Human intervention required to resume its availability.
Stop of `ora.r1.gsd` on member `r1` succeeded.
Stop of `ora.r1.ons` on member `r1` succeeded.
Attempting to stop `ora.r1.vip` on member `r1`
Attempting to stop `ora.r2.vip` on member `r2`
Stop of `ora.r1.vip` on member `r1` succeeded.
Stop of `ora.r2.vip` on member `r2` succeeded.
CRS-0216: Could not stop resource 'ora.r2.gsd'.
CRS-0216: Could not stop resource 'ora.r2.ons'.
[oracle@R1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.r1.gsd application OFFLINE OFFLINE
ora.r1.ons application OFFLINE OFFLINE
ora.r1.vip application OFFLINE OFFLINE
ora.r2.gsd application OFFLINE UNKNOWN r2
ora.r2.ons application OFFLINE UNKNOWN r2
ora.r2.vip application OFFLINE OFFLINE
[oracle@R1 ~]$ crs_stop -all
[oracle@R1 ~]$ crs_stat -t
[oracle@R1 bin]$ crs_stop -all
Attempting to stop `ora.r1.ons` on member `r1`
Attempting to stop `ora.r1.gsd` on member `r1`
Attempting to stop `ora.RAC.db` on member `r1`
Attempting to stop `ora.r2.ons` on member `r2`
Attempting to stop `ora.r2.gsd` on member `r2`
Stop of `ora.r2.gsd` on member `r2` succeeded.
Stop of `ora.r2.ons` on member `r2` succeeded.
Stop of `ora.r1.gsd` on member `r1` succeeded.
Stop of `ora.r1.ons` on member `r1` succeeded.
Stop of `ora.RAC.db` on member `r1` succeeded.
Attempting to stop `ora.r1.LISTENER_R1.lsnr` on member `r1`
Attempting to stop `ora.r2.LISTENER_R2.lsnr` on member `r2`
Stop of `ora.r1.LISTENER_R1.lsnr` on member `r1` succeeded.
`ora.RAC.RAC1.inst` is already OFFLINE.
Attempting to stop `ora.r1.ASM1.asm` on member `r1`
Stop of `ora.r2.LISTENER_R2.lsnr` on member `r2` succeeded.
`ora.RAC.RAC2.inst` is already OFFLINE.
Attempting to stop `ora.r2.ASM2.asm` on member `r2`
Stop of `ora.r1.ASM1.asm` on member `r1` succeeded.
Attempting to stop `ora.r1.vip` on member `r1`
Stop of `ora.r1.vip` on member `r1` succeeded.
Stop of `ora.r2.ASM2.asm` on member `r2` succeeded.
Attempting to stop `ora.r2.vip` on member `r2`
Stop of `ora.r2.vip` on member `r2` succeeded.
CRS-0216: Could not stop resource 'ora.RAC.RAC1.inst'.
CRS-0216: Could not stop resource 'ora.RAC.RAC2.inst'.
[oracle@R1 bin]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....C1.inst application OFFLINE OFFLINE
ora....C2.inst application OFFLINE OFFLINE
ora.RAC.db application OFFLINE OFFLINE
ora....SM1.asm application OFFLINE OFFLINE
ora....R1.lsnr application OFFLINE OFFLINE
ora.r1.gsd application OFFLINE OFFLINE
ora.r1.ons application OFFLINE OFFLINE
ora.r1.vip application OFFLINE OFFLINE
ora....SM2.asm application OFFLINE OFFLINE
ora....R2.lsnr application OFFLINE OFFLINE
ora.r2.gsd application OFFLINE OFFLINE
ora.r2.ons application OFFLINE OFFLINE
ora.r2.vip application OFFLINE OFFLINE
2.2. 停止CRS进程
在节点R1和R2上root执行:
节点R1
[root@R1 ~]# cd /opt/app/product/10.2.0/crs_1/bin/
[root@R1 bin]# pwd
/opt/app/product/10.2.0/crs_1/bin
[root@R1 bin]# ps -ef | grep crs | grep -v "grep"
root 4375 1 0 14:43 ? 00:00:00 /bin/su -l oracle -c sh -c 'ulimit -c unlimited; cd /opt/app/product/10.2.0/crs_1/log/r1/evmd; exec /opt/app/product/10.2.0/crs_1/bin/evmd '
root 4377 1 0 14:43 ? 00:00:07 /opt/app/product/10.2.0/crs_1/bin/crsd.bin reboot
oracle 4826 4375 0 14:44 ? 00:00:01 /opt/app/product/10.2.0/crs_1/bin/evmd.bin
root 4933 4812 0 14:44 ? 00:00:00 /bin/su -l oracle -c /bin/sh -c 'ulimit -c unlimited; cd /opt/app/product/10.2.0/crs_1/log/r1/cssd; /opt/app/product/10.2.0/crs_1/bin/ocssd || exit $?'
oracle 4934 4933 0 14:44 ? 00:00:00 /bin/sh -c ulimit -c unlimited; cd /opt/app/product/10.2.0/crs_1/log/r1/cssd; /opt/app/product/10.2.0/crs_1/bin/ocssd || exit $?
oracle 4962 4934 0 14:44 ? 00:00:02 /opt/app/product/10.2.0/crs_1/bin/ocssd.bin
oracle 5291 4826 0 14:44 ? 00:00:00 /opt/app/product/10.2.0/crs_1/bin/evmlogger.bin -o /opt/app/product/10.2.0/crs_1/evm/log/evmlogger.info -l /opt/app/product/10.2.0/crs_1/evm/log/evmlogger.log
[root@R1 bin]# ./crsctl stop crs
Stopping resources.
Successfully stopped CRS resources
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.
[root@R1 bin]# ps -ef | grep crs | grep -v "grep"
root 16850 1 0 15:12 ? 00:00:00 /bin/sh /etc/init.d/init.crsd run
节点R2
进行同样的操作。
2.3.升级clusterware
在节点R1上oracle执行,登陆图形界面进行操作
[oracle@R1 Disk1]$ export LANG=EN
[oracle@R1 Disk1]$ ll
total 1784
-rw-r--r-- 1 oracle oinstall 1620786 Feb 22 2008 10204_buglist.htm
drwxr-xr-x 4 oracle oinstall 4096 Feb 17 2008 install
-rw-r--r-- 1 oracle oinstall 178465 Feb 23 2008 patch_note.htm
drwxr-xr-x 2 oracle oinstall 4096 Feb 17 2008 response
-rwxr-xr-x 1 oracle oinstall 1756 Feb 17 2008 runInstaller
drwxr-xr-x 10 oracle oinstall 4096 Feb 22 2008 stage
[oracle@R1 Disk1]$ ./runInstaller -ignoreSysPrereqs
这样就可以开始升级操作,需要注意的是在第1个next之后注意选择的CRS的Name和Path,然后next,升级过程中可以该干啥干啥去,升级过程还是很快完成的。
安装结束之后执行提示运行的2个脚本,注意使用root用户分别在R1和R2两个节点执行:
The installer has detected that your Cluster Ready Services (CRS) installation is distributed across the following nodes:
r1
r2
Because the software consists of local identical copies distributed across each of the nodes in the cluster, it is possible to patch your CRS installation in a rolling manner, one node at a time.
To complete the installation of this patchset, you must perform the following tasks on each node:
1. Log in as the root user.
2. As the root user, perform the following tasks:
a. Shutdown the CRS daemons by issuing the following command:
/opt/app/product/10.2.0/crs_1/bin/crsctl stop crs
b. Run the shell script located at:
/opt/app/product/10.2.0/crs_1/install/root102.sh
This script will automatically start the CRS daemons on the
patched node upon completion.
3. After completing this procedure, proceed to the next node and repeat.
注意的是现在R1执行完成2个脚本之后再去R2执行。
节点R1上执行脚本:
[root@R1 bin]# /opt/app/product/10.2.0/crs_1/bin/crsctl stop crs
Stopping resources.
Error while stopping resources. Possible cause: CRSD is down.
Stopping CSSD.
Unable to communicate with the CSS daemon.
[root@R1 bin]# /opt/app/product/10.2.0/crs_1/install/root102.sh
Creating pre-patch directory for saving pre-patch clusterware files
Completed patching clusterware files to /opt/app/product/10.2.0/crs_1
Relinking some shared libraries.
Relinking of patched files is complete.
WARNING: directory '/opt/app/product/10.2.0' is not owned by root
WARNING: directory '/opt/app/product' is not owned by root
WARNING: directory '/opt/app' is not owned by root
WARNING: directory '/opt' is not owned by root
Preparing to recopy patched init and RC scripts.
Recopying init and RC scripts.
Startup will be queued to init within 30 seconds.
Starting up the CRS daemons.
Waiting for the patched CRS daemons to start.
This may take a while on some systems.
.
10204 patch successfully applied.
clscfg: EXISTING configuration version 3 detected.
clscfg: version 3 is 10G Release 2.
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node <nodenumber>: <nodename> <private interconnect name> <hostname>
node 1: r1 r1-priv r1
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
clscfg -upgrade completed successfully
节点R2上执行脚本:
进行同样的操作。
执行完脚本之后,记得点击执行界面退出完成安装。
2.4. 升级database software
2.4.1. 停止CRS相关资源
由于在完成clusterware升级之后,会将相关资源启动,但是在进行database software的时候需要停掉相关资源。
[oracle@R1 bin]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....C1.inst application ONLINE ONLINE r1
ora....C2.inst application ONLINE ONLINE r2
ora.RAC.db application ONLINE ONLINE r1
ora....SM1.asm application ONLINE ONLINE r1
ora....R1.lsnr application ONLINE ONLINE r1
ora.r1.gsd application ONLINE ONLINE r1
ora.r1.ons application ONLINE ONLINE r1
ora.r1.vip application ONLINE ONLINE r1
ora....SM2.asm application ONLINE ONLINE r2
ora....R2.lsnr application ONLINE ONLINE r2
ora.r2.gsd application ONLINE ONLINE r2
ora.r2.ons application ONLINE ONLINE r2
ora.r2.vip application ONLINE ONLINE r2
[oracle@R1 bin]$ crs_stop -all
Attempting to stop `ora.RAC.db` on member `r1`
Attempting to stop `ora.r1.gsd` on member `r1`
Attempting to stop `ora.r1.ons` on member `r1`
Attempting to stop `ora.r2.ons` on member `r2`
Attempting to stop `ora.r2.gsd` on member `r2`
Stop of `ora.r1.gsd` on member `r1` succeeded.
Stop of `ora.r2.gsd` on member `r2` succeeded.
Stop of `ora.r2.ons` on member `r2` succeeded.
Stop of `ora.r1.ons` on member `r1` succeeded.
Stop of `ora.RAC.db` on member `r1` succeeded.
`ora.RAC.RAC1.inst` is already OFFLINE.
`ora.RAC.RAC2.inst` is already OFFLINE.
Attempting to stop `ora.r1.ASM1.asm` on member `r1`
Attempting to stop `ora.r1.LISTENER_R1.lsnr` on member `r1`
Attempting to stop `ora.r2.ASM2.asm` on member `r2`
Attempting to stop `ora.r2.LISTENER_R2.lsnr` on member `r2`
Stop of `ora.r2.LISTENER_R2.lsnr` on member `r2` succeeded.
Attempting to stop `ora.r2.vip` on member `r2`
Stop of `ora.r2.vip` on member `r2` succeeded.
Stop of `ora.r1.LISTENER_R1.lsnr` on member `r1` succeeded.
Attempting to stop `ora.r1.vip` on member `r1`
Stop of `ora.r1.ASM1.asm` on member `r1` succeeded.
Stop of `ora.r1.vip` on member `r1` succeeded.
Stop of `ora.r2.ASM2.asm` on member `r2` succeeded.
CRS-0216: Could not stop resource 'ora.RAC.RAC1.inst'.
CRS-0216: Could not stop resource 'ora.RAC.RAC2.inst'.
[oracle@R1 bin]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....C1.inst application OFFLINE OFFLINE
ora....C2.inst application OFFLINE OFFLINE
ora.RAC.db application OFFLINE OFFLINE
ora....SM1.asm application OFFLINE OFFLINE
ora....R1.lsnr application OFFLINE OFFLINE
ora.r1.gsd application OFFLINE OFFLINE
ora.r1.ons application OFFLINE OFFLINE
ora.r1.vip application OFFLINE OFFLINE
ora....SM2.asm application OFFLINE OFFLINE
ora....R2.lsnr application OFFLINE OFFLINE
ora.r2.gsd application OFFLINE OFFLINE
ora.r2.ons application OFFLINE OFFLINE
ora.r2.vip application OFFLINE OFFLINE
2.4.2. 执行database software 升级
还是在图形界面上执行同样的安装脚本,注意选择的database的Name和Path。注意这个步骤可能会遇到在复制到远程节点和解压过程中出现错误的情况,解决办法是在执行安装之前将安装节点的时间调整比其他节点慢10分钟左右。
[oracle@R1 Disk1]$ ./runInstaller -ignoreSysPrereqs
这个升级过程有的漫长,慢慢等待吧,安装结束之后在R1和R2上用root执行提示的脚本:
节点R1执行脚本:
[root@R1 ~]# /opt/app/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /opt/app/product/10.2.0/db_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying coraenv to /usr/local/bin ...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
节点R1执行脚本:
[root@R2 ~]# /opt/app/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /opt/app/product/10.2.0/db_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying coraenv to /usr/local/bin ...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
3. 完成升级
3.1. 完成升级后,将crs进程和资源启动起来。
[oracle@R1 logs]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.r1.gsd application OFFLINE OFFLINE
ora.r1.ons application OFFLINE OFFLINE
ora.r1.vip application OFFLINE OFFLINE
ora.r2.gsd application OFFLINE OFFLINE
ora.r2.ons application OFFLINE OFFLINE
ora.r2.vip application OFFLINE OFFLINE
[oracle@R1 logs]$ crs_start -all
Attempting to start `ora.r1.vip` on member `r1`
Attempting to start `ora.r2.vip` on member `r2`
Start of `ora.r1.vip` on member `r1` succeeded.
Start of `ora.r2.vip` on member `r2` succeeded.
Attempting to start `ora.r2.ons` on member `r2`
Attempting to start `ora.r1.ons` on member `r1`
Attempting to start `ora.r1.gsd` on member `r1`
Attempting to start `ora.r2.gsd` on member `r2`
Start of `ora.r1.gsd` on member `r1` succeeded.
Start of `ora.r2.gsd` on member `r2` succeeded.
Start of `ora.r2.ons` on member `r2` succeeded.
Start of `ora.r1.ons` on member `r1` succeeded.
[oracle@R1 logs]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.r1.gsd application ONLINE ONLINE r1
ora.r1.ons application ONLINE ONLINE r1
ora.r1.vip application ONLINE ONLINE r1
ora.r2.gsd application ONLINE ONLINE r2
ora.r2.ons application ONLINE ONLINE r2
ora.r2.vip application ONLINE ONLINE r2
3.2. 检查升级结果
[oracle@R1 logs]$ cd /opt/app/product/10.2.0/crs_1/bin/
[oracle@R1 bin]$ crsctl query crs softwareversion
CRS software version on node [r1] is [10.2.0.4.0]
[oracle@R1 bin]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.4.0 - Production on Mon Nov 28 19:20:33 2011
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
SQL>
可以看到已经完成升级到了10.2.0.4.0版本。
-The End-