1、綜述
mysqldumper工具是可以支持多線程的邏輯備份工具,比mysqldump的性能更好,能夠支持大數據量的邏輯表備份,測試的結果是可以支持一庫多表或全表,不支持多庫同時備份,在centons6.5及mysql5.6版本上是可以使用的
爲了進行大數據量的數據同步,但是mysql的兩個版本有相差較大,一個是5.6的,一個是5.6的不能進行物理備份恢復(innobackupex 工具)就研究了這個mysqldumper工具,感覺還挺方便。
2、安裝步驟
提前安裝好centos6.5版本的系統
2.1、下載安裝包
Mysqldumper的版本是0.9.1的版本
下載地址:mysqldumper0.9.1版本下載
提取碼:wo1z
2.2、安裝依賴包
Mysqldumper工具的一些依賴包需要提前安裝
#yum -y install glib2-devel mysql-devel zlib-devel openssl-devel
2.3、安裝dumper工具及驗證
#tar -xzvf mydumper-0.9.1.tar.gz
#cd mydumper-0.9.1/
#cmake .
#make & make install
如果沒有報錯則安裝成功,可以用mydumper --help 命令來檢測mydumper命令是否可用,如果mydumper --help 不能正常顯示,則進行下面的步驟:
找到mydumper依賴哪些包
#ldd /usr/local/bin/mydumper
#LD_DEBUG=libs /usr/local/bin/mydumper -v
我這裏可以看到是找不到libmysqlclient.so.18包
那找下所在機器是否有這個包
#locate libmysqlclient.so.18
然後將其拷貝到/usr/lib64這個路徑下面
#cp /soft/mysql-5.6.31/libmysql/libmysqlclient.so.18 /usr/lib64/
然後再用mydumper --help 命令來檢測是否安裝成功
出現這樣的畫面就表示mydumper工具安裝好了
3、mydumper工具的使用
要先建立備份文件及日誌的路徑
mkidr /test/data /test/log -p
命令直接在root用戶下使用即可
#mydumper -h 192.168.182.128 -u source -p 123456 -B source -t 8 -r 10000 -c --less-locking -v 3 -D -L /test/log/mydumper.log -o /test/data/
#myloader -h 192.168.182.128 -u target -p 123456 -B target -e -t 8 -d /test/data/0/ --overwrite-tables -v 3
恢復是文件路徑爲:/test/data/0/ 是因爲在備份的時候/test/data/默認會創建一個/0 的目錄
4、mydumper及myloader命令的參數
mydumper參數:
序號 |
參數 |
解釋 |
1 |
-B, --database |
要備份的數據庫,不指定則備份所有庫 |
2 |
-T, --tables-list |
需要備份的表,名字用逗號隔開 |
3 |
-o, --outputdir |
備份文件輸出的目錄 |
4 |
-s, --statement-size |
生成的insert語句的字節數,默認1000000 |
5 |
-r, --rows |
將表按行分塊時,指定的塊行數,指定這個選項會關閉 --chunk-filesize |
6 |
-F, --chunk-filesize |
將表按大小分塊時,指定的塊大小,單位是 MB |
7 |
-c, --compress |
壓縮輸出文件 |
8 |
-e, --build-empty-files |
如果表數據是空,還是產生一個空文件(默認無數據則只有表結構文件) |
9 |
-x, --regex |
是同正則表達式匹配 'db.table' |
10 |
-i, --ignore-engines |
忽略的存儲引擎,用逗號分割 |
11 |
-m, --no-schemas |
不備份表結構 |
12 |
-k, --no-locks |
不使用臨時共享只讀鎖,使用這個選項會造成數據不一致 |
13 |
--less-locking |
減少對InnoDB表的鎖施加時間(減少鎖等待的時間) |
14 |
-l, --long-query-guard |
設定阻塞備份的長查詢超時時間,單位是秒,默認是60秒(超時後默認mydumper將會退出) |
15 |
--kill-long-queries |
殺掉長查詢 (不退出) |
16 |
-b, --binlogs |
導出binlog |
17 |
-D, --daemon |
啓用守護進程模式,守護進程模式以某個間隔不間斷對數據庫進行備份 |
18 |
-I, --snapshot-interval |
dump快照間隔時間,默認60s,需要在daemon模式下 |
19 |
-L, --logfile |
使用的日誌文件名(mydumper所產生的日誌), 默認使用標準輸出 |
20 |
--tz-utc |
跨時區是使用的選項,不解釋了 |
21 |
--skip-tz-utc |
同上 |
22 |
--use-savepoints |
使用savepoints來減少採集metadata所造成的鎖時間,需要 SUPER 權限 |
23 |
--success-on-1146 |
如果表不存在,則不增加錯誤計數和警告 |
24 |
-h, --host |
連接的主機名 |
25 |
-u, --user |
備份所使用的用戶 |
26 |
-p, --password |
備份用戶的密碼 |
27 |
-P, --port |
端口 |
28 |
-S, --socket |
使用socket通信時的socket文件 |
29 |
-t, --threads |
開啓的備份線程數,默認是4 |
30 |
-C, --compress-protocol |
壓縮與mysql通信的數據 |
31 |
-V, --version |
顯示版本號 |
32 |
-v, --verbose |
輸出信息模式, 0 = silent, 1 = errors, 2 = warnings, 3 = info, 默認爲 2 |
myloader參數:
序號 |
參數 |
解釋 |
1 |
-d, --directory |
備份文件的目錄 |
2 |
-q, --queries-per-transaction |
每次事物執行的查詢數量,默認是1000 |
3 |
-o, --overwrite-tables |
如果要恢復的表存在,則先drop掉該表,使用該參數,需要備份時候要備份表結構 |
4 |
-B, --database |
需要還原的數據庫 |
5 |
-e, --enable-binlog |
啓用還原數據的二進制日誌 |
6 |
-h, --host |
連接的主機名 |
7 |
-u, --user |
備份所使用的用戶 |
8 |
-p, --password |
備份用戶的密碼 |
9 |
-P, --port |
端口 |
10 |
-S, --socket |
使用socket通信時的socket文件 |
11 |
-t, --threads |
開啓的備份線程數,默認是4 |
12 |
-C, --compress-protocol |
壓縮協議 |
13 |
-V, --version |
顯示版本 |
14 |
-v, --verbose |
輸出模式, 0 = silent, 1 = errors, 2 = warnings, 3 = info, 默認爲2 |
感謝博主所寫的博客:https://blog.csdn.net/weixin_30445169/article/details/96141753