首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

myloader 並行恢復 MySQL 實戰:單庫/單表/實例級恢復與覆蓋模式

     編輯:MySQL 綜合教學

myloader 並行恢復 MySQL 實戰:單庫/單表/實例級恢復與覆蓋模式

mydumper/myloader 是輕量級多線程邏輯備份恢復工具,恢復速度遠超原生 mysql 導入。

1. 單庫備份與恢復

# 備份 sakila 庫
mydumper -u leshami -p xxx -B sakila -o /tmp/bak

# 恢復到新庫 restoredb
mysql -uroot -pxxx -e "CREATE DATABASE restoredb;"
myloader -u leshami -p xxx -B restoredb -d /tmp/bak

# 恢復到原庫(需加 -o 覆蓋)
myloader -u leshami -p xxx -o -B sakila -d /tmp/bak

2. 單表恢復(繞過 myloader,直接 source SQL 文件)

# 刪除表
mysql -uroot -pxxx -e "DROP TABLE sakila.tb;"

# 直接執行備份生成的 schema 和 data 文件
mysql -uroot -pxxx -e "
USE sakila;
SOURCE /tmp/bak/sakila.tb-schema.sql;
SOURCE /tmp/bak/sakila.tb.sql;"

# 驗證
mysql -uroot -pxxx -e "SELECT COUNT(*) FROM sakila.tb;"

3. 實例級備份與恢復(排除系統庫)

# 備份:排除 mysql、test 庫
mydumper -u leshami -p xxx --regex '^(?!(mysql|test))' -o /tmp/bak

# 刪除部分庫模擬災難
mysql -uroot -pxxx -e "DROP DATABASE tempdb; DROP DATABASE sakila;"

# 全量恢復(覆蓋模式)
myloader -u leshami -p xxx -o -d /tmp/bak

4. myloader 核心參數速查

參數說明默認值
-d, --directory備份文件目錄必填
-q, --queries-per-transaction每事務 INSERT 條數1000
-o, --overwrite-tables表存在則 DROP 重建關閉
-B, --database指定恢復目標庫(可重命名)原庫名
-e, --enable-binlog恢復操作寫入 Binlog關閉
-t, --threads並行線程數4
-v, --verbose輸出詳情級別 0-32

5. 單表恢復最佳實踐

myloader 不直接支持單表恢復,**推薦直接 source 對應的 .sql 文件**,靈活且可控。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved