數據庫高性能讀寫分離集群操作說明


1.系統概述

  在一個高並發的事務型系統中,當寫事務占的比例相對讀事務相對較小時,可以借助DM7的主備系統備機可讀的特點,將讀事務轉移到備機執行,減少單節點的並發壓力,通過增加備機節點資源,提高系統的並發能力,增強系統性能。

  DM7提供一種獨具創新的主備方案,即時歸檔主備系統,該系統可通過客戶端來實現讀寫事務的自動分離,讀事務在備機執行,寫事務在主機執行,減輕主機的負載。備機可以配置多個,備機配置的越多,更能分擔主機的壓力,系統整體並發效率越高。

  2.讀寫分離流程

  DM7使用JDBC驅動與服務器結合的方式實現讀寫分離,大致流程如下:

  1) 用戶登錄后,客戶端首先連接到主機,主機根據即時歸檔的配置,獲取一個有效的備機信息,並返回給客戶端。

  2) 客戶端根據主機返回的備機IP和端口,建立與該備機的連接。

  3) 客戶端執行語句時先在備機上執行,如果是只讀事務,則只在備機上執行。

  4) 如果系統收到客戶端試圖在備機模式下修改數據等錯誤,則說明該事務是寫事務,則轉移到主機上執行。

  5) 一旦主機上執行的寫事務提交,則下次繼續從備機開始執行。

  6) 為了實現負載均衡,防止出現讀事務過多占用備機資源、主機空閑的情況,客戶端采用一定的算法進行均衡,主機上也會執行一部分讀事務。

系統概述與讀寫分離流程
▲圖1 讀寫分離流程

  3.即時歸檔

  DM7支持多種歸檔類型,本地歸檔、實時歸檔、同步歸檔、異步歸檔等類型。為了實現讀寫分離,新增一種即時歸檔(Timely archive)類型,以區別實時歸檔。

  實時歸檔是實時發送日志到備機,備機收到日志不會等待日志APPLY完成,立即響應給主機,主機收到響應后才刷本地日志。

  即時歸檔是一種比實時歸檔更加嚴格的遠程歸檔方式,先刷本地日志,然后發送到備機,並且等待備機APPLY完成,之所以要這么做,原因有2個:

  首先,即時歸檔主備系統不會發生主備切換,在主機發送完日志到備機后刷日志前主機崩潰的情況下,不能讓備機多一段日志,確保主機數據是完整且最新的。

  其次,需要保證主備機的數據一致性,避免從備機讀的數據到主機進行更新時數據已經不一致了。

  在某些不需要保證嚴格一致性的情況下,可以通過dmarch.ini中的ARCH_WAIT_APPLY配置項,來配置不需要等待備機重做完日志的主備系統,類似於實時歸檔,可以進一步提高系統性能。

4.事務一致性

  若事務全為讀操作,則全部在備機上執行。

  若事務全為寫操作,則全部在主機上執行。

  若事務既有讀又有寫,備機會將寫操作返回給主機執行,該事務中從寫操作開始以后所有操作均在主機上執行,保證事務一致性。

  5.數據同步

  配置讀寫分離集群之前,必須先同步主備機數據,確保兩者保持完全一致;主數據庫可以是新初始化的數據,也可以是正在生產、使用中的數據。DM7提供了兩種方式初始化同步主備機數據,數據文件拷貝以及備份還原方式。

  不能使用分別初始化庫的方法,原因如下:

  1) 每個庫都有一個永久魔數(permenant_magic),主備機傳送日志時會判斷這個值是否一樣,確保來自同一個庫,不同的庫傳送不了日志

  2) 由於dminit初始化數據庫時,會生成隨機密鑰用於加密,每次生成的密鑰都不相同,備機無法解析采用主機密鑰加密的數據

  1. 數據文件拷貝

  如果搭建系統之前,數據庫系統已經上線運行了,可通過拷貝數據文件的方式實現主備數據庫的同步。具體步驟包括:

  1) 正常關閉數據庫。

  2) 嚴格按照數據文件在主機上的分布,拷貝數據文件到備機的對應目錄。

  3) 如果數據文件統一存放在一個目錄下,則直接拷貝整個目錄即可。

  2. 備份還原方式

  用戶也可以通過脫機備份、脫機還原的方式同步主備機數據,更詳細的說明可以參考備份恢復相關文檔。具體步驟包括:

  1) 正常關閉數據庫

  2) 進行脫機備份

  /dmbackup TYPE=FULL INI_PATH=/dm7data/DM1/DAMENG/dm.ini NAME=BACKUP_FILE

  3) 拷貝備份文件到備機

  4) 執行脫機數據庫恢復

  /dmrestoreINI_PATH=/dm7data/DM1/DAMENG/dm.ini FILE=/dm7data/DM1/DB_DAMENG_20120910180136000741.bak

  六、 讀寫分離效果

  搭建1主2備系統,最優情況可提升吞吐量250%。

事務一致性與數據同步
▲圖2 讀寫分離測試效果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM