GaussDB的數(shù)種形態(tài)
GaussDB作為一種新興的關(guān)系型數(shù)據(jù)庫產(chǎn)品,似乎有點讓人摸不著頭腦。有朋友問我GaussDB單機版怎么樣,有人說GaussDB是分布式數(shù)據(jù)庫,還有人說它是云數(shù)據(jù)庫,還有人會把GaussDB和華為的數(shù)據(jù)倉庫GaussDB DWS混為一談。確實,公開的GaussDB的資料對這些問題沒有明確的說法,并且GaussDB作為數(shù)據(jù)庫獨立商業(yè)銷售不足一年,大家對這個產(chǎn)品的了解不多,眾說紛紜就不足為奇了。今天我們來聊聊GaussDB的數(shù)種形態(tài),當然這里的GaussDB和華為的GaussDB DWS不是一碼事。
從大類來看,GaussDB分為云數(shù)據(jù)庫GaussDB和輕量化部署形態(tài)GaussDB兩種,云數(shù)據(jù)庫是華為云上的GaussDB,華為數(shù)據(jù)庫產(chǎn)品這些年還處于發(fā)展期,前期的命名和版本號都比較亂,云數(shù)據(jù)庫GaussDB是現(xiàn)在的叫法,以前還曾經(jīng)被稱為GaussDB for openGauss,因為華為云上的RDS都被統(tǒng)稱為GaussDB,這種命名方法實際上很不利與GaussDB的品牌推廣。很容易讓大家把GaussDB與GaussDB for MySQL,GaussDB for Postgresql等基于開源數(shù)據(jù)庫的云上RDS混淆了。
除了云數(shù)據(jù)庫和輕量化部署形態(tài)這兩大類以外,每個大類里,GaussDB還分為分布式和主備版這兩種類型。這兩種類型在部署架構(gòu)和使用、運維方面還是有很大的差別的。
不管哪種部署架構(gòu),其RDBMS的核心是統(tǒng)一的,這個核心與openGauss也是有淵源的,大部分的核心代碼是共有的。這種特性讓使用GaussDB的多種形態(tài)以及openGauss的用戶可以共享部分運維經(jīng)驗。不過集中式數(shù)據(jù)庫與分布式數(shù)據(jù)庫之間的天然鴻溝讓這些形態(tài)的數(shù)據(jù)庫之間的運維經(jīng)驗共享變得有些困難。熟悉openGauss的DBA想要去運維GaussDB分布式數(shù)據(jù)庫,還是有大量的知識需要去學習。
圖片
云數(shù)據(jù)庫的GaussDB版本需要依賴于DBS平臺以及華為云的基礎(chǔ)能力,其部署架構(gòu)是十分復雜的。其安裝部署十分復雜,其運維操作也只能依賴于DBS平臺的能力。實際上上圖只是包含了部署GaussDB的平臺環(huán)境,并沒有包含GaussDB本身。如果加上GaussDB數(shù)據(jù)庫,這張圖就會復雜得沒法看了。所以只能用這張補充的圖來進一步說明。
圖片
從輕量化部署形態(tài)的數(shù)據(jù)庫架構(gòu)圖上,我們可以把GaussDB看得更為清晰一些。對于主備結(jié)構(gòu)的GaussDB,其輕量化部署形態(tài)如下圖。
圖片
DN是數(shù)據(jù)庫節(jié)點,每個DN是一個獨立的數(shù)據(jù)庫實例。OM是GaussDB的運維管理模塊,提供各種運維工具。ETCD是一個小型的分布式鍵值數(shù)據(jù)庫,用于服務(wù)發(fā)現(xiàn)與共享配置信息的存儲。在整個GaussDB集群運行中起到十分重要的作用。GaussDB主備版的高可用切換、消息發(fā)布、分布式鎖、分布式隊列、集群健康狀態(tài)監(jiān)控、Leader選舉等方面都需要ETCD參與。CM是華為的集群管理組件,由CM AGENT、CM SERVER、CM Monitor組成。主備版是GaussDB分布式數(shù)據(jù)庫的一個簡化版。一般采用三節(jié)點部署模式,一主二從,通過數(shù)據(jù)庫復制保持主從庫的數(shù)據(jù)同步。平時只有主節(jié)點對外提供讀寫服務(wù),一旦主節(jié)點故障自動選舉出新的主節(jié)點,完成數(shù)據(jù)同步后接管業(yè)務(wù)。
圖片
GaussDB的分布式模式稍微復雜一些,DN作為存儲節(jié)點,是分布式分區(qū)部署的。業(yè)務(wù)應(yīng)用哪個不直接連接到DN上,而時連接到計算節(jié)點CN上。GTM作為全局事務(wù)管理器負責處理分布式事務(wù)。為了保證高可用,GTM采用主從結(jié)構(gòu),一主一備,主節(jié)點故障時備節(jié)點接管。因為GaussDB的GTM使用了GTM-LITE,因此主備切換的效率還是不錯的,不會對生產(chǎn)業(yè)務(wù)產(chǎn)生太大的影響。
除此之外,GaussDB數(shù)據(jù)庫要想在用戶側(cè)很好的使用,還有數(shù)個組件是必不可少的,其中一個是DRS,通過DRS可以完成從其他數(shù)據(jù)庫向GaussDB數(shù)據(jù)復制的工作。
圖片
實際上哪怕是GaussDB的輕量化部署形態(tài),所涉及的組件還是挺復雜的,安裝部署、啟停數(shù)據(jù)庫等操作還是有些復雜。我想隨著GaussDB數(shù)據(jù)庫產(chǎn)品的升級,GaussDB的系統(tǒng)化工作會進一步深入,當年Oracle也走過這樣一個過程,我第一次安裝Oracle數(shù)據(jù)庫的時候,創(chuàng)建一個表空間都需要先用OS命令touch一個文件,然后才能把這個文件加入到表空間里?,F(xiàn)在國產(chǎn)數(shù)據(jù)庫的各種復雜讓剛剛用慣了Oracle的用戶感受到了各種不便,也會有各種吐槽。我想國產(chǎn)數(shù)據(jù)庫的開發(fā)者應(yīng)該擅長傾聽這些吐槽,并有義務(wù)讓這種不便盡快變成方便。