閱讀884 返回首頁    go 阿裏雲 go 技術社區[雲棲]


122Architecture 全麵解讀 - 第一篇 全局解析+ADG+IM模塊

上周五早上,風和日麗。小明和小強在上班路上相遇了。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

呀不好意思,來晚了,我們已經打烊了。不過呢,看在大家都熱愛學習的份上,我們將會分享課程視頻給大家。


Oracle自發布12.1之後,就一直聲稱要全麵轉雲,在之後的三四年裏,一直杳無音信,大家都在猜測,Oracle又在憋什麼大招,果然,2017陽春三月,大招來了!今年三月份,在廣大用戶的熱切盼望中,Oracle終於發布了12c Release2。


與此同時,雲和恩墨專家迅速投入到新特性的研究當中,在12.2發布不到2個月的時間裏,並設計出了全球最新版的Oracle 12.2體係架構圖。先來一飽眼福吧

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


很多同學跟我們說,這張圖信息量太大看不懂表示很絕望。為了讓大家更好地學習,雲和恩墨推出係列課程“全麵解讀Oracle 12.2的體係架構圖” ,上周四第一課QQ群火熱直播,反響熱烈。


接下來我們簡要概括一下課時一的內容要點:


體係架構圖組成

Oracle 12.2體係架構圖基於最基本的Oracle數據庫訪問模式,延伸出包含Active DataGuard,Sharding,Multitenant,Flex Cluster,Flex ASM等多個解決方案的模塊。課時一主要介紹了整個圖的內容組成,並展開詳細解讀了模塊一(ADG+IM)的部分。

 

在第一個模塊,我們展開討論了以下的內容要點

1、在ADG中,邏輯standby和物理standby的數據同步與應用;

2、12.2中,支持ADG上部署IM列存儲,並討論了三種部署方案;(可參考以下文章:【12.2新特性】在Oracle Active Data Guard上部署列式存儲

3、Oracle的零數據丟失同步方案:Far Sync實例的配置;

4、在12.2中DG上的一些新特性,比如遠程AWR,standby上的SQL tuning等,可參考以下文章:Oracle 12.2新特性掌上手冊 - 第六卷 ADG的性能與診斷);

5、在12.2中IN-MEMORY的新特性,比如:join group,faststart等。


好了話不多說,想學習的同學請觀看視頻。原文鏈接下載。


不少朋友問講師要ppt,實話實說,講師(隻有腦子)真沒有ppt,不過倒有幾張經典的參考圖送給各位,為大家簡單講解一下。


reference picture1

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


根據白求恩對中國的Oracle用戶使用Oracle數據庫現狀分析,在10g以前的版本中,有部分用戶在使用裸設備作為數據庫存儲方式,11g以後已經很少見,12c已結沒有人使用裸設備了。ASM和文件係統將成為最主要的兩種文件存儲方式,而ASM則是集群環境下的最佳存儲選擇。(了解白求恩請點擊:Bethune,你最佳的運維小助手。)


reference picture2

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


在12.2以前,ADG架構中,若有多個節點,則多個節點的RFS進程可以同時接收來自主庫的日誌,但在日誌應用過程中,隻有一個MRP進程進行,因此多個節點的日誌應用的串行的。


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

在12.2中,ADG中多節點standby,日誌可以並行應用。會在每個節點都啟動一個MRP進程。


reference picture3

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


最簡單的Far sync的配置模式:在主庫附近(實現同步的距離限製範圍內)配置far sync實例,主庫與far sync實例之間進行同步傳輸,far sync與備庫之間進行異步傳輸,這樣,即使主備之間的連接出現連接問題,主庫的數據都在far sync實例中,實現數據零丟失。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


Far Sync的高可用配置:雖然far sync提供零丟失的數據同步,但一切都會出故障,為了避免主庫與Far Sync之間的連接出現問題導致數據丟失,在主庫上配置兩個Far Sync實例,當其中一個連接中斷的時候,自動切換到另一個Far Sync實例。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


Far Sync的擴展配置在需要做主備切換的環境中,為了保證切換後的數據傳輸不受影響,在兩個節點上都配置Far Sync實例,當然,在同一時刻,隻有一個Far Sync實例處於活動狀態,也就是與當前主庫靠近的Far Sync實例處於活動狀態。


reference picture4

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


在12.2的IM中,支持三種格式的數據存儲:關係型數據,虛擬列和JSON格式。並且可以將JSON對象的虛擬列直接存放在IM的虛擬列,使得針對JSON對象的操作非常方便。


注意,對於JSON的文檔,一般要求文件大小不大於32M,否則可能不會帶來好的性能提升。


reference picture5

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


在沒有join group的情況下,表的關聯查詢是如何實現的:

假如vehicles表和sales表需要做關聯查詢。

1、掃描Vehicles表,並將滿足條件的行解壓並發送到hash 連接

2、使用vehicles中獲取的做連接的列創建hash列表

3、掃描sales表,過濾出符合條件的行

4、解壓過濾得到的行,並發送至hash連接

5、使用vehicle表的ID值進行探測,找到匹配的行

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

使用join group後的連接訪問方式如下:

1、掃描vehicles表,將符合條件的以壓縮的方式發送至hash 連接

2、對上步中壓縮的結果中的不同值創建數組

3、掃描sales表

4、將匹配的行以壓縮的方式發至hash 連接

5、對數組中壓縮的值做全連接

 

因此我們看到,沒有使用join group的時候,最後在選擇行的時候是掃描二維的hash表獲得,而使用join group之後隻需要掃描一個數組,這樣就加快了查詢效率。


文章轉自數據和雲公眾號,原文鏈接

最後更新:2017-07-18 20:36:24

  上一篇:go  【雲和恩墨大講堂】SQL玩轉AWR裸數據
  下一篇:go  Oracle12.2體係架構圖:Filesystem+Multitenant