mydumper數據庫備份工具

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
相關文章
相關標籤/搜索