以前 Oracle的周期是約5年省級一個大版本,在這個大版本上做小的升級(PSU與BP),在12c發布以后,oracle數據庫產品的新版本發布改為每年一次。隨着版本的變化,oracle的升級也發生了變化。
12.2以后,主要是通過 RU(Release Updates)與 RUR(Release Update Revisions)升級,那么什么是 RU(Release Updates)與 RUR(Release Update Revisions),該怎么選擇呢?
怕我的理解有誤,還是貼一下官方給出的說明:
為了支持與安全相關的修復以及高優先級的非安全修復,將在每年的1月,4月,7月和10月每個季度發布一個 Release Updates (Updates)。 Oracle的季度發布的Updates
包含客戶最有可能遇到的錯誤的修復: 查詢優化器錯誤修復,在之前版本的PSU以及BP中並不包含的這些修復被加入到Updates中,但是默認是禁用的。 Updates包含安全相關的補丁。 Updates會經過 廣泛的測試,包括功能測試,壓力測試,性能測試以及破壞性測試。 及時應用Updates可以降低碰到已知問題的可能性。 Updates在RAC環境下可以使用rolling的方式不停機安裝。 除了季度性發布的Updates, Release Update Revisions (Revisions) 也會每個季度發行,包含對Updates的回退修復以及包含最新的安全方面的修復。 在每個Update發布后的六個月內,會有2個針對這個Update的Revisions 。比如, Release.Update.1 和 Release.Update.2,這里"1" 和 "2"代表的是Revision。 Oracle推薦客戶保持應用最新的Updates,這樣可以避免很多已知的問題。並且可以避免申請很多小補丁,並顯著降低更多的補丁維護的操作。 某些客戶可能已達到穩定狀態,並希望優先考慮安全更新而不是功能修復。在這種情況下,他們可能選擇應用 Revisions。當他們應用 Release.Update.1,
他們落后Update的內容3個月。 當他們應用 Revision Release.Update.2,他們落后Update的內容6個月。通過選擇延遲3或6個月的新Update的內容,
客戶可以采取更保守的方法來進行數據庫軟件維護,但是他們仍有可能會碰到已在最新Update中包含的已知問題。 在Updates和Revisions 之間來回切換是可能的。但是是有限制的,新的patch必須是之前patch的超集。為了避免補丁沖突,客戶應該堅持一貫的政策,
即在每季維護周期中始終采用相同的Revision級別 (比如 Release.Update.0, Release.Update.1 或者 Release.Update.2) 從12.2.0.1 數據庫軟件以及更新的版本開始,Update 和 Revision策略取代了之前的 Patchset Update (PSU) 和 Database Bundle Patch (DBBP) 策略。
從2017年7月開始,之前的術語'Patchset', 'Patchset Update', 以及"Database Bundle Patch' 不再適用於 12.2.0.2 及更高版本。注意,數據庫版本12.1
和11.2 仍然會每季度發布 PSUs 和 BPs。
再貼上一張官方的版本升級時間軸圖片。
我的理解是:
RU(Release Updates)是每一個季度的版本升級。包括:
最新的BUG修復
最新的安全漏洞補丁
最新添加的功能
以19c為例,對應的升級版本升級路線是(19.1.0.0.0->19.2.0.0.0->19.3.0.0.0 ..... )到現在是19.8.0.0.0
RUR是對RU的修訂版本,包括:
最新的BUG修復
最新的安全漏洞補丁
這里並沒有添加最新的功能。並且只有對應RU版本的修訂版。比如,在2020年7月,除了會發布RU(19.8.0.0.0)回會發布上個季度的.1補丁(19.7.1.0)和上上個季度的.2補丁(19.6.2.0)
所以我的理解是:
如果是新安裝的數據庫,那么推薦安裝最新的RU。
如果是對已有數據庫的升級,建議還是升級RUR更加穩妥一點,除非有明確需要要使用最新的功能。
最后,RU與RUR是可以相互轉換的,判斷條件oracle也提供了。
Q14: 客戶是否可以在 Updates 和 Revisions 之間來回切換? A: 是的。 只要客戶選擇的版本是另一個的累積,那么就可以在 Updates 和 Revisions 之間切換。一個簡單的公式就是在相同的年度發布的情況下,
把目標以及源庫的版本號的后兩個部分相加。如果目標版本號的后兩個部分相加大於源庫版本號的后兩個部分相加,那么就可以應用目標版本;否則安裝會失敗。 例 1: 源版本 - 18.2.2 <<<<< 第二部分和第三部分的和是 "4" 目標版本 - 18.5.0 <<<<< 第二部分和第三部分的和是 "5" 結論: 目標版本 "5" 比源版本 "4" 大,所以可以應用目標版本 例 2: 源版本 - 18.2.2 <<<<< 第二部分和第三部分的和是 "4" 目標版本 - 18.3.0 <<<<< 第二部分和第三部分的和是"3" 結論: 目標版本 "3" 比源版本 "4" 小所以不能安裝目標版本,會出錯
參考文章:
Release Update介紹以及FAQ (Doc ID 2289879.1)
https://www.sohu.com/a/289232430_505827
https://www.cndba.cn/dave/article/4063
