Mydumper - MySQLDatabase Backup工具
Mydumper 是 MySQL 資料庫伺服器備份工具,它比 MySQL 內建的 mysqldump 快很多。它還有在轉儲的同時擷取遠程伺服器二進位記錄檔的能力。
Mydumper 的優勢
- 並行能力 (因此有高速度) 和效能 (高效的代碼避免了耗費 CPU 處理能力的字元集轉換過程)
- 更容易管理輸出 (每個表都對應獨立的檔案,轉儲中繼資料等,便於查看/解析資料)
- 一致性 :跨線程維護快照, 提供精確的主從日誌定位等。
- 可管理性 : 支援用 PCRE 來包含/排除指定的資料庫和表(LCTT譯註:PCRE,Perl Compatible Regular Expression,Perl相容Regex)
在Ubuntu上安裝 mydumper
開啟終端運行以下命令
sudo apt-get install mydumper
使用 Mydumper文法
mydumper [options]
應用程式選項:
- -B, --database 要轉儲的資料庫
- -T, --tables-list 逗號分隔的轉儲表列表(不會被Regex排除)
- -o, --outputdir 儲存輸出檔案的目錄
- -s, --statement-size 插入語句的位元組大小, 預設是1000000個位元組
- -r, --rows 把表按行數切塊
- -c, --compress 壓縮輸出檔案
- -e, --build-empty-files 空表也輸出檔案
- -x, --regex 匹配‘db.table’的Regex
- -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
本文永久更新連結地址: