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