單機GreatSQL/MySQL調整架構為多副本複製的好處有哪些?為什麼要調整? 性能優化:如果單個GreatSQL伺服器的處理能力達到瓶頸,可能需要通過主從複製、雙主複製或MGR,以及其他高可用方案等來提高整體性能。通過將讀請求分發到多個伺服器,可以大大提高併發處理能力。 高可用性:如果您的應用程 ...
單機GreatSQL/MySQL調整架構為多副本複製的好處有哪些?為什麼要調整?
- 性能優化:如果單個GreatSQL伺服器的處理能力達到瓶頸,可能需要通過主從複製、雙主複製或MGR,以及其他高可用方案等來提高整體性能。通過將讀請求分發到多個伺服器,可以大大提高併發處理能力。
- 高可用性:如果您的應用程式不能接受服務中斷,那麼多副本可以幫助您實現高可用性的故障切換。當主伺服器發生故障時,可以快速切換到從伺服器或另一個主伺服器,以保持服務的連續性。
- 讀寫分離和業務數據測試:單機GreatSQL在做一致性備份時,往往對性能和負載產生壓力,主從、多主、或MGR可以選擇從節點來備份。數據恢復或者測試,可以優先在從伺服器進行數據回放測試等。
請查看手動部署介紹: GreatSQL從單機到MGR擴展紀實 https://mp.weixin.qq.com/s/ewIx_avO5R6GDGmyDmPMLg
適用場景:
1、單機GreatSQL/MySQL改造為主從或者雙主複製
2、單機GreatSQL/MySQL改造為MGR組複製
3、GreatSQL/MySQL主從改造為MGR組複製
4、基於備份做GreatSQL/MySQL資料庫升級測試
具體步驟
通過GreatADM可視化的方法,屏蔽手動命令操作的複雜度,快速完成單實例的向多主、多副本的架構分鐘級的調整升級。
場景支持:支持納管的實例的架構改造,或者資料庫軟體版本的升級功能。
思路如下:通過sysbench壓入單機數據,通過備份單機數據,恢復到新的架構中,使用sysbench直接連接新的架構做壓測,查看是否可正常運行驗證數據可用性。(本次演示採用GreatSQL單機企業版本操作)
步驟如下:
1、使用GreatADM針對單實例做全量備份
2、選擇備份的數據和確定要改造或升級的版本
3、選擇不同架構和軟體包構建新架構(本次演示單機向雙主、MGR的變更)
4、恢複數據完成新架構改造
5、sysbench壓測查數據可用性
環境信息如下:
資料庫 | 主機IP | 實例埠 | 目標架構 | 主機IP | 實例埠 |
---|---|---|---|---|---|
單機 | 172.17.134.68 | 3307 | 主從、雙主、雙主多從 | 172.17.134.60/61 | 3307 |
單機 | 172.17.134.68 | 3307 | MGR(1台主機3實例) | 172.17.134.61 | 3307/3308/3309 |
圖形化工具 | GreatADM-6.0版本 | ||||
物理備份工具 | xtrabackup-8.0.32 |
添加2台主機172.17.134.60/61
到GreatADM中,如下
準備工作:sysbench創建壓測數據到單實例
登錄資料庫,創建sysbench測試數據50張表,每表1w行數據。
$ sysbench --test=oltp_read_write.lua --mysql-user=greatdb --mysql-password='xxxxx' --mysql-host=172.17.134.68 --mysql-port=3307 --mysql-db=sysbench --threads=10 --report-interval=1 --tables=50 --table-size=10000 --time=60 prepare
通過SQL視窗查看對應的表信息
完成測試數據的創建,接下來進行單節點的備份操作。
一、做資料庫全量備份
使用GreatADM針對單實例做全量備份,選擇【備份管理】執行單節點的全量備份,在備份之前首先需要配置備份方式。因為GreatADM支持HDFS、FTP、COS對象存儲、LOCAL本地、遠端備份伺服器5種類的備份集存儲方式。
這裡我們選擇【LOCAL本地存儲】即將數據直接備份放置在資料庫所在的主機,指定本地路徑下。【本地路徑】是最終備份集存儲的路徑,我們命名為:/backup,需要在資料庫的伺服器上創建目錄,並授權。
創建備份集存儲的目錄,使用root創建,並調整目錄許可權,保證和添加服務時創建的【管理用戶】,同一個屬組,確保GreatADM以greatsql普通用戶備份時,有許可權寫入/backup。
$ mkdir /backup ;
$ chown greatsql.greatsql /backup;
接下來,執行【手動備份】並配置備份項。
GreatADM支持多種資料庫架構的備份,且可以按照用戶需求,選擇備份不同項目的資料庫,以及按需選擇資料庫主節點、或從節點備份。
在配置項中,同時支持【壓縮備份】,【加密備份】,【並行備份】,以及備份超時平臺層的【超時提醒】消息等
執行備份,日誌輸出如下 ,整個備份分為4個階段即
【收集信息】--收集資料庫的版本和數據文件路徑等信息
【備份預檢查】--檢查備份工具和資料庫版本是否匹配,備份配置項是否有效
【執行備份】--執行執行一致性的物理熱備
【上傳到存儲】--如果配置遠程網路存儲,則進行備份集的網路傳輸。
完成備份,如下生成的備份記錄
完成備份之後,可點擊【備份詳情】查看本次備份的配置信息等。
操作系統路徑下對應的備份集,與資料庫實例同在一臺伺服器的不同路徑下。
二、恢復為雙主複製架構
基於備份做架構變更,基於全量物理備份做數據的恢復,和新架構的變更創建。基於全量備份恢復導172.17.134.60、61兩台主機,來改造成新的主從,或者雙主架構。步驟如下:
首先選中【序號1】剛剛完成的【單機601全量備份】,點擊【備份恢復】選項
彈出要恢復為哪種架構,這裡目前可選的有4種,同時支持2種恢復架構的類型,即【恢復物理機資料庫】和【資源池方式】也就是資源隔離方式。 這裡,我們選擇物理機恢復出雙主架構。點擊【主備副本】選擇【恢復物理機資料庫】
接下來配置恢復出的新架構,屬於哪個【項目】,所選擇的【資料庫軟體包版本】,以及備份工具包,GreatSQL相容開源的xtrabackup,這裡我們就預設選擇GreatADM已經上傳的xtrabackup-8.0.32版本。主機選擇172.17.134.60、172.17.134.61兩台主機。鑒於之前部分傳統的企業客戶,有多個副本的需求場景下,GreatADM提供了雙主下,再次擴展副本的能力。如果在雙主複製的架構下,仍想擴展1個從副本,則可以在添加節點之後,選擇【添加從節點】選項,擴展副本數
預設允許用戶混合主從副本安裝在同一臺物理主機上,用埠做區分如下示意圖,則可以在雙主下各創一個從副本。形成雙主雙從,這裡僅作演示。
實際我們仍按雙主架構來進行架構恢復。進入新架構的部署預檢查頁面,如圖,主要是涉及操作系統配置標準化、規範化、依賴包等檢查。
通過之後進行下一步,完成新架構的初始化,併在初始化之後,做數據的恢復。
完成架構調整的雙主結構拓撲如下
實例屬性信息如下
同時保留了原始節點,此時可將原始的單機移除,到此完成架構的改造和變更。數據中的用戶名、密碼等和原始單機資料庫完全相同一致。可直接點點擊【登錄】驗證。
完成單機改造為新的雙主複製結構。
三、恢復為MGR架構
同樣,選擇單機601的備份集, 刪除之前172.17.134.60、61的資料庫,釋放主機資源。之前鑒於項目中有用戶主機資源不足,考慮主機採用多實例混合部署在1臺上的情況,我們順便測下GreatADM是否支持重覆利用主機,混合部署多個實例。
選擇【備份恢復】,恢復架構中,選擇【paxos高可用複製】,選擇【物理資料庫】
進入paxos配置項中,我們仍選擇【default】預設項目,對應的軟體包版本可選擇升級的新版本,在做架構改造時,同時進行資料庫的版本升級工作。此處,我們重覆使用172.17.134.61這台主機,分別使用3307、3308、3309三個埠來區分3個實例。如下:
預檢查之後的拓撲圖預留和埠信息如下:
安裝部署過程和日誌信息如下:
安裝之後拓撲如下:
完成單機向paxos高可用(組複製)的改造和數據恢復。查看當前172.17.134.61主機的運行狀態和負載,也驗證了GreatADM支持混合部署多實例到1台主機。
四、驗證數據的可用性
使用sysbench壓測新恢復的架構,對應的sysbench庫的表等可直接壓測使用,無數據異常。
$ sysbench --test=oltp_read_write.lua --mysql-user=greatsql --mysql-password='xxxxx' --mysql-host=172.17.134.61 --mysql-port=3307 --mysql-db=sysbench --threads=10 --report-interval=1 --tables=50 --table-size=10000 --time=60 run
五、總結
改造的意義:如果您需要存儲和處理大量數據,且讀寫負載較高,單個MySQL伺服器可能無法滿足需求,或為了滿足跨地域訪問的需求,可以將單機資料庫,改造成可跨多個數據中心採用非同步複製、或半同步、以及強同步等方式,既可以保證資料庫的多副本容災,又可提升業務的讀寫效率,規避了單點故障對業務的影響和負載。
GreatADM提供的能力和價值:且在改造升級過程中,藉助GreatADM管理平臺,圖形化改造,大大降低了架構改造的難度和效率。避免DBA手動黑屏命令方式的操作的繁冗複雜的操作命令,減少業務停機時長,同時釋放人工操作的壓力。
Enjoy GreatSQL