下载安装
下载最新版的mysqldumper
下载地址:https://launchpadlibrarian.net/185032423/mydumper-0.6.2.tar.gz
tar -zxvf mysqldumper-0.6.2.tar.gz
yum -y install pcre-devel.x86_64
cd mysqldumper-0.6.2
mkdir bin
cd bin
cmake ../ | make
ll -rth mysqldumper 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
msyqldumper参数详解
mysqldumper --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的表的表结构创建语句,没有的为表数据插入语句
```shell
./mysqlper --database=tools --outputdir=/root/mysqldumper-0.6.2/test/
cd /root/mysqldumper-0.6.2/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
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
只备份maomao_test表和maomao_git表
./mysqldumper --database=tools --putputdir=/root/mysqldumper-0.6.2/test/ --tables-list=maomao_test,maomao_git
是备份以maomao_server开通的表
./mysqldunper --database=tools --outputdir=/root/mysqldumper-0.6.2/test --regex="maomao_server*"
-B,-database只能指定一个库的备份,如果需要同时备份多个数据库,可能这样
./mysqldumper --outputdir=/root/mysqldunmper-0.6.2/test/ --regex="maomao.*|yiya.*|tools.*"
-threads并发长度
./mysqldumper --outputdir=/root/mysqldumper-0.6.2/test/ --regex="maomao.*|yiya.*|tools.*" --threads=8