mydumper是多線程備份工具,預設開啟4個線程,比mysqldump的速度更快
mydumper備份時,資料和表結構是分開的,比如備份test表時,會生成test.sql檔案和test.schema.sql檔案。
myloader導資料的時候預設不會記錄二進制日志,即使你的sql_log_bin=on.
準備安裝媒體:
下載下傳mydumper-0.6.2.tar.gz
安裝依賴包:
# yum install glib2-devel mysql-devel zlib-devel pcre-devel
編譯安裝
# tar zxvf mydumper-0.6.2.tar.gz
# cd mydumper-0.6.2
# mkdir bin
# cd bin
# cmake ../
# make
# make install
安裝好後可以看到/usr/local/bin目錄下面多了mydumper和myloader兩個指令
# ll /usr/local/bin/
total 188
-rwxr-xr-x 1 root root 132868 Aug 3 22:51 mydumper
-rwxr-xr-x 1 root root 47491 Aug 3 22:51 myloader
# ./mydumper --database=test --outputdir=/data/backup/test
./mydumper: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
建立軟連結即可解決這個報錯:
# ln -s /usr/local/mysql/lib/libmysqlclient.so.18/usr/lib/
# ldconfig -v
導出:
# mydumper --database=test --outputdir=/data/backup/test
導入:
# myloader -B test -d /data/backup/test
利用備份建從庫:
cd /data/backup/test
裡面有一個metadata檔案,這個檔案記錄的是目前的binlog檔案及pos,可以使用這個資訊搭建從庫
mydumper參數介紹:
-B, --database 備份資料庫
-T, --tables-list 備份表清單,多個表以“,”逗号分隔
-o, --outputdir 指定備份目錄
-s, --statement-size insert長度,機關是byte, default 1000000,這個參數不能太小,不然會報 Row bigger than statement_size for tools.t_serverinfo
-r, --rows 分割表,多少行記錄為一個chunk. 預設是off的
-F, --chunk-filesize 分割表,以多個檔案備份,機關是MB
-c, --compress 壓縮備份
-e, --build-empty-files 如果表沒有資料,還是建立這個檔案
-x, --regex 正則比對資料庫、表,如db.table1
-i, --ignore-engines 忽略指定引擎的表
-m, --no-schemas 不備份表結構
-k, --no-locks 不加臨時的share read lock,這個可能會造成資料不一緻
--less-locking innodb表時,最小時間lock
-l, --long-query-guard 設定最長查詢時間,預設是60s
-K, --kill-long-queries 将長查詢進行殺掉
-D, --daemon 開啟守護程序模式
-I, --snapshot-interval 快照時間,預設是60s
-L, --logfile 日志檔案,預設是标準輸出
--tz-utc 設定時區,隻有備份應用到不同時區的時使用,預設是 --skip-tz-utc是關閉的.
--skip-tz-utc
--use-savepoints Use savepoints to reduce metadata locking issues, needs SUPER privilege
--success-on-1146 Not increment error count and Warning instead of Critical in case of table doesn't exist
--lock-all-tables Use LOCK TABLE for all, instead of FTWRL
-h, --host 主機
-u, --user 使用者
-p, --password 密碼
-P, --port 端口
-S, --socket socket檔案
-t, --threads 并發線程數,預設是4
-C, --compress-protocol Use compression on the MySQL connection
-V, --version Show the program version and exit
-v, --verbose Verbosity of output, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2
本文轉自 emma_cql 51CTO部落格,原文連結:http://blog.51cto.com/chenql/1681643