這是學習筆記的第 2222篇文章
讀完需要
9
分鐘
速讀僅需7分鐘
如果是在幾年前討論Oracle升級的問題,其實會存在很多的異議,如今再來看待這個問題,我覺得情況有了變化,我來嘗試重新解讀一下這個問題。
Oracle資料庫版本背景
首先來說下Oracle的版本背景。
根據Oracle的產品線規劃,18c開始的新版本將是年度版,版本將是發布年度的最後兩位數字。原本計劃作為12.2.0.2的版本就是現在發布中的18c,12.2.0.3將以19c的版本形式發布。預期Oracle資料庫19將是12.2的最後一個版本(「長期支持」版本)。
所以經歷了8,8i,9i,10g,11g,12c之後,接下來的就是18c,19c,現在是2020年了,最新版本按照規劃還是19c,可沒有20c,要不會被笑話。
從版本V2發展至今,我細數了如下的一些版本情況。
版本發布年 |
版本 |
1979 | 2.3 |
1983 | 3.1.3 |
1984 | 4.1.4.0 |
1985 | 5.0.22 |
1988 | 6.0.17 |
1992 | 7.0.12 |
1997 | 8.0.3 |
1998 | 8.1.5.0 |
2001 | 9.0.1.0 |
2002 | 9.2.0.1 |
2003 | 10.1.0.2 |
2005 | 10.2.0.1 |
2007 | 11.1.0.6 |
2009 | 11.2.0.1 |
2013 | 12.1.0.1 |
2016 | 12.2.0.1 |
2018 | 18.1.0 |
2019 | 19c |
如果要從整體看出版本的差異情況,可以看下面的柱狀圖。
這個圖沒有體現版本之間的時間差,僅僅從版本的變化情況來看。
僅僅從這個圖上就能夠看出一種鮮明的差異,那就是類似SQL Server這樣的年度版本,能夠對於版本的差異沒有那麼敏感。
Oracle資料庫版本規劃
我們能夠看到有很多的版本,如果要選擇升級資料庫,到底是選擇12c還是18c,還是19c呢,我們來看一個版本路線圖,可以參考在MOS 官方文章:Release Schedule of Current Database Releases (文檔 ID 742060.1)
這個圖是理解整個內容的核心,可以看到19c的定位是長期版本,而且擴展服務的截止時間是目前最長的。
相比而言18c的生命周期就會短許多,有點像曇花一些的過渡版本,從性價比來看似乎還不如早一些的12.2.0.1這個版本,如何和當時的時間背景聯繫起來,應該是一批早期用戶從11g升級,在沒有12.2版本發布時,選擇了升級到12.1.0.2,所以看到的12.2.0.1和18c的發布時間也很接近。
值得一提的是,在2020年4月15日,Oracle修改了12.2.0.1的擴展服務截止時間,從2020年12月1日擴展到了2020年3月31日。(Added Limited Error Correction for 12.2.0.1 from Dec 1, 2020 until March 31, 2022)
Oracle資料庫服務支持
對於擴展服務,我們可能有些陌生,大體分來,支持的強度分為三個級別:Premier Support(最高優先級的支持),Extended Support(中等優先級的支持),Sustaining Support(最低優先級的支持)。
如果和上面的圖聯繫起來,其實就是對於擴展服務打了一些補丁,可以舉個例子來說明,比如主流版本是11g,那麼會有一個相對穩定產品生命周期,比如是5年,那麼在這5年內是官方大力支持的階段,會修復一系列的版本bug,推出一些改進和新功能,臨近產品生命周期,就需要考慮升級,如果不升級服務支持力度上就會打一定的折扣,比如說擴展服務周期是2年,那麼2年後正常來說是無法下載一些補丁更新的,如果過了擴展服務周期還沒有升級,如果是大客戶,花錢繼續支持也可以,如果又跨越了多個時段,但是原來的版本支持還是需要,就需要做定製化的支持了。
對於資料庫版本來說,10g是個坎,升級到11g是個坎,升級到12c的選擇空間從上圖來看就比較有限了,目前可選的就是12.2.0.1,18c和19c了。我們來看下這3個版本,我來劃一下重點。
版本 |
補丁截止時間 |
備註和說明 |
|
19c Long-Term Release |
Mar 31, 2023 with no ES/ULA Mar 31, 2026 with ES/ULA |
|
|
18c Annual Release |
Jun 08, 2021 |
|
|
12.2.0.1 Annual Release |
* March 31, 2022 with Limited Error Correction from Dec 1, 2020 |
|
從上面的圖來看,為了求穩,我們不是選擇最接近的低版本,而是要首選儘可能穩定的大版本,避免後續的大版本改動。如果說得更清楚些,那就是選擇19c.
版本的情況基本說完了,我們來看下升級的正確姿勢,因為環境的差異,肯定初始版本都不大相同。
Oracle資料庫版本升級矩陣
對於11g的資料庫來說,如果是11g的最新版本,則可以直接升級到19c,這是一個極大的利好消息,避免了過渡升級帶來的潛在隱患和服務不可用過長。
對於12c以上的版本(12.1.0.2以上),則可以直接升級到19c。
升級的過程可以考慮純手工方式升級數據字典,也可以考慮使用DBUA來做。
Oracle 19c - Complete Checklist for Upgrading to Oracle Database 19c (19.x) using DBUA (Doc ID 2545064.1)
如果使用DBUA來升級,直接升級可以參考如下的表格:
Source Database |
Target Database |
11.2.0.4 and Higher |
19.x |
12.1.0.2 |
19.x |
12.2.0.1 |
19.x |
18.1 |
19.x |
對於有些版本來說,則不可以直接升級,就需要過渡,比如你的版本是11.2.0.2,則需要先升級到11.2.0.4之後才可以升級到19c.
Source Database |
Intermediate upgrade path |
Target database |
||
11.2.0.1/11.2.0.2/11.2.0.3 |
--> |
11.2.0.4 |
--> |
19.x |
11.1.0.6/11.1.0.7 |
--> |
11.2.0.4 |
--> |
19.x |
10.2.0.2, 10.2.0.3, 10.2.0.4, 10.2.0.5 |
--> |
11.2.0.4/12.1.0.2 |
--> |
19.x |
10.1.0.5 |
--> |
11.2.0.4/12.1.0.2 |
--> |
19.x |
9.2.0.8 or earlier |
--> |
11.2.0.4 |
--> |
19.x |
12.1.0.1 |
--> |
12.1.0.2/12.2.0.1 |
--> |
19.x |
5 嘗鮮新版本
此外,如果我們想先嘗嘗鮮,做下測試,
Oracle提供了另外兩種方式來體驗新版本,一種是LiveSQL,連結是https://livesql.oracle.com,同時也可以通過dosc.oracle.com進行了解。
去IOE or Not?
拉里·佩奇(Larry Page)的偉大歸來
《吊打面試官》系列-Redis基礎
唯一ID生成算法剖析,看看這篇就夠了
關於大數據運維能力的一些思考
DBA菜鳥的進化簡史:不忘初心,記工作中踩過的三個坑
美女主持直播,被突發意外打斷!灣區網友卻高喊: 我懂!超甜