ORACLE打補丁的方法和案例

達芬奇的夢發表於2018-05-15

打補丁使用opatch工具,具體操作方法以補丁包中的readme.txt為準

1.  檢視某個補丁是否安裝的方法(下面命令不行就升級opatch

$ORACLE_HOME/OPatch/opatch lsinventory

2.  下載補丁包

檢視當前opatch版本。Oracle 11.2.0.1.0 自帶的opatch版本是11.1.0.6.6。補丁包的README.html中有描述該補丁或PSU需要的最低版本opatch,如果當前opatch版本過低($ORACLE_HOME/OPatch/opatch version命令可以檢視),則需要升級。

3.  opatch版本升級

下載 Patch 6880880檔案(如p6880880_112000_Linux-x86-64表示64位版本linux下的),mv原來的$ORACLE_HOME/OPatch目錄,解壓Patch 6880880檔案自動生成$ORACLE_HOME/OPatch目錄即可。

4.  驗證opatch是否升級成功

$ORACLE_HOME/OPatch/opatch version

5.  關閉DB和監聽

6.  進入補丁包的目錄

7.  打補丁Oracle軟體部分)

打補丁的命令通常是簡單的opatch apply

$ORACLE_HOME/OPatch/opatch apply 

8.  打補丁資料庫部分,PSU補丁集升級需要執行,只升級特定的某一個補丁一般不需要執行

SQL>STARTUP migrate

SQL>@$ORACLE_HOME/rdbms/admin/catbundle.sql psu apply

sql>shutdown immediate
sql>startup

9.  重新編譯CPU相關檢視 可忽略此步驟)

該步驟在一個資料庫上永遠只需要執行一次,是為了完成在20081月份第一次釋出CPU補丁時的後續工作,如果在安裝以前的PSU或者CPU時執行過這個步驟那麼就可以無需再次執行,另外,即使不執行該步驟,資料庫也是正常執行的,只不過意味著20081月份的 CPU補丁沒有正常結束安裝。

cd $ORACLE_HOME/cpu/view_recompile

sqlplus / as sysdba

SQL>@recompile_precheck_jan2008cpu.sql

SQL>SHUTDOWN IMMEDIATE

SQL>STARTUP UPGRADE

SQL>@view_recompile_jan2008cpu.sql

SQL>SHUTDOWN;

SQL>STARTUP;

SQL>exit

10.編譯無效物件

SQL>@$ORACLE_HOME/rdbms/admin/utlrp.sql

11.檢視admin/*/bdump下面是否有類似檔案centdb_mmon_9603.trc一直在寫,如果有的話再重啟下DB

12.解除安裝補丁

opatch rollback -id 補丁號如9264253


如果打某個補丁1618213,但是沒有找到單個的補丁包,找到了多個PSU,如在MOS上找到兩個這樣的包Database 11.2.0.1 PSU Patch 18139690、Database 11.2.0.1.2 PSU Patch 18031668,我們只打後一個就可以了,因為PSU是從小到大相互包含的累計補丁包



個人升級的一次實驗:升級一個特定的補丁8574851readme.txt沒有說明說要升級資料字典,只需要opatch apply即可,個人特意去執行SQL>@catbundle.sql psu apply還報錯了


 

 

 

 

單機與RAC打補丁8574851的區別

  (a) In a non-RAC environment:

 

  Shut down all services that are running from this ORACLE_HOME.

  Confirm the return status from each shutdown command to verify

  the shutdown is successful and there are no errors.

 

  (b) In a RAC environment:

 

  For each node in the RAC system, shut down the services for

  the specific machine that are running from the ORACLE_HOME.

  OPatch will be used on each node in the RAC system one at

  a time.  If this patch is not rolling RAC installable treat

  it as a non-RAC environment and shut down all services.

 

  As an example, in the case of a two node RAC system:

     1. Stop instances running on node 1.

     2. Run 'opatch apply /8574851' on node 1.

     3. When the apply finishes, opatch asks for confirmation

        before going on to apply the patch to node 2.

     4. Start instances on node 1.

     5. Stop instances running on node 2.

     6. Ask opatch to continue to applying the patch to node 2.

     7. Start instances on node 2.

 

 

 

RAC打補丁8574851的一次實驗






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

相關文章