對於oracle版本介紹
http://www.enmotech.com/web/detail/1/622/1.html
1 目前最穩當的版本為11.2.0.4 ,官方補丁維護期為2013-2018.12.30 ,目前維護期延長兩年到2020年底支持付費擴展
從安全補丁版本考慮,oracle官方開始推進12c穩定版本了,目前11.2.0.4可使用到2020年底,所以生產環境現在基本使用11.2.0.4版本,這個版本最穩定
2 從穩定角度來說,11.2.0.4是最好的使用最多的,從性能優化角度來看,12c性能優化比11g好,12c支持雲計算
3 從運維DBA測試的角度,已經有必要開始使用12c的穩定版本了,12.1.0.1為測試版不穩定版,
12.1.0.2為穩定版可以使用,12.2.0.1為測試版不穩定版,
18c(12.2.0.2)為穩定版可以使用,馬上會出19c(12.2.0.3)為穩定版 此版為12c最終版。
像運維和開發的測試環境可以開始使用12.1.0.2和18c,19c的版本了,嘗試測試,調整優化部署
4 從公司角度來考慮
目前生產環境使用11.2.0.4,可以用到2020年底,2021年以后還可以繼續使用,但因為補丁優化,性能優化等原因,2021年以后最好使用19c版本(12.2.0.3)
目前運維測試環境,可以有11.2.0.4(配合生產測試使用),12.1.0.2(2019運維性能升級測試),18c(2019運維性能升級測試),19c(2020性能運維升級測試)
目前開發測試環境,可以有11.2.0.4(配合生產測試使用),12.1.0.2(2019運維性能升級測試),18c(2019運維性能升級測試)
對於公司2018年生產環境oracle來說,所有10G 11.2.0.1 11.2.0.2 11.2.0.3的版本 需要全部升級為11.2.0.4,11.2.0.4RAC和單機的環境不需要動,不需要改變
對於公司開發和運維的測試環境,要開始使用12c新版本了 (18c和19c也為12c升級版本) ,為公司2021年生產環境過度到18c,19c而做好准備
對於公司2019年新部署的oracle服務器,再不是特別重要生產的情況下,流量影響不高,可以部署使用12.1.0.2和18c的版本了,用來當生產環境和測試使用
對於公司2019年新部署的oracle服務器,是比較重要的生產環境情況下,需要保證99.99%得出穩定度的,還是使用11.2.0.4版本
對於公司2020年來說要逐漸過度12c版本,可以從影響比較小的生產環境開始過度,升級部署
對於公司2021年以后來說基本都要過度完成12c版本(18c和19c也為12c升級版本)
當然具體情況具體分析,以上時間節點只是參考,需要根據實際情況,比如公司情況,oracle版本的情況來綜合考慮
oracle個版本優缺點介紹
11g
1) oracle 11g在DBA管理上有很多完善,大大提升了DBA對數據庫的管控能力,提供的很多自動特性,增強了調優,備份恢復,錯誤診斷等的功能,大大減輕DBA的低端管理工作; 相對來說,這個版本的升級比較平滑一些;
2) 合並和擴展oracle的功能以實現網格計算的優勢,將數據中心從分散的系統資源孤島轉換為包含服務器和存儲的共享池。
3)GI提供更強大的oracleASM支持,GI作為集群軟件除了支持數據庫集群,還支持timesten的集群。
12c
1)實現雲數據庫的支持,提供雲平台管理,這是11所沒有的。
2)oracle12c增加了CDB和PDB的概念。
CDB全稱為Container Database, 數據庫容器;
PDB全稱為Pluggable Database,即可插拔數據庫。
3)PL/SQL性能增強:類似在匿名塊中定義過程,現在可以通過WITH語句在SQL中定義一個函數,采用這種方式可以提高SQL調用的性能
4)改善Defaults:包括序列作為默認值;自增列;當明確插入NULL時指定默認值;METADATA-ONLY default值指的是增加一個新列時指定的默認值,和11g中的區別在於,11g的default值要求NOT NULL列
5)放寬多種數據類型長度限制:增加了VARCHAR2、NVARCHAR2和RAW類型的長度到32K,要求兼容性設置為12.0.0.0以上,且設置了初始化參數MAX_SQL_STRING_SIZE為EXTENDED,這個功能不支持CLUSTER表和索引組織表;最后這個功能並不是真正改變了VARCHAR2的限制,而是通過OUT OF LINE的CLOB實現
6)TOPN的語句實現:在SELECT語句中使用“FETCH next N rows”或者“OFFSET”,可以指定前N條或前百分之多少的記錄
7)行模式匹配:類似分析函數的功能,可以在行間進行匹配判斷並進行計算。在SQL中新的模式匹配語句是“match_recognize”
8)分區改進:Oracle Database 12c中對分區功能做了較多的調整,Oracle ACE總監楊廷琨花了較大的篇幅對分區提升進行了解讀,其中共分成6個部分
INTERVAL-REFERENCE分區:把11g的interval分區和reference分區結合,這樣主表自動增加一個分區后,所有的子表、孫子表、重孫子表、重重重...孫子表都可以自動隨着外接列新數據增加,自動創建新的分區。
TRUNCATE和EXCHANGE分區及子分區。無論是TRUNCATE還是EXCHANGE分區,在主表上執行,都可以級聯的作用在子表、孫子表、重孫子表、重重重...孫子表上同時運行。對於TRUNCATE而言,所有表的TRUNCATE操作在同一個事務中,如果中途失敗,會回滾到命令執行之前的狀頭。這兩個功能通過關鍵字CASCADE實現。
在線移動分區:通過MOVE ONLINE關鍵字實現在線分區移動。在移動的過程中,對表和被移動的分區可以執行查詢、DML語句以及分區的創建和維護操作。整個移動過程對應用透明。這個功能極大的提高了整體可用性,縮短了分區維護窗口。
多個分區同時操作:可以對多個分區同時進行維護操作,比如將一年的12個分區MERGE到1個新的分區中,比如將一個分區SPLIT成多個分區。可以通過FOR語句指定操作的每個分區,對於RANGE分區而言,也可以通過TO來指定處理分區的范圍。多個分區同時操作自動並行完成。
異步全局索引維護:對於非常大的分區表而言,UPDATE GLOBAL INDEX不再是痛苦。Oracle可以實現了異步全局索引異步維護的功能,即使是幾億條記錄的全局索引,在分區維護操作,比如DROP或TRUNCATE后,仍然是VALID狀態,索引不會失效,不過索引的狀態是包含OBSOLETE數據,當維護操作完成,索引狀態恢復。
部分本地和全局索引:Oracle的索引可以在分區級別定義。無論全局索引還是本地索引都可以在分區表的部分分區上建立,其他分區上則沒有索引。當通過索引列訪問全表數據時,Oracle通過UNION ALL實現,一部分通過索引掃描,另一部分通過全分區掃描。這可以減少對歷史數據的索引量,極大的增加了靈活性。
9)Adaptive執行計划:擁有學習功能的執行計划,Oracle會把實際運行過程中讀取到返回結果作為進一步執行計划判斷的輸入,因此統計信息不准確或查詢真正結果與計算結果不准時,可以得到更好的執行計划
10)統計信息增強:動態統計信息收集增加第11層,使得動態統計信息收集的功能更強;增加了混合統計信息用以支持包含大量不同值,且個別值數據傾斜的情況;添加了數據加載過程收集統計信息的能力;對於臨時表增加了會話私有統計信息
11)臨時UNDO:將臨時段的UNDO獨立出來,放到TEMP表空間中,優點包括:減少UNDO產生的數量;減少REDO產生的數量;在ACTIVE DATA GUARD上允許對臨時表進行DML操作
12)數據優化:新增了ILM(數據生命周期管理)功能,添加了“數據庫熱圖”(Database heat map),在視圖中直接看到數據的利用率,找到哪些數據是最"熱"的數據。可以自動實現數據的在線壓縮和數據分級,其中數據分級可以在線將定義時間內的數據文件轉移到歸檔存儲,也可以將數據表定時轉移至歸檔文件。也可以實現在線的數據壓縮
13)應用連續性:Oracle Database 12c之前RAC的FAILOVER只做到SESSION和SELECT級別,對於DML操作無能為力,當設置為SESSION,進行到一半的DML自動回滾;而對於SELECT,雖然FAILOVER可以不中斷查詢,但是對於DML的問題更甚之,必要要手工回滾。而Oracle Database 12c中Oracle終於支持事務的FAILOVER
14)OraclePluggable Database:Oracle PDB體系結構由一個容器數據庫(CDB)和多個可組裝式數據庫(PDB)構成,PDB包含獨立的系統表空間和SYSAUX表空間等,但是所有PDB共享CDB的控制文件、日志文件和UNDO表空間。