mysqldumper安裝及使用

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章