溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

MYSQL Clone插件的功能是什么

發(fā)布時(shí)間:2021-10-25 09:19:00 來(lái)源:億速云 閱讀:135 作者:柒染 欄目:大數(shù)據(jù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)MYSQL Clone插件的功能是什么,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

MYSQL 中操作一個(gè)MYSQL的副本是一件不是很簡(jiǎn)單的問(wèn)題,當(dāng)然如果你使用XTRABACKUP,當(dāng)然也不麻煩,但如果有更簡(jiǎn)單的方法誰(shuí)又不愿意去用,MYSQL 8.017 提供這個(gè)功能,以插件的方式,他可以產(chǎn)生一個(gè)本地的clone 或者遠(yuǎn)程傳輸文件到一個(gè)目的端,這樣的方式其實(shí)等待了多年,別的數(shù)據(jù)庫(kù)其實(shí)操作這樣的事情,還是比較簡(jiǎn)單的,例如PG pg_basebackup,或者安裝了REPMGR 的PG ,分分鐘就自動(dòng)生成一個(gè)副本,并建立了連接,相對(duì)MYSQL來(lái)說(shuō)是簡(jiǎn)單的多。

那等了這么多年的功能,到底怎么樣,到底我們是不是已經(jīng)可以升級(jí)到MYSQL 8 ,目前看還是的等等,主要是最近MYSQL 8 的更新速度太快,很多新功能還在發(fā)布中,如果莽然升級(jí)會(huì)遺漏更多的好功能,例如HASH JOIN。

但知識(shí)的更新時(shí)必須的,所以 let's go 

MySQL 8.0.17引入了克隆SQL語(yǔ)句,使當(dāng)前MySQL服務(wù)器成為在不同節(jié)點(diǎn)上運(yùn)行的另一個(gè)MySQL服務(wù)器的“克隆”。我們將執(zhí)行克隆語(yǔ)句的服務(wù)器實(shí)例稱(chēng)為“收件人”。要從中克隆數(shù)據(jù)的源服務(wù)器實(shí)例稱(chēng)為“Donor”。捐助方以一致的快照克隆其存儲(chǔ)在InnoDB存儲(chǔ)引擎中的所有數(shù)據(jù)和元數(shù)據(jù),以替換接收方中的數(shù)據(jù)。成功執(zhí)行克隆SQL語(yǔ)句后,將自動(dòng)重新啟動(dòng)接收服務(wù)器。重新啟動(dòng)涉及到恢復(fù)克隆的快照數(shù)據(jù),就像以舊方式復(fù)制數(shù)據(jù)一樣。一旦恢復(fù)完成,接收者就是捐獻(xiàn)者的克隆。

MYSQL Clone插件的功能是什么

下面我們選擇兩臺(tái)機(jī)器,205  210 ,我們將210上的數(shù)據(jù)庫(kù)的內(nèi)容clone 到205上,

1 首先在兩臺(tái)機(jī)器上都要安裝 clone 插件  INSTALL PLUGIN CLONE SONAME "mysql_clone.so";

2  創(chuàng)建操作的賬戶(hù),建議為了降低操作的復(fù)雜度,可以設(shè)置為super ,實(shí)際一邊需要備份的權(quán)限,另一個(gè)邊CLONE_ADMIN 的權(quán)限。

這里就簡(jiǎn)單了

MYSQL Clone插件的功能是什么

3  在接受者創(chuàng)建donor_list 然后直接執(zhí)行命令開(kāi)始克隆

SET GLOBAL clone_valid_donor_list = "192.168.198.210:3306";

MYSQL Clone插件的功能是什么

 clone instance from clone@192.168.198.210:3306 identified by "1234.Com";

MYSQL Clone插件的功能是什么

4 另外可以在接收者這邊執(zhí)行下面的語(yǔ)句來(lái)獲取復(fù)制的進(jìn)度

MYSQL Clone插件的功能是什么

select STAGE, STATE, CAST(BEGIN_TIME AS TIME) as "START TIME",   CASE WHEN END_TIME IS NULL THEN   LPAD(sys.format_time(POWER(10,12) * (UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(BEGIN_TIME))), 10, ' ')   ELSE   LPAD(sys.format_time(POWER(10,12) * (UNIX_TIMESTAMP(END_TIME) - UNIX_TIMESTAMP(BEGIN_TIME))), 10, ' ')   END as DURATION,   LPAD(CONCAT(FORMAT(ROUND(ESTIMATE/1024/1024,0), 0), " MB"), 16, ' ') as "Estimate",   CASE WHEN BEGIN_TIME IS NULL THEN LPAD('0%', 7, ' ')   WHEN ESTIMATE > 0 THEN   LPAD(CONCAT(CAST(ROUND(DATA*100/ESTIMATE, 0) AS BINARY), "%"), 7, ' ')   WHEN END_TIME IS NULL THEN LPAD('0%', 7, ' ')   ELSE LPAD('100%', 7, ' ') END as "Done(%)"   from performance_schema.clone_progress;

所以從mysql 8.017開(kāi)始,復(fù)制一個(gè)MYSQL 相對(duì)來(lái)別的數(shù)據(jù)庫(kù)來(lái)說(shuō),那是最最最簡(jiǎn)單的一件事。

從克隆的progress中來(lái)說(shuō),主要的流程 刪除數(shù)據(jù),份文件拷貝,page 拷貝,redo 拷貝, 文件同步 重啟接受者,然后是重執(zhí)行在拷貝中沒(méi)有執(zhí)行的日志的數(shù)據(jù)。

操作簡(jiǎn)單,問(wèn)題是到底原理是什么這個(gè)是很重要,并需要了解的

大致可以分析一下,一般來(lái)說(shuō)拷貝文件進(jìn)行數(shù)據(jù)復(fù)制都是簡(jiǎn)單的事情,麻煩的事情就是怎么確認(rèn)在拷貝文件,時(shí)繼續(xù)寫(xiě)入的數(shù)據(jù),CLONE并不禁止數(shù)據(jù)的寫(xiě)入。

所以一定會(huì)根據(jù)日志 LSN號(hào)在開(kāi)始文件拷貝作為一個(gè)基點(diǎn),記錄LSN號(hào),當(dāng)文件拷貝完畢后,在記錄一個(gè)LSN 號(hào),在這之間會(huì)記錄在內(nèi)存中的臟頁(yè),未刷新到數(shù)據(jù)日志中數(shù)據(jù)。當(dāng)文件拷貝完畢后(其實(shí)這之間是有緩存的,緩存中記錄的未check point 的space_id 和 page_id會(huì)一直被修改),到文件拷貝結(jié)束,記錄的LSN號(hào),以及這一個(gè)時(shí)刻未被checkpoint 的數(shù)據(jù)將重新落入到物理文件中,在刷新這一時(shí)刻的checkpoint 的數(shù)據(jù) 到應(yīng)用checkpoint 的數(shù)據(jù)這段時(shí)間也會(huì)繼續(xù)有數(shù)據(jù)寫(xiě)入,所以在應(yīng)用完文件拷貝這段時(shí)間的日志后,還需要記錄這個(gè)點(diǎn),并且將這個(gè)點(diǎn)之間redo 日志進(jìn)行拷貝,在應(yīng)用,達(dá)到整體拷貝數(shù)據(jù)結(jié)束時(shí),與數(shù)據(jù)的捐助者是一致的。(還得研究)

大致原理與 XTRBACKUP 有類(lèi)似的地方,但又不完全相同。

采用這樣的技術(shù)也是有限制的

1 在操作中是不允許有 DDL 的操作的

2 一次只能克隆一個(gè)實(shí)例

3  克隆的方式是不支持MY,CNF 文件的拷貝,(這和PG 的pg_basebackup相比,PG 的CLONE 方式是可以將配置文件直接拷貝過(guò)來(lái)的)

4 會(huì)重啟MYSQL 接受者的MYSQL 服務(wù),但不保證在任何情況下可以重啟

這樣的功能使用的場(chǎng)景也很明確,MGR ,未來(lái)的MGR 可能是最好的數(shù)據(jù)庫(kù)分布式,免維護(hù)的方法,通過(guò)CLONE 可以已最快的方式自動(dòng)產(chǎn)生一個(gè)MYSQL的副本,并自動(dòng)的加入到MGR集群中,這在傳統(tǒng)的 ORACLE  和 SQL SERVER 是不大能想象出來(lái)的。

MYSQL 8 已經(jīng)不再是那個(gè)從前單薄的MYSQL ,各方面都在提升,與其他三位競(jìng)爭(zhēng)對(duì)手相比,已經(jīng)有比其他數(shù)據(jù)庫(kù)有特點(diǎn)的地方,雖然并行,以及查詢(xún)的方式還有待進(jìn)步,但也千萬(wàn)別小看MYSQL 8 單庫(kù)的力量,的確可以和其他的數(shù)據(jù)庫(kù)較量一番。

上述就是小編為大家分享的MYSQL Clone插件的功能是什么了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI