對於較大的庫,原生的mysqldump導出,mysql命令導入,這個過程太長,mydumper是一個多線程導入導出工具。mysql
導出:git
mydumper --user=user \ # 數據庫用戶 --password=user_password \ # 登陸密碼 --port=3306 \ # 端口 --host=127.0.0.1 \ # 主機地質 --threads=32 \ # 導出線程數 --compress-protocol \ # 啓用壓縮協議 --trx-consistency-only \ # 事務一致性 --complete-insert \ # 使用完整的包含列名的插入語句 --use-savepoints \ # 使用savepoints以下降metadata鎖的影響 --chunk-filesize=256 \ # 文件塊大小,單位M字節 # 或者可使用--rows --kill-long-queries \ # 終止長查詢,默認60秒 --regex '^(?!(mysql|test|percona))' \ # 忽略的庫 --events \ # --triggers \ # --routines \ # --daemon \ # 後臺運行 --outputdir=/data/backup/export-20180210 \ # 輸出 --logfile=/data/backup/md.log # 日誌
導入:github
myloader --user=user \ # 數據庫用戶 --password=user_password \ # 登陸密碼 --port=3306 \ # 端口 --host=127.0.0.1 \ # 主機地址 --threads=64 \ # 導入線程數 --compress-protocol \ # 啓用壓縮協議 --overwrite-tables \ # 覆蓋原有表 --directory=/data/backup/export-20180210/0/ # 數據文件
另外,發現一個go語言的版本,https://github.com/XeLabs/go-mydumper,看上去剛開發不是好久,功能、性能、穩定性還有待進一步測試。使用方式基本相同,有時間試用後再寫具體用法。sql