122Architecture 全麵解讀 - 第一篇 全局解析+ADG+IM模塊
上周五早上,風和日麗。小明和小強在上班路上相遇了。
呀不好意思,來晚了,我們已經打烊了。不過呢,看在大家都熱愛學習的份上,我們將會分享課程視頻給大家。
Oracle自發布12.1之後,就一直聲稱要全麵轉雲,在之後的三四年裏,一直杳無音信,大家都在猜測,Oracle又在憋什麼大招,果然,2017陽春三月,大招來了!今年三月份,在廣大用戶的熱切盼望中,Oracle終於發布了12c Release2。
與此同時,雲和恩墨專家迅速投入到新特性的研究當中,在12.2發布不到2個月的時間裏,並設計出了全球最新版的Oracle 12.2體係架構圖。先來一飽眼福吧
很多同學跟我們說,這張圖信息量太大看不懂表示很絕望。為了讓大家更好地學習,雲和恩墨推出係列課程“全麵解讀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
根據白求恩對中國的Oracle用戶使用Oracle數據庫現狀分析,在10g以前的版本中,有部分用戶在使用裸設備作為數據庫存儲方式,11g以後已經很少見,12c已結沒有人使用裸設備了。ASM和文件係統將成為最主要的兩種文件存儲方式,而ASM則是集群環境下的最佳存儲選擇。(了解白求恩請點擊:Bethune,你最佳的運維小助手。)
reference picture2
在12.2以前,ADG架構中,若有多個節點,則多個節點的RFS進程可以同時接收來自主庫的日誌,但在日誌應用過程中,隻有一個MRP進程進行,因此多個節點的日誌應用的串行的。
在12.2中,ADG中多節點standby,日誌可以並行應用。會在每個節點都啟動一個MRP進程。
reference picture3
最簡單的Far sync的配置模式:在主庫附近(實現同步的距離限製範圍內)配置far sync實例,主庫與far sync實例之間進行同步傳輸,far sync與備庫之間進行異步傳輸,這樣,即使主備之間的連接出現連接問題,主庫的數據都在far sync實例中,實現數據零丟失。
Far Sync的高可用配置:雖然far sync提供零丟失的數據同步,但一切都會出故障,為了避免主庫與Far Sync之間的連接出現問題導致數據丟失,在主庫上配置兩個Far Sync實例,當其中一個連接中斷的時候,自動切換到另一個Far Sync實例。
Far Sync的擴展配置:在需要做主備切換的環境中,為了保證切換後的數據傳輸不受影響,在兩個節點上都配置Far Sync實例,當然,在同一時刻,隻有一個Far Sync實例處於活動狀態,也就是與當前主庫靠近的Far Sync實例處於活動狀態。
reference picture4
在12.2的IM中,支持三種格式的數據存儲:關係型數據,虛擬列和JSON格式。並且可以將JSON對象的虛擬列直接存放在IM的虛擬列,使得針對JSON對象的操作非常方便。
注意,對於JSON的文檔,一般要求文件大小不大於32M,否則可能不會帶來好的性能提升。
reference picture5
在沒有join group的情況下,表的關聯查詢是如何實現的:
假如vehicles表和sales表需要做關聯查詢。
1、掃描Vehicles表,並將滿足條件的行解壓並發送到hash 連接
2、使用vehicles中獲取的做連接的列創建hash列表
3、掃描sales表,過濾出符合條件的行
4、解壓過濾得到的行,並發送至hash連接
5、使用vehicle表的ID值進行探測,找到匹配的行
使用join group後的連接訪問方式如下:
1、掃描vehicles表,將符合條件的以壓縮的方式發送至hash 連接
2、對上步中壓縮的結果中的不同值創建數組
3、掃描sales表
4、將匹配的行以壓縮的方式發至hash 連接
5、對數組中壓縮的值做全連接
因此我們看到,沒有使用join group的時候,最後在選擇行的時候是掃描二維的hash表獲得,而使用join group之後隻需要掃描一個數組,這樣就加快了查詢效率。
文章轉自數據和雲公眾號,原文鏈接
最後更新:2017-07-18 20:36:24