Oracle Patch補丁體系
oracle作為大型商業關系型數據庫, 從其補丁體系就可以看出其考慮的全面性. 首先我們看下oracle Patch的主要類型:
Version/維護版本
針對前一個維護版本的所有補丁進行整理, 增加新的功能或對軟件有較大的改動, 進行整體測試, 得到一個軟件版本“包”, 稱為版本Vension. 比如11.2.
One-Off pathch (例如 a bug fix)
One-off patches也稱為一次性補丁, 通常針對特定的版本數據庫或運行平臺. 此類補丁通常較小, 使用的最為頻繁. One-off patch只需要用Opatch工具apply即可, 不需要升級/修正數據字典. 如在數據庫使用過程中出現某些異常后如較常見的ORA-00600、ORA-07445錯誤等可以通過一次性補丁來搞定.
Critical Patch Update(CPU)
一般來說CPU包含了Oracle產品安全漏洞的修復補丁集(set of security bug fix), 通常一年發布四期, 一般是每季度提供一次的一組高優先級修復程序(往往針對安全性問題), 對于以前的安全性修復程序而言, 這些CPU是累積的, 只需要安裝最近最后一個就可以, 它就包含了之前的所有CPU補丁, 但也可包含其他修復程序, 目的是解決與非安全性補丁之前的補丁沖突問題(即降低合并請求的必要性). 該類patch的安裝和安裝one-off patch一樣, 同樣使用“optach apply“命令來完成. 安裝完成后應針對既有的數據庫(已經創建在使用的數據庫). 應在數據庫級別運行數據字典升級腳本.
Bundled patches(For Windows and Exadata only)
用于解決在WIndows平臺無法利用替換共享文件后relink的方式來更新oracle binary, 所以oracle特別針對windows發布區別與Uninx上Normal/Molecular CPU的CPU Bundle patch. 通常情況下, Bundle Patch會別較大, windows bundle patches通常每一個季度都會發布.
PSR(Patch Set Release)/Patch Set Update(PSU)
PSR就是大家常見的大補丁合集, 通常1GB左右, 也就是oracle版本號的第四位即為PSR號. 也就是說oracle版本號的第四位會被修改. 每一個PSR是都整合了之前的一些bug, 并且經過了嚴格的測試, 通常更新PSR風險相對較小. 10.2, 10.2.0.1.0是基礎發行版, 至今已有五個PSR發布, 最新10.2的PSR為10.2.0.5.0.
PSU就是在每個PSR發布之間的補丁, 由于新舊PSR之前周期性較長, 而數據庫在運行期間難以保證不會出現新的bug, 因此有了PSU. PSU是對于PSR的一個重要補充, 每個PSU修改5位版本號的第5位,如, 11.1版本升級位11.1.0.7.1; 10.2版本位10.2.0.4.2. PSU包含CPU, 所以建議盡量安裝的PSU, PSU通常也是增量的, 大部分PSU可以直接安裝, 但有些PSU則必須要求安裝了上一個版本的PSU之后才能繼續安裝, 要仔細看各個PSU的Readme文檔. PSU與CPU一樣,定期發布, 計劃一年發布四次, 發布日期與CPU發布日期相同. PSU同樣使用Opatch工具安裝/刪除, 命令仍是apply和rollbank. 一個PSU可視作一個個補丁,安裝和刪除操作同樣簡便.
PSU有三個優勢:
** (1)低風險高價值, PSU包括:**
Critical technical issues with fixes that may affect a large number of customers and that are already proven in the field
Critical Patch Update fixes
PSU不包括
Changes that require re-certification (for example, Database fixes that cause optimizer plan changes)
Fixes that require configuration changes
每個PSU會限制包含bug fix的數量, 一般在25和100個之間. 會從用戶下載量最多, 以及發布的關鍵安全事件中選擇除這些補丁. 數據庫PSU確保可以支持滾動RAC安裝.
** (2) PSU會通過嚴格的測試, 保證各種fix可以正常運行, 不會相互影響.**
** (3) oracle版本號的第五位是作為每個PSU的增量版本號. 例如初始PSU版本號是11.1.0.7.1, 第2個針對11.1.0.7的PSU版本號就是11.1.0.7.2.**
升級PSU的注意事項
1、下載PSU補丁時, 首先確認操作系統版本以及數據庫版本, 之后下載相應的psu補丁集.
2、安裝任何補丁時,一定要仔細閱讀補丁對應的readme文件, 因為每個補丁的安裝步驟可能有所不同.
3、在grid infratruncture patch set update(簡稱: GI PSU)中包含了DB PSU, 所以只要下載并按照GI PSU的readme安裝補丁, 并使用patch auto就可以把GI和數據庫的PSU都安裝上. 而且使用opatch auto的好處是完全自動化, 不需要手工停止/啟動GI. 安裝完成后,在GI和DB的oracle_home會分別安裝了GI和DB的PSU, 也就是每個oracle_home下都有兩個PSU, 一個是GI的, 一個是DB的. 推薦這種安裝方法, 因為有的bug需要在GI中修復, 又需要在DB中修復.
4、如果在數據庫(RDBMS)的oracle_home下沒創建任何的數據庫, 也就是ocr中找不到oracle_home下的數據庫, 那么opatch auto并不會把PSU安裝在oracle_home下, 只會把PSU安裝在GI的oracle_home下,這種情況下, 如果要對數據庫的oracle_home安裝psu, 需另外執行#opatch auto unzip補丁源文件 -oh
5、安裝psu的過程是滾動的(rolling), 也就是現有一臺節點按照readme中步驟安裝這個psu, 當這臺執行完畢, 所有的資源啟動后, 依次在其他節點執行. opatch auto不能在多個節點同時執行.
6、保證optach的版本高于readme中要求的版本, 否則請下載最新的opatch.
7、oracle database psu 、bundle patch 的命名規則一般是按照推出的先后順序,比如在2015年10月 推出的11.2.0.4的第8個db psu 就命名為:db psu 11.2.0.4.8 ;2016年1月份推出了對psu 、spu 、 bundle patch 新的命名規則。新的命名規則以11.2.0.4為例:11.2.0.4 YYMMDD 此處的YYMMDD為patch發布的具體日期。
總結:
1、要了解Oracle Patch補丁體系中, 各種類型補丁的關系、適用范圍, 這樣才能在需要打補丁的時候選擇正確的補丁并完成安裝步驟了,.
2、某些補丁要求最低的Opatch版本, OPatch的升級僅需要下載對應操作系統版本的OPatch壓縮包, 直接壓縮至$ORACLE_HOME即可,以防萬一可以備份之前的OPatch.
3、OPatch有一系列的命令參數, 可以幫助繼續了解, 例如有些補丁可以不用停機, 在線打使用online參數.
Oracle
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。