乾貨 | 數據不丟失?有它就夠了——金倉KingbaseES高可用集羣部署

 

編者按node

可用性是數據庫的重要指標之一,高可用集羣是保障數據不丟失、服務可用的主要措施之一。下面將從部署維度闡晰金倉數據庫KingbaseES如何打造高可用集羣。數據庫

 

 

高可用架構基礎服務器

 

 

實踐中,一般讓多個數據庫服務器協同工做來實現數據庫的高可用。例如,當一個服務器節點失效時,另外一個服務器去替代工做,以此來達到不中斷對望服務或只中斷很短的時間;或者是多個數據庫同時提供服務(多活),用戶能夠訪問任意一臺數據庫,當有數據庫故障時,訪問其餘數據庫便可。微信

 

但與無狀態的應用服務HA不同的是,數據庫記錄了數據,想要在多臺數據庫之間切換,須要進行數據同步,全部數據同步是數據庫高可用方案的基礎。網絡

 

(一)各類高可用架構簡介架構

從解決數據同步的角度來看,金倉數據庫高可用方案目前包含如下幾種:併發

 

  • 共享存儲:更改存儲文件格式,使得多臺設備能夠對文件系統同時掛起,在多個數據庫同時操做存儲時,解決併發寫的問題,同時,在單個數據庫寫時發生故障例如斷電時,解決髒數據的清理。或者,使用相似SAN存儲,一臺數據庫故障時,經過HA等工具把存儲掛載到另外一臺設備。ssh

  • WAL同步方案:數據庫老是日誌先行,保證了WAL的多臺數據庫一致性,就能側面保證數據庫集羣數據一致性,經過這個機制,能夠搭建主從數據庫,當主數據庫失效時,把從數據庫提高爲主庫,繼續對外提供服務。異步

  • 基於觸發器的同步方案:使用觸發器記錄數據變化,而後同步到另外一臺數據庫上。高併發

  • 基於語句複製的中間件:應用鏈接到中間件,不直連數據庫,中間件把數據庫的變動發送到底層多臺數據庫上,從而完成數據同步。

 

(二)服務的可靠性設計

KingbaseES產品主備方式的高可用方案是經過主備之間的WAL同步實現的,數據同步有異步、同步、半同步三種方式。

 

同步方式的優勢在故障切換過程當中,數據徹底不丟失,但缺點也很明顯——影響性能:一個事物的數據必須寫到備庫中才能返回。當主備數據庫的網絡中斷,或者備機發生故障時:主庫會hung住,或者選擇主庫降級爲異步方式;還有一個辦法就是主庫帶兩個以上的備庫,只要有一個備庫是正常的,主備關係就正常不受影響,固然此方式缺點就增長了成本。

 

若是系統能夠容忍故障切換時丟失少許數據,可使用數據異步同步的方式。該方案在主庫故障、備機須要切換時,會丟必定的數據,部署時應綜合考慮環境避免主備庫數據差別越增越多。

 

半同步方案介於同步和異步之間,能在確保數據不丟的前提下還保證必定的性能。確保重要的WAL在備庫落盤主庫的提交就能返回,缺點是沒有等待備庫的WAL實時回放,在備庫可讀的狀況下備庫可能會讀不到主庫剛剛插入的數據。

 

在通常環境中,咱們推薦半同步方案,WAL落盤和WAL回放的時間差幾乎能夠忽略不計,並在備機只做爲備份模式下能夠確保數據不丟。但在高併發場景或者金融領域的備機可讀模式下,部署時就須要斟酌。在此使用場景中,同步模式則更爲合適。

 

要保證服務中斷的時間儘可能的少,還須要靈敏的故障檢測。但故障檢測太靈敏時,誤操做的機率也會增長,例如網絡抖動,因此須要選擇一個合適的故障檢測時間。故障檢測時間一般在秒級別以上,越大型的系統就越需謹慎,不然形成頻繁的切換帶來意想不到的風險。

 

(三)數據的可靠性設計

數據庫系統中最重要的資源就是數據,如何保證數據不丟失,是數據庫系統中須要重點考慮的事情。致使數據丟失的緣由有不少,如硬件損壞、軟件BUG、人爲失誤等,因此數據庫一般以集羣的方式呈現,數據實時備份在其餘物理設備的備數據庫上。同時,也要定時的作冷備,防止運行的集羣或單機數據庫總體奔潰。

 

下面將詳細講述如何部署KingbaseES高可用集羣。

 

 

部署KingbaseES集羣

 

 

(一)部署工具

金倉數據庫提供可視化的圖形界面集羣部署工具,經過此工具,用戶能夠方便、快捷的搭建KingbaseES集羣,更直觀感覺金倉KingbaseES數據庫產品的實際應用功能。

 

在工具中,咱們能夠對集羣進行管理:添加節點、啓動/關閉集羣、暫停高可用功能、主備切換等,也能夠直觀的對目前集羣狀態進行查看。打開數據庫部署工具,初始界面如圖所示:

 

一、建立項目

右鍵集羣項目名稱,點擊建立項目,部署工具以項目爲一個歸納集羣的總單位,推薦有意義的名稱,好比湖南醫療機構,就以首字母簡寫HNYL,這裏簡單示意咱們起名爲project1。

 

二、建立集羣

(1)節點通用配置

在建好項目後,咱們能夠在項目名稱處右鍵,新建集羣,彈出節點通用配置,如圖所示:

 

集羣名稱推薦輸入有意義的命名,好比這裏爲HNYL的5棟2樓機房,則起名爲5D2L,這樣便於區分同一個項目下的不一樣集羣。這裏示例集羣名稱爲cluster1,輸入ssh端口,root密碼等,點擊下一步。

通用機的含義爲普通操做系統環境,可使用ssh標準協議。

 

(2)DB&HA配置

接下來進入 DB&HAmgr配置,如圖所示:

 

  • 選擇好數據庫自帶的zip包文件,trust_server推薦配置爲當前網段的網關,用來輔助判斷當前節點是否網絡失效。其他基本配置使用默認便可。

  • 選擇高級設置,如圖所示:

  • recovery這一欄改成automatic表示故障的節點在設備恢復後能夠自動從新加入集羣。vip(virtual_ip)能夠根據須要添加,這裏咱們填空。

  • 點擊肯定,通用配置建立完成。

 

(3)建立節點

在節點管理處,右鍵,點擊新增節點。

  • 這裏就是選擇那一臺設備用來作咱們數據庫集羣的節點了,而且任何一個集羣的第一個節點,必定爲主節點。

  • 輸入集羣第一個節點的名稱,ip,license文件後,點擊下一步。

 

a.環境監測

這裏會對物理設備的操做系統環境進行一輪篩查,監測是否能穩定正確的運行集羣。

點擊檢查按鈕,出現如圖所示:

 

注意,出現標紅檢查項(ERROR)是沒法繼續部署集羣的,必須由用戶或系統管理員將其對應參數改成對應值纔可繼續部署。這裏就爲集羣的運行將系統錯誤隱患在前期就排除一遍。

 

改好後,如圖所示:

當檢查項只有黑色字體和黃色(警告)字體,咱們能夠進行點擊下一步的操做。

 

b.預覽信息

對部署項的預覽圖示,無誤後點擊肯定。

 

c.部署界面

接下來會彈出帶有部署安裝信息的界面,如圖所示:

 

點擊部署,成功後如圖所示:

 

點擊關閉後。在節點管理雙擊,會出現剛纔部署好的node1節點,如圖所示:

 

同理,咱們能夠添加第2、第3、第n個節點

 

等待備節點部署完成便可

 

 

成功後,在節點管理界面就能夠看到咱們的2個節點node1,node2

 

最簡單的一主一備集羣就搭建完了,能夠根據建立節點章節,繼續部署一主多備的集羣。

 

 

結語

 

 

至此,KingbaseES集羣的部署介紹就到這裏,下一期,咱們介紹如何使用工具管理集羣。

 

往期回顧

 

 

共建生態,2020人大金倉開發者競技大賽—江蘇站開始報名

 

人大金倉正式加入中國關鍵信息基礎設施技術創新聯盟

 

人大金倉繼續領跑國產關係型數據庫市場

 

本文分享自微信公衆號 - 金倉數據庫(china-data)。 若有侵權,請聯繫 support@oschina.cn 刪除。

相關文章
相關標籤/搜索