Mydumper 是 MySQL 數據庫服務器備份工具,它比 MySQL 自帶的 mysqldump 快不少。它還有在轉儲的同時獲取遠程服務器二進制日誌文件的能力。mysql
Mydumper 的優點正則表達式
並行能力 (所以有高速度) 和性能 (高效的代碼避免了耗費 CPU 處理能力的字符集轉換過程)sql
更容易管理輸出 (每一個表都對應獨立的文件,轉儲元數據等,便於查看/解析數據)數據庫
一致性 :跨線程維護快照, 提供精確的主從日誌定位等。bash
可管理性 : 支持用 PCRE 來包含/排除指定的數據庫和表(LCTT譯註:PCRE,Perl Compatible Regular Expression,Perl兼容正則表達式)服務器
在Ubuntu上安裝 mydumper架構
打開終端運行如下命令socket
sudo apt-get install mydumper
使用 Mydumper工具
mydumper [options]
應用程序選項:性能
-B, --database 要轉儲的數據庫 -T, --tables-list 逗號分隔的轉儲表列表(不會被正則表達式排除) -o, --outputdir 保存輸出文件的目錄 -s, --statement-size 插入語句的字節大小, 默認是1000000個字節 -r, --rows 把表按行數切塊 -c, --compress 壓縮輸出文件 -e, --build-empty-files 空表也輸出文件 -x, --regex 匹配‘db.table’的正則表達式 -i, --ignore-engines 以逗號分隔的被忽略的存儲引擎列表 -m, --no-schemas 不轉儲表架構 -k, --no-locks 不執行臨時共享讀鎖。警告: 這會致使備份的不一致性 -l, --long-query-guard 設置長查詢的計時器秒數,默認是60秒 --kill-long-queries 殺死長查詢 (而不是退出程序) -b, --binlogs 獲取二進制日誌文件快照並轉儲數據 -D, --daemon 開啓守護進程模式 -I, --snapshot-interval 每一個轉儲快照之間的間隔時間(分鐘), 須要開啓 --daemon, 默認是60分鐘 -L, --logfile 日誌文件的名字,默認是stdout -h, --host 要鏈接的主機 -u, --user 有轉儲權限的用戶名 -p, --password 用戶密碼 -P, --port 鏈接的TCP/IP端口 -S, --socket 用於鏈接的Unix套接字文件 -t, --threads 使用的線程數,默認是4 -C, --compress-protocol 在MySQL鏈接上使用壓縮 -V, --version 查看程序版本號 -v, --verbose 輸出信息的等級, 0 = silent, 1 = errors, 2 = warnings, 3 = info, 默認是2
Mydumper 例子:
mydumper \ --database=$DB_NAME \ --host=$DB_HOST \ --user=$DB_USER \ --password=$DB_PASS \ --outputdir=$DB_DUMP \ --rows=500000 \ --compress \ --build-empty-files \ --threads=2 \ --compress-protocol
Mydumper 輸出數據的說明
Mydumper 不直接指定輸出的文件,而是輸出到文件夾的文件中。--outputdir 選項指定要使用的目錄名稱。
輸出分爲兩部分
表結構
對數據庫中的每一個表,建立一個包含 CREATE TABLE 語句的文件。文件命名爲:
dbname.tablename-schema.sql.gz
數據
每一個表名跟着按 --rows 參數所切塊的數量, 建立文件名字爲:
dbname.tablename.0000n.sql.gz
"n"從0開始.
你能夠使用Myloader恢復這些備份
myloader \ --database=$DB_NAME \ --directory=$DB_DUMP \ --queries-per-transaction=50000 \ --threads=10 \ --compress-protocol \ --verbose=3