使用myloader恢復(fù)數(shù)據(jù)教程
前言:
上篇文章介紹了 mydumper 備份工具的使用方法,文中有提到 mydumper 和 myloader 是一對(duì)相互的命令,即 mydumper 負(fù)責(zé)備份(導(dǎo)出),myloader 負(fù)責(zé)恢復(fù)(導(dǎo)入)。那么 myloader 又該如何使用呢?本篇文章我們一起來(lái)看下。
? 1. myloader 介紹
myloader 是與 mydumper 工具配合使用的多線(xiàn)程備份恢復(fù)工具,可以直接以 mydumper 輸出文件為輸入,恢復(fù)備份數(shù)據(jù)。主要用于將 dump 出來(lái)的 sql 文件以并行的方式進(jìn)行恢復(fù)。
執(zhí)行 myloader --help 可以查看幫助信息,同樣的,我們來(lái)看下 myloader 相關(guān)參數(shù):
參考官方介紹,以下簡(jiǎn)要說(shuō)明部分常用的參數(shù)。


即首先會(huì)創(chuàng)建一個(gè)主線(xiàn)程,主線(xiàn)程負(fù)責(zé)主邏輯,子線(xiàn)程為 worker 線(xiàn)程,執(zhí)行具體恢復(fù)數(shù)據(jù)任務(wù),子線(xiàn)程執(zhí)行完成后再由主線(xiàn)程創(chuàng)建函數(shù)、存儲(chǔ)過(guò)程、事件及視圖、觸發(fā)器這些對(duì)象。
? 2. myloader 恢復(fù)示例
我們以上篇文章備份出的文件為例,來(lái)看下如何用 myloader 進(jìn)行恢復(fù):
#?恢復(fù)備份文件中的全部?若表已存在則先刪除
myloader?-u?root?-p?123456?-o?-d?/backups/all3
#?從全備中恢復(fù)指定庫(kù)
myloader?-u?root?-p?123456?-s?db1?-o?-d?/backups/all3
#?將某個(gè)數(shù)據(jù)庫(kù)備份還原到另一個(gè)數(shù)據(jù)庫(kù)中(目標(biāo)庫(kù)不存在則會(huì)新建)
myloader?-u?root?-p?123456?-B?recover_db1?-s?db1?-o?-d?/backups/all3
myloader?-u?root?-p?123456?-B?recover_db1?-o?-d?/backups/db1
#?恢復(fù)時(shí)開(kāi)啟binlog(有備庫(kù)的時(shí)候需要開(kāi)啟)
myloader?-u?root?-p?123456?-e?-o?-d?/backups/db1
#?無(wú)法直接還原單表?只能找到單表的sql文件?進(jìn)入命令行source?執(zhí)行
source?db1.tb1-schema.sql?還原表結(jié)構(gòu)
source?db1.tb1.sql?還原表數(shù)據(jù)可以看到使用 myloader 恢復(fù)數(shù)據(jù)還是很方便的,并且有多個(gè)參數(shù)可選,恢復(fù)場(chǎng)景也更加靈活。比如我們可以從全備中恢復(fù)出單個(gè)庫(kù),或者將備份恢復(fù)到一個(gè)新庫(kù)中等等,這些場(chǎng)景基本能覆蓋日?;謴?fù)需求。雖然不支持單表恢復(fù),但我們可以到文件夾中輕松找到該表的建表及插數(shù)據(jù)的 sql 腳本,進(jìn)入 mysql 命令行中再執(zhí)行單個(gè)腳本也能實(shí)現(xiàn)恢復(fù)單表的需求。
不過(guò)要注意的是 myloader 恢復(fù)時(shí)默認(rèn)不開(kāi)啟 binlog,這雖然可以加快恢復(fù)速度,但是當(dāng)存在從庫(kù)時(shí),一定要注意使用 -e 參數(shù)來(lái)打開(kāi) binlog 記錄。
推薦閱讀
(點(diǎn)擊標(biāo)題可跳轉(zhuǎn)閱讀)
