【mysql】mysqldumper安装、使用和参数详解
时间:2015-01-02 07:01:57 作者:beebol 标签: mysql mysqldupmer 分类: mysql
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 -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 -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 -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: 4196075Finished dump at: 2015-01-02 18:09:40 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