mydumper和myloader
mydumper及myloader用法
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
mydumper备份的速度、myloader的恢复速度,比mysql自己的工具执行速度快很多,大大减少业务的处理时间。
1.安装
# yum install glib2-develmysql-devel zlib-devel pcre-devel -y
# wget https://launchpadlibrarian.net/225370879/mydumper-0.9.1.tar.gz
# cmake ./
#make && make install
1
2
3
4
或
yum -y install glib2-devel mysql-devel zlib-devel pcre-devel cmake gcc-c++ git
cd /usr/MyWorkSpace/
git clone https://github.com/maxbube/mydumper.git
cd mydumper
//注意下面包含'.'
cmake .
make && make install
安装完成后生成两个二进制文件mydumper和myloader位于/usr/local/bin目录下
1
2
3
4
5
6
7
8
9
10
2.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
3.mydumper输出文件说明:
metadata:元数据,记录备份开始和结束时间,以及binlog日志文件位置。
table data:每个表一个文件
table schemas:表结构文件
daemon mode:在这个模式下,有五个目录0,1,binlogs,binlog_snapshot,last_dump。
备份目录是0和1,间隔备份,如果mydumper因某种原因失败而仍然有一个好的快照,
当快照完成后,last_dump指向该备份。
1
2
3
4
5
6
4.mydumper用例
备份hellodb数据库到当前目录下
# mydumper -uroot -proot -B hellodb -o ./
# ll 是每个表单独备份的
1
2
# cat metadata 可以看到
1
以守护进程方式每30分钟备份一次
# mydumper -uroot -proot -B hellodb-o /home/data/bak -D -I 30
1
2
3
4
5
数据库的还原覆盖操作
# myloader -o -B hellodb -o -d/home/data/bak/last_dump
————————————————
版权声明:本文为CSDN博主「carcoon」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/carcoon/article/details/109829069