中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MYSQL Clone插件的功能是什么

發布時間:2021-10-25 09:19:00 來源:億速云 閱讀:143 作者:柒染 欄目:大數據

這期內容當中小編將會給大家帶來有關MYSQL Clone插件的功能是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

MYSQL 中操作一個MYSQL的副本是一件不是很簡單的問題,當然如果你使用XTRABACKUP,當然也不麻煩,但如果有更簡單的方法誰又不愿意去用,MYSQL 8.017 提供這個功能,以插件的方式,他可以產生一個本地的clone 或者遠程傳輸文件到一個目的端,這樣的方式其實等待了多年,別的數據庫其實操作這樣的事情,還是比較簡單的,例如PG pg_basebackup,或者安裝了REPMGR 的PG ,分分鐘就自動生成一個副本,并建立了連接,相對MYSQL來說是簡單的多。

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

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

MySQL 8.0.17引入了克隆SQL語句,使當前MySQL服務器成為在不同節點上運行的另一個MySQL服務器的“克隆”。我們將執行克隆語句的服務器實例稱為“收件人”。要從中克隆數據的源服務器實例稱為“Donor”。捐助方以一致的快照克隆其存儲在InnoDB存儲引擎中的所有數據和元數據,以替換接收方中的數據。成功執行克隆SQL語句后,將自動重新啟動接收服務器。重新啟動涉及到恢復克隆的快照數據,就像以舊方式復制數據一樣。一旦恢復完成,接收者就是捐獻者的克隆。

MYSQL Clone插件的功能是什么

下面我們選擇兩臺機器,205  210 ,我們將210上的數據庫的內容clone 到205上,

1 首先在兩臺機器上都要安裝 clone 插件  INSTALL PLUGIN CLONE SONAME "mysql_clone.so";

2  創建操作的賬戶,建議為了降低操作的復雜度,可以設置為super ,實際一邊需要備份的權限,另一個邊CLONE_ADMIN 的權限。

這里就簡單了

MYSQL Clone插件的功能是什么

3  在接受者創建donor_list 然后直接執行命令開始克隆

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 另外可以在接收者這邊執行下面的語句來獲取復制的進度

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開始,復制一個MYSQL 相對來別的數據庫來說,那是最最最簡單的一件事。

從克隆的progress中來說,主要的流程 刪除數據,份文件拷貝,page 拷貝,redo 拷貝, 文件同步 重啟接受者,然后是重執行在拷貝中沒有執行的日志的數據。

操作簡單,問題是到底原理是什么這個是很重要,并需要了解的

大致可以分析一下,一般來說拷貝文件進行數據復制都是簡單的事情,麻煩的事情就是怎么確認在拷貝文件,時繼續寫入的數據,CLONE并不禁止數據的寫入。

所以一定會根據日志 LSN號在開始文件拷貝作為一個基點,記錄LSN號,當文件拷貝完畢后,在記錄一個LSN 號,在這之間會記錄在內存中的臟頁,未刷新到數據日志中數據。當文件拷貝完畢后(其實這之間是有緩存的,緩存中記錄的未check point 的space_id 和 page_id會一直被修改),到文件拷貝結束,記錄的LSN號,以及這一個時刻未被checkpoint 的數據將重新落入到物理文件中,在刷新這一時刻的checkpoint 的數據 到應用checkpoint 的數據這段時間也會繼續有數據寫入,所以在應用完文件拷貝這段時間的日志后,還需要記錄這個點,并且將這個點之間redo 日志進行拷貝,在應用,達到整體拷貝數據結束時,與數據的捐助者是一致的。(還得研究)

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

采用這樣的技術也是有限制的

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

2 一次只能克隆一個實例

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

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

這樣的功能使用的場景也很明確,MGR ,未來的MGR 可能是最好的數據庫分布式,免維護的方法,通過CLONE 可以已最快的方式自動產生一個MYSQL的副本,并自動的加入到MGR集群中,這在傳統的 ORACLE  和 SQL SERVER 是不大能想象出來的。

MYSQL 8 已經不再是那個從前單薄的MYSQL ,各方面都在提升,與其他三位競爭對手相比,已經有比其他數據庫有特點的地方,雖然并行,以及查詢的方式還有待進步,但也千萬別小看MYSQL 8 單庫的力量,的確可以和其他的數據庫較量一番。

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

夏河县| 亚东县| 安龙县| 勃利县| 龙州县| 和田县| 张家界市| 珲春市| 东光县| 德钦县| 白城市| 句容市| 重庆市| 余江县| 天峻县| 环江| 彭泽县| 建宁县| 株洲县| 三亚市| 南木林县| 富平县| 玉门市| 西宁市| 平昌县| 崇左市| 平和县| 油尖旺区| 肇庆市| 齐河县| 平陆县| 平罗县| 恩平市| 桐城市| 马龙县| 河源市| 新竹县| 潍坊市| 金沙县| 普陀区| 江陵县|