下载oracle rac的安装补丁p8202632_10205_Linux-x86-64.zip,clusterware和database的补丁都包含在这里面

1.升级clusterware软件包

1)首先停止所有资源,不建议使用crs_stop -all来停止

 
  
  1. [oracle@node1 bin]$srvctl start nodeapps -n node1 
  2. [oracle@node2 bin]$srvctl start nodeapps -n node2 

查看状态

 
  
  1. [oracle@node2 bin]$ crs_stat -t 
  2. Name           Type           Target    State     Host         
  3. ------------------------------------------------------------ 
  4. ora....E1.lsnr application    OFFLINE   OFFLINE                
  5. ora.node1.gsd  application    OFFLINE   OFFLINE                
  6. ora.node1.ons  application    OFFLINE   OFFLINE                
  7. ora.node1.vip  application    OFFLINE   OFFLINE                
  8. ora....E2.lsnr application    OFFLINE   OFFLINE                
  9. ora.node2.gsd  application    OFFLINE   OFFLINE                
  10. ora.node2.ons  application    OFFLINE   OFFLINE                
  11. ora.node2.vip  application    OFFLINE   OFFLINE                
  12. ora.orcl.db    application    OFFLINE   OFFLINE                
  13. ora....l1.inst application    OFFLINE   OFFLINE                
  14. ora....l2.inst application    OFFLINE   OFFLINE 

2)然后切换到oracle用户,开启安装进程

 
  
  1. [root@node1 ~]# chown -R oracle.oinstall /home/oracle/Disk1/ 
  2. [oracle@node1 Disk1]$ ./runInstaller 

3)选择crs补丁的安装目录及名称,这个保持和第一次安装时候一致

4)选择集群安装方式

5)安装进行中

6)按照要求在所有节点上面执行脚本,一定要在第一个节点执行完毕之后再在第二个节点上面执行

 
  
  1. [root@node1 ~]# /home/oracle/oracrs/product/10.2.0/crs/bin/crsctl stop crs 
  2. Stopping resources. 
  3. Successfully stopped CRS resources  
  4. Stopping CSSD. 
  5. Shutting down CSS daemon. 
  6. Shutdown request successfully issued. 
  7.  
  8. [root@node1 node1]# /home/oracle/oracrs/product/10.2.0/crs/install/root102.sh  
  9. Creating pre-patch directory for saving pre-patch clusterware files 
  10. Completed patching clusterware files to /home/oracle/oracrs/product/10.2.0/crs 
  11. Relinking some shared libraries. 
  12. Relinking of patched files is complete. 
  13. WARNING: directory '/home/oracle/oracrs/product/10.2.0' is not owned by root 
  14. WARNING: directory '/home/oracle/oracrs/product' is not owned by root 
  15. WARNING: directory '/home/oracle/oracrs' is not owned by root 
  16. WARNING: directory '/home/oracle' is not owned by root 
  17. Preparing to recopy patched init and RC scripts. 
  18. Recopying init and RC scripts. 
  19. Startup will be queued to init within 30 seconds. 
  20. Starting up the CRS daemons. 
  21. Waiting for the patched CRS daemons to start. 
  22.   This may take a while on some systems. 
  23. 10205 patch successfully applied. 
  24. clscfg: EXISTING configuration version 3 detected. 
  25. clscfg: version 3 is 10G Release 2. 
  26. Successfully deleted 1 values from OCR. 
  27. Successfully deleted 1 keys from OCR. 
  28. Successfully accumulated necessary OCR keys. 
  29. Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897. 
  30. node <nodenumber>: <nodename> <private interconnect name> <hostname> 
  31. node 1: node1 node1-priv node1 
  32. Creating OCR keys for user 'root', privgrp 'root'.. 
  33. Operation successful. 
  34. clscfg -upgrade completed successfully 
  35. Creating '/home/oracle/oracrs/product/10.2.0/crs/install/paramfile.crs' with data used for CRS configuration 
  36. Setting CRS configuration values in /home/oracle/oracrs/product/10.2.0/crs/install/paramfile.crs 

查看状态

 
  
  1. [oracle@node2 bin]$ crs_stat -t 
  2. Name           Type           Target    State     Host         
  3. ------------------------------------------------------------ 
  4. ora....SM1.asm application    ONLINE    ONLINE    node1        
  5. ora....E1.lsnr application    ONLINE    ONLINE    node1        
  6. ora.node1.gsd  application    ONLINE    ONLINE    node1        
  7. ora.node1.ons  application    ONLINE    ONLINE    node1        
  8. ora.node1.vip  application    ONLINE    ONLINE    node1        
  9. ora....SM2.asm application    ONLINE    ONLINE    node2        
  10. ora....E2.lsnr application    ONLINE    ONLINE    node2        
  11. ora.node2.gsd  application    ONLINE    ONLINE    node2        
  12. ora.node2.ons  application    ONLINE    ONLINE    node2        
  13. ora.node2.vip  application    ONLINE    ONLINE    node2        
  14. ora.orcl.db    application    ONLINE    ONLINE    node1        
  15. ora....l1.inst application    ONLINE    ONLINE    node1        
  16. ora....l2.inst application    ONLINE    ONLINE    node2 

 

2.数据库升级

最好在建库之前进行数据库的升级,我这里是建库之后进行的,相对来说麻烦一点

1)如果安装了管理器和isqlplus执行如下命令停止:

 
  
  1. emctl stop dbconsole 
  2. isqlplusctl stop 
  3.  
  4. [oracle@node1 bin]$ emctl stop dbconsole 
  5. TZ set to PRC 
  6. OC4J Configuration issue. /orac/orahome/10.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_node1_orcl not found.  
  7. [oracle@node1 bin]$ isqlplusctl stop 
  8. iSQL*Plus 10.2.0.1.0 
  9. Copyright (c) 20032005, Oracle.  All rights reserved. 
  10. getnameinfo failed 
  11. getnameinfo failed 
  12. getnameinfo failed 
  13. getnameinfo failed 
  14. getnameinfo failed 
  15. getnameinfo failed 
  16. getnameinfo failed 
  17. getnameinfo failed 
  18. getnameinfo failed 
  19. iSQL*Plus instance on port 5560 is not running ... 

 

2)停止服务和实例

在两个节点上面停止nodeapps(以下命令在两个节点上面都执行一下)

 
  
  1. [oracle@node1 bin]$ srvctl stop nodeapps -n node1 
  2. [oracle@node2 bin]$ srvctl stop nodeapps -n node2 
  3. [oracle@node1 bin]$ crs_stat -t 
  4. Name           Type           Target    State     Host         
  5. ------------------------------------------------------------ 
  6. ora....SM1.asm application    OFFLINE   OFFLINE                
  7. ora....E1.lsnr application    OFFLINE   OFFLINE                
  8. ora.node1.gsd  application    OFFLINE   OFFLINE                
  9. ora.node1.ons  application    OFFLINE   OFFLINE                
  10. ora.node1.vip  application    OFFLINE   OFFLINE                
  11. ora....SM2.asm application    OFFLINE   OFFLINE                
  12. ora....E2.lsnr application    OFFLINE   OFFLINE                
  13. ora.node2.gsd  application    OFFLINE   OFFLINE                
  14. ora.node2.ons  application    OFFLINE   OFFLINE                
  15. ora.node2.vip  application    OFFLINE   OFFLINE                
  16. ora.orcl.db    application    OFFLINE   OFFLINE                
  17. ora....l1.inst application    OFFLINE   OFFLINE                
  18. ora....l2.inst application    OFFLINE   OFFLINE 

3)然后开启安装进程,选择安装目录

4)选择集群安装

5)按照要求切换root用户执行脚本

6)启动两个节点上面的资源

 
  
  1. [oracle@node1 ~]$ srvctl start nodeapps -n node1 
  2. [oracle@node2 ~]$ srvctl start nodeapps -n node2 
  3. [oracle@node1 ~]$ srvctl start asm -n node1 
  4. [oracle@node2 ~]$ srvctl start asm -n node2 
  5. [oracle@node2 bin]$ crs_stat -t 
  6. Name           Type           Target    State     Host         
  7. ------------------------------------------------------------ 
  8. ora....SM1.asm application    ONLINE    ONLINE    node1        
  9. ora....E1.lsnr application    ONLINE    ONLINE    node1        
  10. ora.node1.gsd  application    ONLINE    ONLINE    node1        
  11. ora.node1.ons  application    ONLINE    ONLINE    node1        
  12. ora.node1.vip  application    ONLINE    ONLINE    node1        
  13. ora....SM2.asm application    ONLINE    ONLINE    node2        
  14. ora....E2.lsnr application    ONLINE    ONLINE    node2        
  15. ora.node2.gsd  application    ONLINE    ONLINE    node2        
  16. ora.node2.ons  application    ONLINE    ONLINE    node2        
  17. ora.node2.vip  application    ONLINE    ONLINE    node2        
  18. ora.orcl.db    application    OFFLINE   OFFLINE                
  19. ora....l1.inst application    OFFLINE   OFFLINE                
  20. ora....l2.inst application    OFFLINE   OFFLINE 

7)在其中一个节点进行操作

 
  
  1. SQL> STARTUP NOMOUNT 
  2. SQL> ALTER SYSTEM SET SHARED_POOL_SIZE='150M' SCOPE=spfile; 
  3. System altered. 
  4. SQL> ALTER SYSTEM SET JAVA_POOL_SIZE='150M' SCOPE=spfile; 
  5. System altered. 
  6. SQL> ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=spfile; 
  7. System altered. 

保证SHARED_POOL_SIZE和JAVA_POOL_SIZE不小于150m。因为数据文件是共享的,所以升级的时候只需要在其中一个节点升级就行了,所以要把CLUSTER_DATABASE设成FALSE。

8)执行更新脚本

 
  
  1. SQL> STARTUP UPGRADE 
  2. SQL> SPOOL patch.log 
  3. SQL> @?/rdbms/admin/catupgrd.sql 
  4. SQL> SPOOL OFF 
  5. 检查日志看有没有错误,如果没有错误,则重启数据库: 
  6. SQL> shutdown immediate 
  7. Database closed. 
  8. Database dismounted. 
  9. ORACLE instance shut down. 
  10. SQL> startup 
  11. ORACLE instance started. 
  12. Total System Global Area 469762048 bytes 
  13. Fixed Size                 1262428 bytes 
  14. Variable Size            419433636 bytes 
  15. Database Buffers          46137344 bytes 
  16. Redo Buffers               2928640 bytes 
  17. Database mounted. 
  18. Database opened. 

9)编译无效对象

 
  
  1. SQL> @?/rdbms/admin/utlrp.sql 

10)修改参数

 
  
  1. SQL> ALTER SYSTEM SET CLUSTER_DATABASE=TRUE SCOPE=spfile; 
  2. SQL> shutdown immediate 
  3. Database closed. 
  4. Database dismounted. 
  5. ORACLE instance shut down. 

升级完成,关闭数据库。

3.测试

1)在两个节点上面启动实例

 
  
  1. [oracle@node1 bin]$ ./srvctl start database -d orcl 
  2. [oracle@node2 bin]$ ./srvctl start database -d orc2 
  3. [oracle@node2 bin]$ crs_stat -t 
  4. Name           Type           Target    State     Host         
  5. ------------------------------------------------------------ 
  6. ora....SM1.asm application    ONLINE    ONLINE    node1        
  7. ora....E1.lsnr application    ONLINE    ONLINE    node1        
  8. ora.node1.gsd  application    ONLINE    ONLINE    node1        
  9. ora.node1.ons  application    ONLINE    ONLINE    node1        
  10. ora.node1.vip  application    ONLINE    ONLINE    node1        
  11. ora....SM2.asm application    ONLINE    ONLINE    node2        
  12. ora....E2.lsnr application    ONLINE    ONLINE    node2        
  13. ora.node2.gsd  application    ONLINE    ONLINE    node2        
  14. ora.node2.ons  application    ONLINE    ONLINE    node2        
  15. ora.node2.vip  application    ONLINE    ONLINE    node2        
  16. ora.orcl.db    application    ONLINE    ONLINE    node1        
  17. ora....l1.inst application    ONLINE    ONLINE    node1        
  18. ora....l2.inst application    ONLINE    ONLINE    node2 

2)用pl/sql连接查看

 
  
  1. orcl = 
  2.   (DESCRIPTION = 
  3.     (ADDRESS_LIST = 
  4.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.183.141)(PORT = 1521)) 
  5.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.183.142)(PORT = 1521)) 
  6.       (LOAD_BALANCE = yes) 
  7.     ) 
  8.     (CONNECT_DATA = 
  9.       (SERVICE_NAME = orcl) 
  10.     ) 
  11.   ) 

3)当前连接到node1

查看数据库版本,显示已经升级了

关闭node1的实例

 
  
  1. [oracle@node1 bin]$ srvctl stop instance -d orcl -i orcl1 
  2. [oracle@node1 bin]$ crs_stat -t 
  3. Name           Type           Target    State     Host         
  4. ------------------------------------------------------------ 
  5. ora....SM1.asm application    ONLINE    ONLINE    node1        
  6. ora....E1.lsnr application    ONLINE    ONLINE    node1        
  7. ora.node1.gsd  application    ONLINE    ONLINE    node1        
  8. ora.node1.ons  application    ONLINE    ONLINE    node1        
  9. ora.node1.vip  application    ONLINE    ONLINE    node1        
  10. ora....SM2.asm application    ONLINE    ONLINE    node2        
  11. ora....E2.lsnr application    ONLINE    ONLINE    node2        
  12. ora.node2.gsd  application    ONLINE    ONLINE    node2        
  13. ora.node2.ons  application    ONLINE    ONLINE    node2        
  14. ora.node2.vip  application    ONLINE    ONLINE    node2        
  15. ora.orcl.db    application    ONLINE    ONLINE    node1        
  16. ora....l1.inst application    OFFLINE   OFFLINE                
  17. ora....l2.inst application    ONLINE    ONLINE    node2 

4)显示当前连接到node2

查看数据库版本,显示也是已经升级过的