Oracle RAC 手動升級 11.2.0.3.4

DBA_建瑾發表於2014-08-30


Oracle RAC 11.2.0.3.2 手動升級 11.2.0.3.4


作業系統:RHEL6.2 64bit
Oracle Database
 版本:11.2.0.3.2
Oracle Grid
 版本:11.2.0.3.2
說明:文章包括升級準備,升級操作,回退操作(可回退到11.2.0.3.2

升級準備


查詢兩個節點grid opatch版本(Opatch版本必需是11.2.0.3或更高的版本)

[root@rac1 ~]# su - grid

[grid@rac1 ~]$ cd $ORACLE_HOME

[grid@rac1 grid]$ OPatch/opatch version

OPatch Version: 11.2.0.3.5

OPatch succeeded.

 

查詢已安裝補丁情況

[grid@rac1 ~]$ $ORACLE_HOME/OPatch/opatch lspatches

13696216;Database Patch Set Update : 11.2.0.3.2 (13696216)

13696251;Grid Infrastructure Patch Set Update : 11.2.0.3.2 (13696251)

 

節點2操作相同

查詢兩個節點oracle 使用者opatch版本

[root@rac1 ~]# su - oracle

[oracle@rac1 ~]$ $ORACLE_HOME/OPatch/opatch version

OPatch Version: 11.2.0.3.5

OPatch succeeded.

 

查詢已安裝補丁情況

[oracle@rac1 ~]$ $ORACLE_HOME/OPatch/opatch lspatches

13696216;Database Patch Set Update : 11.2.0.3.2 (13696216)

13696251;Grid Infrastructure Patch Set Update : 11.2.0.3.2 (13696251)

 

節點2操作相同

上傳補丁介質

[root@rac1 ~]# cd /u01/app/

[root@rac1 app]# mkdir patches

[root@rac1 app]# chown grid:oinstall patches

[root@rac1 app]# su - grid

[grid@rac1 ~]$ cd /u01/app/patches/

[grid@rac1 patches]$ ls

p14275572_1120304_Linux-x86-64.zip

 

節點2操作相同

解壓補丁(使用grid使用者執行)

[root@rac1 patches]# su grid

[grid@rac1 patches]$ unzip p14275572_1120304_Linux-x86-64.zip

 

節點2操作相同

補丁衝突檢查

 

Grid使用者執行1

$ opatch prereq CheckConflictAgainstOHWithDetail -ph /14275605 –oh $GRID_HOME

[grid@rac1 patches]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph 14275605 -oh $ORACLE_HOME

 

節點2操作相同

Grid使用者執行2

$ opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /14275572 –oh $GRID_HOME

[grid@rac1 patches]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir 14275572 -oh $ORACLE_HOME

 

節點2操作相同

Oracle使用者執行1

$ opatch prereq CheckConflictAgainstOHWithDetail -ph /14275605 –oh $DB_HOME

[oracle@rac1 ~]$ cd /u01/app/patches/

[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph 14275605 -oh $ORACLE_HOME

 

節點2操作相同

Oracle使用者執行2

$ opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /14275572/custom/server/14275572 –oh $DB_HOME

[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir 14275572/custom/server/14275572 -oh $ORACLE_HOME


 

節點2操作相同

停止EM服務(oracle使用者執行)

[oracle@rac1 patches]$ emctl stop dbconsole

Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.

[oracle@rac1 patches]$ env |grep ORACLE

ORACLE_SID=enmo1

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

[oracle@rac1 patches]$ export ORACLE_UNQNAME=enmo

[oracle@rac1 patches]$ emctl stop dbconsole

 

節點2操作相同

 

升級操作


1.停止應用補丁節點DB(oracle使用者執行)

$ /bin/srvctl stop home -o  -s  -n 

[oracle@rac1 ~]$ srvctl stop home -o $ORACLE_HOME -s /home/oracle/state_file.txt  -n rac1

節點2操作相同

[oracle@rac2 ~]$ srvctl stop home -o $ORACLE_HOME -s /home/oracle/state_file.txt  -n rac2

 

2.停止crs叢集(使用root使用者執行)

# /crs/install/rootcrs.pl -unlock

[root@rac1 ~]# $ORACLE_HOME/crs/install/rootcrs.pl –unlock

 

節點2操作相同

 

注:停止叢集后使用ps –ef | grep ora確保所有oracle程式已經停止,否則會出現檔案佔用報錯,無法應用補丁。

 

3.應用crs補丁(grid使用者執行)

$ /OPatch/opatch napply -oh  -local /14275572

[grid@rac1 patches]$ $ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local /u01/app/patches/14275572

 

節點2操作相同

 

應用crs補丁2grid使用者執行)

$ /OPatch/opatch apply -oh  -local /14275605

[grid@rac1 patches]$  $ORACLE_HOME/OPatch/opatch apply -oh $ORACLE_HOME -local /u01/app/patches/14275605

 

節點2操作相同

 

4.應用db元件補丁前執行指令碼(oracle使用者執行)

$ /14275572/custom/server/14275572/custom/scripts/prepatch.sh -dbhome 

[oracle@rac1 ~]$ cd /u01/app/patches

[oracle@rac1 patches]$ 14275572/custom/server/14275572/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME

 

節點2操作相同

 

5. 應用DB補丁(oracle使用者執行)

$ /OPatch/opatch napply -oh  -local /14275572/custom/server/14275572

[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local 14275572/custom/server/14275572

 

節點2操作相同

 

應用DB補丁2oracle使用者執行)

$ /OPatch/opatch apply -oh  -local /14275605

[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch apply -oh $ORACLE_HOME -local 14275605

 

節點2操作相同

 

6. 應用DB補丁後執行指令碼(oracle使用者執行)

$ /14275572/custom/server/14275572/custom/scripts/postpatch.sh -dbhome 

[oracle@rac1 patches]$ 14275572/custom/server/14275572/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME

 

節點2操作相同

 

7.使用root使用者執行指令碼

# /rdbms/install/rootadd_rdbms.sh

[root@rac1 ~]# $ORACLE_HOME/rdbms/install/rootadd_rdbms.sh

 

節點2操作相同

 

使用root使用者執行指令碼2啟動crs

# /crs/install/rootcrs.pl -patch

[root@rac1 ~]# $ORACLE_HOME/crs/install/rootcrs.pl –patch

 

節點2操作相同

 

注:如果提示“A system reboot is recommended before using ACFS”需要重啟。

 

8. 開啟應用補丁節點DBoracle使用者執行)

$ /bin/srvctl start home -o  -s  -n 

[oracle@rac1 ~]$ $ORACLE_HOME/bin/srvctl start home -o $ORACLE_HOME -s /home/oracle/state_file.txt -n rac1

 

節點2操作相同

[oracle@rac2 ~]$  $ORACLE_HOME/bin/srvctl start home -o $ORACLE_HOME -s /home/oracle/state_file.txt -n rac2

 

9.執行指令碼更新DB補丁記錄(sysdba使用者登入例項)

SQL> @?/rdbms/admin/catbundle.sql psu apply

 

10.檢查補丁狀態

查詢DB補丁記錄

SQL> col action_time for a30

SQL> col version for a15

SQL> col id for 99

SQL> col action for a10

SQL> col namespace for a10

SQL> col COMMENTS for a20

SQL> col BUNDLE_SERIES for a15

SQL> select * from registry$history;

查詢補丁狀態grid使用者執行

[grid@rac1 patches]$ $ORACLE_HOME/OPatch/opatch lspatches

[grid@rac1 patches]$ $ORACLE_HOME/OPatch/opatch lsinventory

 

節點2操作相同

查詢補丁狀態oracle使用者執行

[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch lspatches

[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch lsinventory

 

節點2操作相同

回退操作


1.     停止節點DBoracle使用者執行)

$ /bin/srvctl stop home -o  -s  -n 

[oracle@rac1 ~]$ $ORACLE_HOME/bin/srvctl stop home -o $ORACLE_HOME -s /home/oracle/state_file_rollback.txt -n rac1

節點2操作相同

[oracle@rac2 ~]$ $ORACLE_HOME/bin/srvctl stop home -o $ORACLE_HOME -s /home/oracle/state_file_rollback.txt -n rac2

 

2.     停止crs叢集(root使用者執行指令碼)

# /crs/install/rootcrs.pl -unlock

[root@rac1 ~]# $ORACLE_HOME/crs/install/rootcrs.pl –unlock

 

節點2操作相同

 

注:停止叢集后使用ps –ef | grep ora確保所有oracle程式已經停止,否則會出現檔案佔用報錯,無法應用補丁。

 

3.     回退crs 補丁(grid使用者執行)

回退crs補丁1

$ /OPatch/opatch rollback -local -id 14275572 -oh  

[grid@rac1 ~]$ $ORACLE_HOME/OPatch/opatch rollback -local -id 14275572 -oh $ORACLE_HOME

 

節點2操作相同

 
回退crs補丁2
$ /OPatch/opatch rollback -local -id 14275605 -oh  

[grid@rac1 ~]$ $ORACLE_HOME/OPatch/opatch rollback -local -id 14275605 -oh $ORACLE_HOME

 

節點2操作相同

 

4.     DB補丁回退前執行指令碼(使用oracle使用者執行)

$ /14275572/custom/server/14275572/custom/scripts/prepatch.sh -dbhome 

[oracle@rac1 ~]$ cd /u01/app/oracle/patches

[oracle@rac1 patches]$ 14275572/custom/server/14275572/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME

 

節點2操作相同

 

5.回退DB補丁(oracle使用者執行)

回退DB補丁1

$ /OPatch/opatch rollback -local -id 14275572 -oh  

[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch rollback -local -id 14275572 -oh $ORACLE_HOME

 

節點2操作相同

 

回退DB補丁2

$ /OPatch/opatch rollback -local -id 14275605 -oh 

[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch rollback -local -id 14275605  -oh $ORACLE_HOME

 

節點2操作相同

 

6.回退DB補丁後執行指令碼(oracle使用者執行)

$ /14275572/custom/server/14275572/custom/scripts/postpatch.sh -dbhome 

[oracle@rac1 patches]$ 14275572/custom/server/14275572/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME

 

節點2操作相同

 

7.root使用者執行指令碼

# /rdbms/install/rootadd_rdbms.sh

[root@rac1 ~]# $ORACLE_HOME/rdbms/install/rootadd_rdbms.sh

 

節點2操作相同

 

Root使用者執行啟動crs指令碼

# /crs/install/rootcrs.pl -patch

[root@rac1 ~]# $ORACLE_HOME/crs/install/rootcrs.pl –patch

 

工節點2操作相同

 

注:如出現資訊 "A system reboot is recommended before using ACFS”,需要重啟。

 

8.開啟節點DB(使用oracle使用者)

[oracle@rac1 ~]$ $ORACLE_HOME/bin/srvctl start home -o $ORACLE_HOME -s /home/oracle/state_file_rollback.txt  -n rac1

節點2操作相同

[oracle@rac2 ~]$ $ORACLE_HOME/bin/srvctl start home -o $ORACLE_HOME -s /home/oracle/state_file_rollback.txt  -n rac2

 

 

9.執行指令碼catbundle.sqlsysdba使用者登入例項)

@catbundle_PSU__ROLLBACK.sql

SQL> @?/rdbms/admin/catbundle_PSU_ENMO_ROLLBACK.sql

 

10.查詢回退狀態

查詢DB補丁記錄

SQL> col action_time for a30

SQL> col version for a15

SQL> col id for 99

SQL> col action for a10

SQL> col namespace for a10

SQL> col COMMENTS for a20

SQL> col BUNDLE_SERIES for a15

SQL> select * from registry$history;

查詢補丁狀態grid使用者執行

[grid@rac1 patches]$ $ORACLE_HOME/OPatch/opatch lspatches

[grid@rac1 patches]$ $ORACLE_HOME/OPatch/opatch lsinventory

 

節點2操作相同

查詢補丁狀態oracle使用者執行

[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch lspatches

[oracle@rac1 patches]$ $ORACLE_HOME/OPatch/opatch lsinventory

 

節點2操作相同


----------------end-------------------
            
                    DBA_建瑾
                    2014.8.30

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29324876/viewspace-1260758/,如需轉載,請註明出處,否則將追究法律責任。

相關文章