對于很多oracle dba來說12c最期待人心的就是12c release 2的釋出了而linux 64位版本的釋出則是一個重頭戲。

oracle12cr2版本跟以前的版本相比多了一個global service manager你可以叫gsm或者gds為其分布式特性而引入。
接下來還有windows、hpux、aix版本的12c會在q2再釋出。
為什麼是12c r2版本号解讀
對于資料庫軟體版本來說目前實際應用還是11g為主10g逐漸退役11gr2目前最新穩定版本為11.2.0.410gr2為10.2.0.5。
oracle版本描述在11g、12c沒有變化但是和10g略有一些差異如下圖。
第一個數字位代表的是一個新版本軟體也标志着一些新的功能。如10g、11g、12c。
第二個數字位代表的是新特性版本也叫作維護版本我們期待多年的release 2就是這個版本。
第三個數字位代表中間件的版本号10g和11g的版本差别就在于此也是對bea融合的支援。
第四個數字位代表元件的特定版本号比如oracle的patch包。
第五個數字位代表平台版本的标示通常用來标示patch号。
關于第5位patch号值得一提的是2016年1月份oracle推出了對 psu、spu、bundle patch 新的命名規則。新的命名規則為以11.2.0.4為例11.2.0.4.yymmdd。yymmdd 會對應為patch psu、spu、bundle釋出的具體日期。具體可以參見mos文檔doc id 1454618.1一個基本的情況如下圖所示。
我們為什麼要開始考慮大規模更新到oracle12cr2呢
看看下面這個表格生産上現在最大裝機量的11.2.0.4将在2020年12月31日就不再釋出任何更新檔支援其實對于大部分使用者來說截止日期可以認為是2018年12月31日因為你後面不付昂貴的延長支援費即使有更新檔你也下載下傳不了
也就是說滿打滿算你還有22個月的時間用于更新你的生産到12cr2。
這中間包括你的功能選型、架構選型、應用開發支援、測試、ued……直至運作在生産上。否則如果剛好你的應用踩到了某個前人沒有遇到的bug你就真栽秧了。這是産品支援的風險。坦白說如果你的應用已經很穩定又不做業務功能需求變更、使用什麼很新奇的函數基本也不太會踩坑是以這就是為什麼至今仍有oracle 8i的生産系統在運作的道理。
12c中到底有哪些變化呢一種洞察的方法就是從資料庫參數來一窺其中的奧妙。
首先我們選取了幾個樣本因為12cr1和12cr2中間間隔了幾年我們就差別對待。
資料庫版本
所有參數個數
開放的參數個數
10.2.0.5.0
1618
259
11.2.0.4.0
2912
351
12.1.0.2.0
3975
380
12.2.0.1.0
4845
417
oracle中其實含有大量的隐含參數而開放給我們的參數占比隻占到了大概10%。
下面看到這兩個圖
上圖是所有的資料庫參數下圖是開放給我們的參數可以明顯地看到資料庫參數的增長情況。以12c為例12cr2中的所有參數包括隐含參數有4845個而通過show parameter開放給我們的參數卻隻有417個這個比例非常低也可以進一步說明oracle中确實有非常多的潛在豐富的設定很多都可以通過隐含參數來特殊調整而另一方面由此也可以看出隐含參數如此之多複雜度極高本身還是不建議輕易修改隐含參數的因為很多隐含參數的值是預設的最優值有些還有關聯關系。
而不同資料庫版本中參數的數量占比是如何呢我們看一下10g、11g、12c的參數占比圖。綠色部分是12c的參數資料庫參數開放參數+隐含參數占比甚至超過了10g+11g的總和。
而開放的參數在12cr2中保留了相當的空間其中參數增長部分主要展現在imo和pdb兩個方面我們下面會展開來說。
12c有哪些亮點值得我們去用
首當其沖的當然是oracle in memory option。社群之前發表過幾篇文章不摘錄了使用了列式記憶體存儲性能提高極大非常有誘惑力
<a href="http://mp.weixin.qq.com/s?__biz=mzi4nta1mdewng==&mid=402853410&idx=1&sn=84b4409da8cdd578eb04299329f515ba&scene=21#wechat_redirect" target="_blank">oracle database 12c新特性對企業影響的思考</a>
<a href="http://mp.weixin.qq.com/s?__biz=mzi4nta1mdewng==&mid=402265892&idx=1&sn=327472171e22238b454a65407f97a917&scene=21#wechat_redirect" target="_blank">in memory—oracle 12c重要新特性imo詳解</a>
<a href="http://mp.weixin.qq.com/s?__biz=mzi4nta1mdewng==&mid=401534256&idx=2&sn=bcbf784bd23b5a45a67504b42dfdac8d&scene=21#wechat_redirect" target="_blank">專家經驗論答in-memory是否支援column之疑</a>
<a href="http://mp.weixin.qq.com/s?__biz=mzi4nta1mdewng==&mid=2650758574&idx=1&sn=2d4a652d60f4e6c480fd668170d9c9a5&chksm=f3f9e83bc48e612db22fb4c6c6744121b45fd177ec69509fd1fc5501f58232d1529bcacd4268&scene=21#wechat_redirect" target="_blank">平均提速20倍oracle 12c in-memory最佳實踐</a>
其次多租戶對于有幾十上百個小資料庫的部門或者公司來說這是一大福音趕緊整合、雲化吧。我們從2014年開始做這種雲化的工作确實節約了不少成本而且也友善了管理。社群相關文章可以複習下
<a href="http://mp.weixin.qq.com/s?__biz=mzi4nta1mdewng==&mid=2650758572&idx=1&sn=25bae987dff39123f4ce68efce3f5013&chksm=f3f9e839c48e612f2a12067edb504ee94390dd5682a24911abd1cc40622c9d9ad02301f897e5&scene=21#wechat_redirect" target="_blank">oracle dbca進階玩法從模闆選擇、腳本調用到多租戶</a>
oracle 12c pdb遷移一
<a href="http://dbaplus.cn/blog-57-745-1.html">http://dbaplus.cn/blog-57-745-1.html</a>
第三點是12cr2才推出的sharding。oracle的sharding可以認為是patition思想的更新版一脈相承。上面賣了一個關子的gds元件就是為了sharding而生的。有了shardingoracle一直被诟病缺失的分布式資料庫終于出台了。從個人練習使用的情況來看非常簡單易用而真正的生産實踐還敬請期待。
當然12cr2還有許多小的改進但是有此三點已經是足夠充分的理由去考慮更新了。
說到更新可不是個小事情而是一個大工程。
從前期的調研分析、方案制定、更新測試到正式更新環環相扣疏忽不得。
具體的更新方法可參考dbaplus社群分享的部分文章
<a href="http://mp.weixin.qq.com/s?__biz=mzi4nta1mdewng==&mid=401654285&idx=1&sn=e78861fd874c776944ce5d2ebc5831ea&scene=21#wechat_redirect" target="_blank">更新到12c雲資料庫的最佳實踐</a>
<a href="http://mp.weixin.qq.com/s?__biz=mzi4nta1mdewng==&mid=401557720&idx=1&sn=49d52e4d987dc3094f2ae55db8d4ac93&scene=21#wechat_redirect" target="_blank">xtts又一個值得你重視的oracle資料庫遷移更新利器</a>
<a href="http://mp.weixin.qq.com/s?__biz=mzi4nta1mdewng==&mid=2650758012&idx=2&sn=d40ad54f080e13e087355f47199fb073&chksm=f3f9eee9c48e67ffd54561797a2a2fce2532d08ca6664002aec063b68d7d2a9f6d0118234d6f&scene=21#wechat_redirect" target="_blank">如何保障業務0暫停下從11gr2 maa更新到12c?</a>
<a href="http://mp.weixin.qq.com/s?__biz=mzi4nta1mdewng==&mid=401277915&idx=1&sn=2a264084423197baac186a4c2cc1d8c1&scene=21#wechat_redirect" target="_blank">扒一扒oracle資料庫遷移中的各種坑</a>
還有一些參數一定得注意不然你可能要掉坑甚至是在11g裡掉過一次的。
deferred_segment_creation
預設是true建議設定為false
_datafile_write_errors_crash_instance
預設是true所有datafile的io寫error都會導緻資料庫crash。建議設定為false。
job_queue_processes
預設是1000建議設定為你真正需要的數字。如果你不知道建議設定為0。
_optimizer_aggr_groupby_elim
預設是true可能會導緻groupby類的結果集錯誤。建議設定為false。
session_cached_cursors
預設值是50太小容易導緻記憶體碎片建議設定為1000.
當然還有一些參數也建議改很難給一個具體建議需要根據實際情況進行設定。
相信到了這兒你對12cr2已經有一個整體的認識了抽時間下載下傳試用吧等了很久這一刻終于到來了。
那麼對于12cr2你還有哪些疑問或者希望社群推出什麼文章歡迎留言。
原文釋出時間為2017-03-03
本文來自雲栖社群合作夥伴dbaplus