圖形化探索:快速改造單實例為雙主、MGR、讀寫分離等架
單機GreatSQL/MySQL調整架構為多副本復制的好處有哪些?為什么要調整?
圖片
- 性能優化:如果單個GreatSQL服務器的處理能力達到瓶頸,可能需要通過主從復制、雙主復制或MGR,以及其他高可用方案等來提高整體性能。通過將讀請求分發到多個服務器,可以大大提高并發處理能力。
- 高可用性:如果您的應用程序不能接受服務中斷,那么多副本可以幫助您實現高可用性的故障切換。當主服務器發生故障時,可以快速切換到從服務器或另一個主服務器,以保持服務的連續性。
- 讀寫分離和業務數據測試:單機GreatSQL在做一致性備份時,往往對性能和負載產生壓力,主從、多主、或MGR可以選擇從節點來備份。數據恢復或者測試,可以優先在從服務器進行數據回放測試等。
請查看手動部署介紹:GreatSQL從單機到MGR擴展紀實
適用場景:
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
圖片
五、總結
改造的意義:如果您需要存儲和處理大量數據,且讀寫負載較高,單個GreatSQL/MySQL服務器可能無法滿足需求,或為了滿足跨地域訪問的需求,可以將單機數據庫,改造成可跨多個數據中心采用異步復制、或半同步、以及強同步等方式,既可以保證數據庫的多副本容災,又可提升業務的讀寫效率,規避了單點故障對業務的影響和負載。
GreatADM提供的能力和價值:且在改造升級過程中,借助GreatADM管理平臺,圖形化改造,大大降低了架構改造的難度和效率。避免DBA手動黑屏命令方式的操作的繁冗復雜的操作命令,減少業務停機時長,同時釋放人工操作的壓力。