下載oracle rac的安裝補丁p8202632_10205_Linux-x86-64.zip,clusterware和database的補丁都包含在這裏面node
1.升級clusterware軟件包sql
1)首先中止全部資源,不建議使用crs_stop -all來中止數據庫
- [oracle@node1 bin]$srvctl start nodeapps -n node1
- [oracle@node2 bin]$srvctl start nodeapps -n node2
查看狀態oracle
- [oracle@node2 bin]$ crs_stat -t
- Name Type Target State Host
- ------------------------------------------------------------
- ora....E1.lsnr application OFFLINE OFFLINE
- ora.node1.gsd application OFFLINE OFFLINE
- ora.node1.ons application OFFLINE OFFLINE
- ora.node1.vip application OFFLINE OFFLINE
- ora....E2.lsnr application OFFLINE OFFLINE
- ora.node2.gsd application OFFLINE OFFLINE
- ora.node2.ons application OFFLINE OFFLINE
- ora.node2.vip application OFFLINE OFFLINE
- ora.orcl.db application OFFLINE OFFLINE
- ora....l1.inst application OFFLINE OFFLINE
- ora....l2.inst application OFFLINE OFFLINE
2)而後切換到oracle用戶,開啓安裝進程app
- [root@node1 ~]# chown -R oracle.oinstall /home/oracle/Disk1/
- [oracle@node1 Disk1]$ ./runInstaller
3)選擇crs補丁的安裝目錄及名稱,這個保持和第一次安裝時候一致
ide
4)選擇集羣安裝方式
測試
5)安裝進行中
spa
6)按照要求在全部節點上面執行腳本,必定要在第一個節點執行完畢以後再在第二個節點上面執行
3d
- [root@node1 ~]# /home/oracle/oracrs/product/10.2.0/crs/bin/crsctl stop crs
- Stopping resources.
- Successfully stopped CRS resources
- Stopping CSSD.
- Shutting down CSS daemon.
- Shutdown request successfully issued.
- [root@node1 node1]# /home/oracle/oracrs/product/10.2.0/crs/install/root102.sh
- Creating pre-patch directory for saving pre-patch clusterware files
- Completed patching clusterware files to /home/oracle/oracrs/product/10.2.0/crs
- Relinking some shared libraries.
- Relinking of patched files is complete.
- WARNING: directory '/home/oracle/oracrs/product/10.2.0' is not owned by root
- WARNING: directory '/home/oracle/oracrs/product' is not owned by root
- WARNING: directory '/home/oracle/oracrs' is not owned by root
- WARNING: directory '/home/oracle' 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.
- .
- 10205 patch successfully applied.
- clscfg: EXISTING configuration version 3 detected.
- clscfg: version 3 is 10G Release 2.
- Successfully deleted 1 values from OCR.
- Successfully deleted 1 keys from OCR.
- 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: node1 node1-priv node1
- Creating OCR keys for user 'root', privgrp 'root'..
- Operation successful.
- clscfg -upgrade completed successfully
- Creating '/home/oracle/oracrs/product/10.2.0/crs/install/paramfile.crs' with data used for CRS configuration
- Setting CRS configuration values in /home/oracle/oracrs/product/10.2.0/crs/install/paramfile.crs
查看狀態日誌
- [oracle@node2 bin]$ crs_stat -t
- Name Type Target State Host
- ------------------------------------------------------------
- ora....SM1.asm application ONLINE ONLINE node1
- ora....E1.lsnr application ONLINE ONLINE node1
- ora.node1.gsd application ONLINE ONLINE node1
- ora.node1.ons application ONLINE ONLINE node1
- ora.node1.vip application ONLINE ONLINE node1
- ora....SM2.asm application ONLINE ONLINE node2
- ora....E2.lsnr application ONLINE ONLINE node2
- ora.node2.gsd application ONLINE ONLINE node2
- ora.node2.ons application ONLINE ONLINE node2
- ora.node2.vip application ONLINE ONLINE node2
- ora.orcl.db application ONLINE ONLINE node1
- ora....l1.inst application ONLINE ONLINE node1
- ora....l2.inst application ONLINE ONLINE node2
2.數據庫升級
最好在建庫以前進行數據庫的升級,我這裏是建庫以後進行的,相對來講麻煩一點
1)若是安裝了管理器和isqlplus執行以下命令中止:
- emctl stop dbconsole
- isqlplusctl stop
- [oracle@node1 bin]$ emctl stop dbconsole
- TZ set to PRC
- OC4J Configuration issue. /orac/orahome/10.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_node1_orcl not found.
- [oracle@node1 bin]$ isqlplusctl stop
- iSQL*Plus 10.2.0.1.0
- Copyright (c) 2003, 2005, Oracle. All rights reserved.
- getnameinfo failed
- getnameinfo failed
- getnameinfo failed
- getnameinfo failed
- getnameinfo failed
- getnameinfo failed
- getnameinfo failed
- getnameinfo failed
- getnameinfo failed
- iSQL*Plus instance on port 5560 is not running ...
2)中止服務和實例
在兩個節點上面中止nodeapps(如下命令在兩個節點上面都執行一下)
- [oracle@node1 bin]$ srvctl stop nodeapps -n node1
- [oracle@node2 bin]$ srvctl stop nodeapps -n node2
- [oracle@node1 bin]$ crs_stat -t
- Name Type Target State Host
- ------------------------------------------------------------
- ora....SM1.asm application OFFLINE OFFLINE
- ora....E1.lsnr application OFFLINE OFFLINE
- ora.node1.gsd application OFFLINE OFFLINE
- ora.node1.ons application OFFLINE OFFLINE
- ora.node1.vip application OFFLINE OFFLINE
- ora....SM2.asm application OFFLINE OFFLINE
- ora....E2.lsnr application OFFLINE OFFLINE
- ora.node2.gsd application OFFLINE OFFLINE
- ora.node2.ons application OFFLINE OFFLINE
- ora.node2.vip application OFFLINE OFFLINE
- ora.orcl.db application OFFLINE OFFLINE
- ora....l1.inst application OFFLINE OFFLINE
- ora....l2.inst application OFFLINE OFFLINE
3)而後開啓安裝進程,選擇安裝目錄
4)選擇集羣安裝
5)按照要求切換root用戶執行腳本
6)啓動兩個節點上面的資源
- [oracle@node1 ~]$ srvctl start nodeapps -n node1
- [oracle@node2 ~]$ srvctl start nodeapps -n node2
- [oracle@node1 ~]$ srvctl start asm -n node1
- [oracle@node2 ~]$ srvctl start asm -n node2
- [oracle@node2 bin]$ crs_stat -t
- Name Type Target State Host
- ------------------------------------------------------------
- ora....SM1.asm application ONLINE ONLINE node1
- ora....E1.lsnr application ONLINE ONLINE node1
- ora.node1.gsd application ONLINE ONLINE node1
- ora.node1.ons application ONLINE ONLINE node1
- ora.node1.vip application ONLINE ONLINE node1
- ora....SM2.asm application ONLINE ONLINE node2
- ora....E2.lsnr application ONLINE ONLINE node2
- ora.node2.gsd application ONLINE ONLINE node2
- ora.node2.ons application ONLINE ONLINE node2
- ora.node2.vip application ONLINE ONLINE node2
- ora.orcl.db application OFFLINE OFFLINE
- ora....l1.inst application OFFLINE OFFLINE
- ora....l2.inst application OFFLINE OFFLINE
7)在其中一個節點進行操做
- SQL> STARTUP NOMOUNT
- SQL> ALTER SYSTEM SET SHARED_POOL_SIZE='150M' SCOPE=spfile;
- System altered.
- SQL> ALTER SYSTEM SET JAVA_POOL_SIZE='150M' SCOPE=spfile;
- System altered.
- SQL> ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=spfile;
- System altered.
保證SHARED_POOL_SIZE和JAVA_POOL_SIZE不小於150m。由於數據文件是共享的,因此升級的時候只須要在其中一個節點升級就好了,因此要把CLUSTER_DATABASE設成FALSE。
8)執行更新腳本
- SQL> STARTUP UPGRADE
- SQL> SPOOL patch.log
- SQL> @?/rdbms/admin/catupgrd.sql
- SQL> SPOOL OFF
- 檢查日誌看有沒有錯誤,若是沒有錯誤,則重啓數據庫:
- SQL> shutdown immediate
- Database closed.
- Database dismounted.
- ORACLE instance shut down.
- SQL> startup
- ORACLE instance started.
- Total System Global Area 469762048 bytes
- Fixed Size 1262428 bytes
- Variable Size 419433636 bytes
- Database Buffers 46137344 bytes
- Redo Buffers 2928640 bytes
- Database mounted.
- Database opened.
9)編譯無效對象
- SQL> @?/rdbms/admin/utlrp.sql
10)修改參數
- SQL> ALTER SYSTEM SET CLUSTER_DATABASE=TRUE SCOPE=spfile;
- SQL> shutdown immediate
- Database closed.
- Database dismounted.
- ORACLE instance shut down.
升級完成,關閉數據庫。
3.測試
1)在兩個節點上面啓動實例
- [oracle@node1 bin]$ ./srvctl start database -d orcl
- [oracle@node2 bin]$ ./srvctl start database -d orc2
- [oracle@node2 bin]$ crs_stat -t
- Name Type Target State Host
- ------------------------------------------------------------
- ora....SM1.asm application ONLINE ONLINE node1
- ora....E1.lsnr application ONLINE ONLINE node1
- ora.node1.gsd application ONLINE ONLINE node1
- ora.node1.ons application ONLINE ONLINE node1
- ora.node1.vip application ONLINE ONLINE node1
- ora....SM2.asm application ONLINE ONLINE node2
- ora....E2.lsnr application ONLINE ONLINE node2
- ora.node2.gsd application ONLINE ONLINE node2
- ora.node2.ons application ONLINE ONLINE node2
- ora.node2.vip application ONLINE ONLINE node2
- ora.orcl.db application ONLINE ONLINE node1
- ora....l1.inst application ONLINE ONLINE node1
- ora....l2.inst application ONLINE ONLINE node2
2)用pl/sql鏈接查看
- orcl =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.183.141)(PORT = 1521))
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.183.142)(PORT = 1521))
- (LOAD_BALANCE = yes)
- )
- (CONNECT_DATA =
- (SERVICE_NAME = orcl)
- )
- )
3)當前鏈接到node1
查看數據庫版本,顯示已經升級了
關閉node1的實例
- [oracle@node1 bin]$ srvctl stop instance -d orcl -i orcl1
- [oracle@node1 bin]$ crs_stat -t
- Name Type Target State Host
- ------------------------------------------------------------
- ora....SM1.asm application ONLINE ONLINE node1
- ora....E1.lsnr application ONLINE ONLINE node1
- ora.node1.gsd application ONLINE ONLINE node1
- ora.node1.ons application ONLINE ONLINE node1
- ora.node1.vip application ONLINE ONLINE node1
- ora....SM2.asm application ONLINE ONLINE node2
- ora....E2.lsnr application ONLINE ONLINE node2
- ora.node2.gsd application ONLINE ONLINE node2
- ora.node2.ons application ONLINE ONLINE node2
- ora.node2.vip application ONLINE ONLINE node2
- ora.orcl.db application ONLINE ONLINE node1
- ora....l1.inst application OFFLINE OFFLINE
- ora....l2.inst application ONLINE ONLINE node2
4)顯示當前鏈接到node2
查看數據庫版本,顯示也是已經升級過的