Oracle補丁介紹一

wzq609發表於2018-09-02

【前言】保證資料庫的穩定與安全執行是DBA的價值所在,Oracle Database本身也是一個軟體,隨著系統的使用場景和使用深度的增加一些原本沒被發現的漏洞或BUG就會逐漸被發現。

所以成熟的IT企業,往往會定期對資料庫進行安全檢查和補丁的更新;


【一】Oracle版本命名規則

在進行Oracle更新補丁之前,先對Oracle的版本命名有個認識。

從9i之後,oracle版本命名規則定義如下: 

A.B.C.D
其中第一位A表示大版本號,第二位表示小版本號,前兩位合稱主版本號;如9.2、10.1、11.2等。

對於資料庫產品而言,第三為C永遠為0,該位是給其他ORACLE資料庫產品使用的。第四位則表示補丁集(Patche Set)號,例如11.2.0.1、11.2.0.4、12.1.0.1、12.2.0.1等。


【二】補丁體系介紹

Critical Patch Update (CPU):每季度釋出一次,用來修復安全方面的一些補丁,是累積型的。目前已經更名為Security Patch Update (SPU)。
點選下面的連結檢視各個CPU所修復的具體問題:
http://www.oracle.com/technetwork/topics/security/alerts-086861.html

Patch Set Update (PSU):每季度釋出一次,修復比較嚴重的一些問題,包含每季的CPU,是累積型的。雖然在描述PSU的時候會用到資料庫版本第5位,比如Database PSU 11.2.0.3.5,但實際上打完PSU後並不會真正改變資料庫的版本,從v$version中看到的版本還是4位的(11.2.0.3.0),第5位仍然是0。注意,Windows上沒有CPU和PSU,Oracle的叢集軟體和資料庫軟體使用不同的PSU。

可以參考下面的MOS文件瞭解每個季度的CPU、PSU、Windows Bundle Patch的具體補丁號:
Note 1454618.1 Quick Reference to Patch Numbers for Database PSU, SPU(CPU), Bundle Patches and Patchsets

Patch set: 是在大版本上釋出的補丁集,修復了較多的Bug,可能會包含一些增強功能(Enhancement)。比如11.2是一個大版本,那麼11.2.0.2就是一個Patch set。這種補丁集經過了嚴格的整合測試,也是累積型的。所以我們總是推薦安裝最新的Patch Set。

Diagnostic patch:診斷補丁。有的時候診斷一個問題的時候,為了獲得更多的診斷資訊,Oracle的開發部門會提供一個Diagnostic Patch,這種補丁不是為了修復問題,而是診斷問題。

Composite Patch:從2012年4月份的Database PSU 11.2.0.3.2開始,推出一種新的概念叫Composite Patches。 這是一種新型的補丁包,它不同於其他的累積型補丁包。如果是第一次安裝Composite Patches,那麼該Composite Patches所包括的全部補丁都會被安裝,後續安裝的Composite Patches,只會安裝對比前一次Composite Patches有變化的部分和新增加的補丁。


【三】補丁的更新

下載需要的補丁後,會有個README.html的檔案,該檔案有補丁資訊的介紹、補丁工具要求、安裝、回滾操作等介紹。

操作如下:

 

cd $ORACLE_HOME/OPatch
 ./opatch --help
========================================================
GENERIC OPATCH VERSION - FOR USE IN SAP ENVIRONMENT ONLY
========================================================
Oracle Interim Patch Installer version 11.2.0.3.1
Copyright (c) 2012, Oracle Corporation.  All rights reserved.


 Usage: opatch [ -help ] [ -report ] [ command ]

            command := apply
                       lsinventory
                       lspatches
                       napply
                       nrollback
                       rollback
                       query
                       version
                       prereq
                       util
 

 <global_arguments> := -help       Displays the help message for the command.
                       -report     Print the actions without executing.

 example:
   'opatch -help'
   'opatch -help -fmw'
   'opatch auto -help'
   'opatch apply -help'
   'opatch lsinventory -help'
   'opatch lspatches -help'
   'opatch napply -help'
   'opatch nrollback -help'
   'opatch rollback -help'
   'opatch prereq -help'
   'opatch util -help'

apply

Installs an interim patch. Refer to "apply Command" for more information.

napply

Installs  n  number of patches (hence napply). Refer to "napply Command" for more information.

auto

Applies Oracle Clusterware patches. Refer to "auto Command" for more information.

lsinventory

Lists what is currently installed on the system. Refer to "lsinventory Command" for more information.

query

Queries a given patch for specific details. Refer to "query Command" for more information.

rollback

Removes an interim patch. Refer to "rollback Command" for more information.

nrollback

Removes  n  number of patches (hence nrollback). Refer to "nrollback Command" for more information.

version

Prints the current version of the patch tool. Refer to "version Command" for more information.


【總結】以上的這些只是也才是補丁剛入門了,後面會繼續整理補丁的下載和補丁的更新步驟。


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

相關文章