Oracle升級該怎么選版本,目前看已經(jīng)沒有異議了
如果是在幾年前討論Oracle升級的問題,其實會存在很多的異議,如今再來看待這個問題,我覺得情況有了變化,我來嘗試重新解讀一下這個問題。
1.Oracle數(shù)據(jù)庫版本背景
首先來說下Oracle的版本背景。
根據(jù)Oracle的產(chǎn)品線規(guī)劃,18c開始的新版本將是年度版,版本將是發(fā)布年度的最后兩位數(shù)字。原本計劃作為12.2.0.2的版本就是現(xiàn)在發(fā)布中的18c,12.2.0.3將以19c的版本形式發(fā)布。預期Oracle數(shù)據(jù)庫19將是12.2的最后一個版本(“長期支持”版本)。
所以經(jīng)歷了8,8i,9i,10g,11g,12c之后,接下來的就是18c,19c,現(xiàn)在是2020年了,最新版本按照規(guī)劃還是19c,可沒有20c,要不會被笑話。
從版本V2發(fā)展至今,我細數(shù)了如下的一些版本情況。
版本發(fā)布年 |
版本 |
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 |
如果要從整體看出版本的差異情況,可以看下面的柱狀圖。
這個圖沒有體現(xiàn)版本之間的時間差,僅僅從版本的變化情況來看。
僅僅從這個圖上就能夠看出一種鮮明的差異,那就是類似SQL Server這樣的年度版本,能夠?qū)τ诎姹镜牟町悰]有那么敏感。
2.Oracle數(shù)據(jù)庫版本規(guī)劃
我們能夠看到有很多的版本,如果要選擇升級數(shù)據(jù)庫,到底是選擇12c還是18c,還是19c呢,我們來看一個版本路線圖,可以參考在MOS 官方文章:Release Schedule of Current Database Releases (文檔 ID 742060.1)
這個圖是理解整個內(nèi)容的核心,可以看到19c的定位是長期版本,而且擴展服務的截止時間是目前最長的。
相比而言18c的生命周期就會短許多,有點像曇花一些的過渡版本,從性價比來看似乎還不如早一些的12.2.0.1這個版本,如何和當時的時間背景聯(lián)系起來,應該是一批早期用戶從11g升級,在沒有12.2版本發(fā)布時,選擇了升級到12.1.0.2,所以看到的12.2.0.1和18c的發(fā)布時間也很接近。
值得一提的是,在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)
3.Oracle數(shù)據(jù)庫服務支持
對于擴展服務,我們可能有些陌生,大體分來,支持的強度分為三個級別:Premier Support(最高優(yōu)先級的支持),Extended Support(中等優(yōu)先級的支持),Sustaining Support(最低優(yōu)先級的支持)。
如果和上面的圖聯(lián)系起來,其實就是對于擴展服務打了一些補丁,可以舉個例子來說明,比如主流版本是11g,那么會有一個相對穩(wěn)定產(chǎn)品生命周期,比如是5年,那么在這5年內(nèi)是官方大力支持的階段,會修復一系列的版本bug,推出一些改進和新功能,臨近產(chǎn)品生命周期,就需要考慮升級,如果不升級服務支持力度上就會打一定的折扣,比如說擴展服務周期是2年,那么2年后正常來說是無法下載一些補丁更新的,如果過了擴展服務周期還沒有升級,如果是大客戶,花錢繼續(xù)支持也可以,如果又跨越了多個時段,但是原來的版本支持還是需要,就需要做定制化的支持了。
對于數(shù)據(jù)庫版本來說,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 |
|
從上面的圖來看,為了求穩(wěn),我們不是選擇最接近的低版本,而是要首選盡可能穩(wěn)定的大版本,避免后續(xù)的大版本改動。如果說得更清楚些,那就是選擇19c.
版本的情況基本說完了,我們來看下升級的正確姿勢,因為環(huán)境的差異,肯定初始版本都不大相同。
4.Oracle數(shù)據(jù)庫版本升級矩陣
對于11g的數(shù)據(jù)庫來說,如果是11g的最新版本,則可以直接升級到19c,這是一個極大的利好消息,避免了過渡升級帶來的潛在隱患和服務不可用過長。
對于12c以上的版本(12.1.0.2以上),則可以直接升級到19c。
升級的過程可以考慮純手工方式升級數(shù)據(jù)字典,也可以考慮使用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進行了解。
本文轉(zhuǎn)載自微信公眾號「 楊建榮的學習筆記」,可以通過以下二維碼關注。轉(zhuǎn)載本文請聯(lián)系 楊建榮的學習筆記公眾號。