mysqldumper是一個不錯的mysql備份工具了,也是眾多mysql備份工具中的一個不錯的工具了,下面來介紹mysqldumper工具安裝與使用例子.
mysqldumper這個備份工具比較好的點很明顯,就是可以并發備份,比mysqldump要快些,另一個就是備份的表是單獨的文件,恢復單表時會很方便(表結構和數據文件也是分開一個文件的).
一、下載安裝
下載最新的mysqldumper
mysqldumper 下載地址:https://launchpadlibrarian.net/185032423/mydumper-0.6.2.tar.gz
- [root@mysql.dmc.com ]$tar -zxvf mydumper-0.6.2.tar.gz
- [root@mysql.dmc.com bin]$yum install pcre-devel.x86_64
- [root@mysql.dmc.com ~]$cd mydumper-0.6.2
- [root@mysql.dmc.com mydumper-0.6.2]$mkdir bin
- [root@mysql.dmc.com mydumper-0.6.2]$cd bin
- [root@mysql.dmc.com bin]$cmake ../
- [root@mysql.dmc.com bin]$make
- [root@mysql.dmc.com bin]$ll -rth mydumper myloader
- -rwxr-xr-x. 1 root root 149K Jan 2 16:39 mydumper
- -rwxr-xr-x. 1 root root 51K Jan 2 16:39 myloader
二、mysqldumper參數詳解
- [root@mysql.dmc.com bin]$./mydumper --help |more
- Usage:
- mydumper [OPTION...] multi-threaded MySQL dumping
- Help Options:
- -?, --help Show help options
Application Options:
- -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
三、使用方法
備份出來的sql文件,文件以數據庫開頭.表名[-schema].sql,有schema的為表的表結構創建語句,沒有的為表數據插入語句.
- [root@mysql.dmc.com bin]$./mydumper --database=tools --outputdir=/root/mydumper-0.6.2/test/
- [root@mysql.dmc.com bin]$cd ot/mydumper-0.6.2/test/
- [root@mysql.dmc.com test]$ll -rth
- total 112K
- -rw-r--r--. 1 root root 972 Jan 2 18:09 tools.django_session.sql
- -rw-r--r--. 1 root root 1.1K Jan 2 18:09 tools.t_guid.sql
- -rw-r--r--. 1 root root 423 Jan 2 18:09 tools.t_ftpserver-schema.sql
- -rw-r--r--. 1 root root 325 Jan 2 18:09 tools.django_session-schema.sql
- -rw-r--r--. 1 root root 1.6K Jan 2 18:09 tools.t_serverinfo-schema.sql
- -rw-r--r--. 1 root root 133 Jan 2 18:09 metadata
metadata這個文件記錄的是當里的binlog文件及pos,可以使用這個信息搭建slave.
- [root@mysql.dmc.com test]$cat metadata
- Started dump at: 2015-01-02 18:09:40
- SHOW MASTER STATUS:
- Log: mysql-bin.000006
- Pos: 4196075
- Finished dump at: 2015-01-02 18:09:40
只備份t_task和t_guid表.
[root@mysql.dmc.com bin]$./mydumper --database=tools --outputdir=/root/mydumper-0.6.2/test/ --tables-list=t_task,t_guid
只備份以t_server開通的表.
[root@mysql.dmc.com bin]$./mydumper --database=tools --outputdir=/root/mydumper-0.6.2/test/ --regex="tools.t_server*"
-B,–database只能指定一個庫備份,如果需要同時備份多個數據庫,可能這樣.
- [root@mysql.dmc.com bin]$./mydumper --outputdir=/root/mydumper-0.6.2/test/ --regex="beebol.*|tools.*"
- –threads并發度
- [root@mysql.dmc.com bin]$./mydumper --outputdir=/root/mydumper-0.6.2/test/ --regex="beebol.*|tools.*" --threads=8
新聞熱點
疑難解答