圖形化探索:快速改造單實(shí)例為雙主、MGR、讀寫(xiě)分離等架
單機(jī)GreatSQL/MySQL調(diào)整架構(gòu)為多副本復(fù)制的好處有哪些?為什么要調(diào)整?
圖片
- 性能優(yōu)化:如果單個(gè)GreatSQL服務(wù)器的處理能力達(dá)到瓶頸,可能需要通過(guò)主從復(fù)制、雙主復(fù)制或MGR,以及其他高可用方案等來(lái)提高整體性能。通過(guò)將讀請(qǐng)求分發(fā)到多個(gè)服務(wù)器,可以大大提高并發(fā)處理能力。
- 高可用性:如果您的應(yīng)用程序不能接受服務(wù)中斷,那么多副本可以幫助您實(shí)現(xiàn)高可用性的故障切換。當(dāng)主服務(wù)器發(fā)生故障時(shí),可以快速切換到從服務(wù)器或另一個(gè)主服務(wù)器,以保持服務(wù)的連續(xù)性。
- 讀寫(xiě)分離和業(yè)務(wù)數(shù)據(jù)測(cè)試:?jiǎn)螜C(jī)GreatSQL在做一致性備份時(shí),往往對(duì)性能和負(fù)載產(chǎn)生壓力,主從、多主、或MGR可以選擇從節(jié)點(diǎn)來(lái)備份。數(shù)據(jù)恢復(fù)或者測(cè)試,可以?xún)?yōu)先在從服務(wù)器進(jìn)行數(shù)據(jù)回放測(cè)試等。
請(qǐng)查看手動(dòng)部署介紹:GreatSQL從單機(jī)到MGR擴(kuò)展紀(jì)實(shí)
適用場(chǎng)景:
1、單機(jī)GreatSQL/MySQL改造為主從或者雙主復(fù)制
2、單機(jī)GreatSQL/MySQL改造為MGR組復(fù)制
3、GreatSQL/MySQL主從改造為MGR組復(fù)制
4、基于備份做GreatSQL/MySQL數(shù)據(jù)庫(kù)升級(jí)測(cè)試
具體步驟
通過(guò)GreatADM可視化的方法,屏蔽手動(dòng)命令操作的復(fù)雜度,快速完成單實(shí)例的向多主、多副本的架構(gòu)分鐘級(jí)的調(diào)整升級(jí)。
場(chǎng)景支持:支持納管的實(shí)例的架構(gòu)改造,或者數(shù)據(jù)庫(kù)軟件版本的升級(jí)功能。
思路如下:通過(guò)sysbench壓入單機(jī)數(shù)據(jù),通過(guò)備份單機(jī)數(shù)據(jù),恢復(fù)到新的架構(gòu)中,使用sysbench直接連接新的架構(gòu)做壓測(cè),查看是否可正常運(yùn)行驗(yàn)證數(shù)據(jù)可用性。(本次演示采用GreatSQL單機(jī)企業(yè)版本操作)
步驟如下:
1、使用GreatADM針對(duì)單實(shí)例做全量備份
2、選擇備份的數(shù)據(jù)和確定要改造或升級(jí)的版本
3、選擇不同架構(gòu)和軟件包構(gòu)建新架構(gòu)(本次演示單機(jī)向雙主、MGR的變更)
4、恢復(fù)數(shù)據(jù)完成新架構(gòu)改造
5、sysbench壓測(cè)查數(shù)據(jù)可用性
環(huán)境信息如下:
數(shù)據(jù)庫(kù) | 主機(jī)IP | 實(shí)例端口 | 目標(biāo)架構(gòu) | 主機(jī)IP | 實(shí)例端口 |
單機(jī) | 172.17.134.68 | 3307 | 主從、雙主、雙主多從 | 172.17.134.60/61 | 3307 |
單機(jī) | 172.17.134.68 | 3307 | MGR(1臺(tái)主機(jī)3實(shí)例) | 172.17.134.61 | 3307/3308/3309 |
圖形化工具 | GreatADM-6.0版本 | ||||
物理備份工具 | xtrabackup-8.0.32 |
添加2臺(tái)主機(jī)172.17.134.60/61到GreatADM中,如下
圖片
準(zhǔn)備工作:sysbench創(chuàng)建壓測(cè)數(shù)據(jù)到單實(shí)例
圖片
登錄數(shù)據(jù)庫(kù),創(chuàng)建sysbench測(cè)試數(shù)據(jù)50張表,每表1w行數(shù)據(jù)。
$ 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
通過(guò)SQL窗口查看對(duì)應(yīng)的表信息
圖片
完成測(cè)試數(shù)據(jù)的創(chuàng)建,接下來(lái)進(jìn)行單節(jié)點(diǎn)的備份操作。
一、做數(shù)據(jù)庫(kù)全量備份
使用GreatADM針對(duì)單實(shí)例做全量備份,選擇【備份管理】執(zhí)行單節(jié)點(diǎn)的全量備份,在備份之前首先需要配置備份方式。因?yàn)镚reatADM支持HDFS、FTP、COS對(duì)象存儲(chǔ)、LOCAL本地、遠(yuǎn)端備份服務(wù)器5種類(lèi)的備份集存儲(chǔ)方式。
圖片
這里我們選擇【LOCAL本地存儲(chǔ)】即將數(shù)據(jù)直接備份放置在數(shù)據(jù)庫(kù)所在的主機(jī),指定本地路徑下?!颈镜芈窂健渴亲罱K備份集存儲(chǔ)的路徑,我們命名為:/backup,需要在數(shù)據(jù)庫(kù)的服務(wù)器上創(chuàng)建目錄,并授權(quán)。
圖片
創(chuàng)建備份集存儲(chǔ)的目錄,使用root創(chuàng)建,并調(diào)整目錄權(quán)限,保證和添加服務(wù)時(shí)創(chuàng)建的【管理用戶(hù)】,同一個(gè)屬組,確保GreatADM以greatsql普通用戶(hù)備份時(shí),有權(quán)限寫(xiě)入/backup。
$ mkdir /backup ;
$ chown greatsql.greatsql /backup;
接下來(lái),執(zhí)行【手動(dòng)備份】并配置備份項(xiàng)。
圖片
GreatADM支持多種數(shù)據(jù)庫(kù)架構(gòu)的備份,且可以按照用戶(hù)需求,選擇備份不同項(xiàng)目的數(shù)據(jù)庫(kù),以及按需選擇數(shù)據(jù)庫(kù)主節(jié)點(diǎn)、或從節(jié)點(diǎn)備份。
圖片
在配置項(xiàng)中,同時(shí)支持【壓縮備份】,【加密備份】,【并行備份】,以及備份超時(shí)平臺(tái)層的【超時(shí)提醒】消息等
圖片
執(zhí)行備份,日志輸出如下 ,整個(gè)備份分為4個(gè)階段即
【收集信息】--收集數(shù)據(jù)庫(kù)的版本和數(shù)據(jù)文件路徑等信息
【備份預(yù)檢查】--檢查備份工具和數(shù)據(jù)庫(kù)版本是否匹配,備份配置項(xiàng)是否有效
【執(zhí)行備份】--執(zhí)行執(zhí)行一致性的物理熱備
【上傳到存儲(chǔ)】--如果配置遠(yuǎn)程網(wǎng)絡(luò)存儲(chǔ),則進(jìn)行備份集的網(wǎng)絡(luò)傳輸。
圖片
完成備份,如下生成的備份記錄
圖片
完成備份之后,可點(diǎn)擊【備份詳情】查看本次備份的配置信息等。
操作系統(tǒng)路徑下對(duì)應(yīng)的備份集,與數(shù)據(jù)庫(kù)實(shí)例同在一臺(tái)服務(wù)器的不同路徑下。
圖片
二、恢復(fù)為雙主復(fù)制架構(gòu)
基于備份做架構(gòu)變更,基于全量物理備份做數(shù)據(jù)的恢復(fù),和新架構(gòu)的變更創(chuàng)建?;谌總浞莼謴?fù)導(dǎo)172.17.134.60、61兩臺(tái)主機(jī),來(lái)改造成新的主從,或者雙主架構(gòu)。步驟如下:
首先選中【序號(hào)1】剛剛完成的【單機(jī)601全量備份】,點(diǎn)擊【備份恢復(fù)】選項(xiàng)
圖片
彈出要恢復(fù)為哪種架構(gòu),這里目前可選的有4種,同時(shí)支持2種恢復(fù)架構(gòu)的類(lèi)型,即【恢復(fù)物理機(jī)數(shù)據(jù)庫(kù)】和【資源池方式】也就是資源隔離方式。這里,我們選擇物理機(jī)恢復(fù)出雙主架構(gòu)。點(diǎn)擊【主備副本】選擇【恢復(fù)物理機(jī)數(shù)據(jù)庫(kù)】
圖片
接下來(lái)配置恢復(fù)出的新架構(gòu),屬于哪個(gè)【項(xiàng)目】,所選擇的【數(shù)據(jù)庫(kù)軟件包版本】,以及備份工具包,GreatSQL兼容開(kāi)源的xtrabackup,這里我們就默認(rèn)選擇GreatADM已經(jīng)上傳的xtrabackup-8.0.32版本。主機(jī)選擇172.17.134.60、172.17.134.61兩臺(tái)主機(jī)。鑒于之前部分傳統(tǒng)的企業(yè)客戶(hù),有多個(gè)副本的需求場(chǎng)景下,GreatADM提供了雙主下,再次擴(kuò)展副本的能力。如果在雙主復(fù)制的架構(gòu)下,仍想擴(kuò)展1個(gè)從副本,則可以在添加節(jié)點(diǎn)之后,選擇【添加從節(jié)點(diǎn)】選項(xiàng),擴(kuò)展副本數(shù)
圖片
默認(rèn)允許用戶(hù)混合主從副本安裝在同一臺(tái)物理主機(jī)上,用端口做區(qū)分如下示意圖,則可以在雙主下各創(chuàng)一個(gè)從副本。形成雙主雙從,這里僅作演示。
圖片
實(shí)際我們?nèi)园措p主架構(gòu)來(lái)進(jìn)行架構(gòu)恢復(fù)。進(jìn)入新架構(gòu)的部署預(yù)檢查頁(yè)面,如圖,主要是涉及操作系統(tǒng)配置標(biāo)準(zhǔn)化、規(guī)范化、依賴(lài)包等檢查。
圖片
通過(guò)之后進(jìn)行下一步,完成新架構(gòu)的初始化,并在初始化之后,做數(shù)據(jù)的恢復(fù)。
圖片
完成架構(gòu)調(diào)整的雙主結(jié)構(gòu)拓?fù)淙缦?/p>
圖片
實(shí)例屬性信息如下
圖片
同時(shí)保留了原始節(jié)點(diǎn),此時(shí)可將原始的單機(jī)移除,到此完成架構(gòu)的改造和變更。數(shù)據(jù)中的用戶(hù)名、密碼等和原始單機(jī)數(shù)據(jù)庫(kù)完全相同一致??芍苯狱c(diǎn)點(diǎn)擊【登錄】驗(yàn)證。
圖片
完成單機(jī)改造為新的雙主復(fù)制結(jié)構(gòu)。
三、恢復(fù)為MGR架構(gòu)
同樣,選擇單機(jī)601的備份集, 刪除之前172.17.134.60、61的數(shù)據(jù)庫(kù),釋放主機(jī)資源。之前鑒于項(xiàng)目中有用戶(hù)主機(jī)資源不足,考慮主機(jī)采用多實(shí)例混合部署在1臺(tái)上的情況,我們順便測(cè)下GreatADM是否支持重復(fù)利用主機(jī),混合部署多個(gè)實(shí)例。
圖片
選擇【備份恢復(fù)】,恢復(fù)架構(gòu)中,選擇【paxos高可用復(fù)制】,選擇【物理數(shù)據(jù)庫(kù)】
圖片
進(jìn)入paxos配置項(xiàng)中,我們?nèi)赃x擇【default】默認(rèn)項(xiàng)目,對(duì)應(yīng)的軟件包版本可選擇升級(jí)的新版本,在做架構(gòu)改造時(shí),同時(shí)進(jìn)行數(shù)據(jù)庫(kù)的版本升級(jí)工作。此處,我們重復(fù)使用172.17.134.61這臺(tái)主機(jī),分別使用3307、3308、3309三個(gè)端口來(lái)區(qū)分3個(gè)實(shí)例。如下:
圖片
預(yù)檢查之后的拓?fù)鋱D預(yù)留和端口信息如下:
圖片
安裝部署過(guò)程和日志信息如下:
圖片
安裝之后拓?fù)淙缦拢?/p>
圖片
完成單機(jī)向paxos高可用(組復(fù)制)的改造和數(shù)據(jù)恢復(fù)。查看當(dāng)前172.17.134.61主機(jī)的運(yùn)行狀態(tài)和負(fù)載,也驗(yàn)證了GreatADM支持混合部署多實(shí)例到1臺(tái)主機(jī)。
圖片
四、驗(yàn)證數(shù)據(jù)的可用性
使用sysbench壓測(cè)新恢復(fù)的架構(gòu),對(duì)應(yīng)的sysbench庫(kù)的表等可直接壓測(cè)使用,無(wú)數(shù)據(jù)異常。
$ 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
圖片
五、總結(jié)
改造的意義:如果您需要存儲(chǔ)和處理大量數(shù)據(jù),且讀寫(xiě)負(fù)載較高,單個(gè)GreatSQL/MySQL服務(wù)器可能無(wú)法滿(mǎn)足需求,或?yàn)榱藵M(mǎn)足跨地域訪問(wèn)的需求,可以將單機(jī)數(shù)據(jù)庫(kù),改造成可跨多個(gè)數(shù)據(jù)中心采用異步復(fù)制、或半同步、以及強(qiáng)同步等方式,既可以保證數(shù)據(jù)庫(kù)的多副本容災(zāi),又可提升業(yè)務(wù)的讀寫(xiě)效率,規(guī)避了單點(diǎn)故障對(duì)業(yè)務(wù)的影響和負(fù)載。
GreatADM提供的能力和價(jià)值:且在改造升級(jí)過(guò)程中,借助GreatADM管理平臺(tái),圖形化改造,大大降低了架構(gòu)改造的難度和效率。避免DBA手動(dòng)黑屏命令方式的操作的繁冗復(fù)雜的操作命令,減少業(yè)務(wù)停機(jī)時(shí)長(zhǎng),同時(shí)釋放人工操作的壓力。