mysql数据库备份工具mydumper使用总结
日常备份数据库大家都习惯使用MySQL自带的mysqldump,如果是中小数据体量的数据库,mysqldump没有问题,但是如果数据库体量很大,使用mysqldump备份就特别慢,所以这里推荐一个带指定线程数进行并发备份的工具
mydumper
,官网参考http://www.mysqldumper.org/, 目前已经到 0.9.1版本
1、安装
1 | # download |
2、安装问题
本次安装是在二进制安装Percona MySQL的环境,在进行 cmake 的时候报错,提示找不到 libperconaserverclient
但是该文件所在路径已经在ldconfig中配置,如下
1 | # cat /etc/ld.so.conf.d/mysql-x86_64.conf |
且 执行 ldconfig 使其生效,但是cmake依旧报错。
这个时候有两种方式修复:
2.1、安装mysql-devel,安装之后会在系统/usr/lib64/
下生成 mysql 目录,里面有 libmysqlclient.so
文件(在后面编译成功的时候就可以看到依赖这个)
1 | yum install mysql-devel |
2.2、受上面的启发,知道Cmake的时候会找/usr/lib64
或者 /lib64
,所以在这两个目录下,做/opt/app/mysql/lib/libperconaserverclient.so.20.3.16
的软连
1 | ln -s /opt/app/mysql/lib/libperconaserverclient.so.20.3.16 /lib64/libperconaserverclient.so |
之后cmake编译成功
最后安装
3、用法介绍
可以通过mydumper --help
和 myloader --help
查看具体的配置选项,这里不做赘述,只说明日常用到的参数
mydumper
1 | -h/--host |
myloader
-h/-u/-p/-P/-v/-t 与上面的一致
1 | - -d/--directory 数据库备份的目录,从这个目录进行数据恢复 |
4、实例案例
针对实际的数据库做备份和恢复,太简单这里就不写实际的脚本了
备份数据库
- 常规备份
mydumper -h localhost -u root -p passwd -B dbanme -c -t 6 -v 3 -o /data/backup/dbname -L /data/backup/dbname-mydumper.log
- 备份所有数据库
mydumper -h localhost -u root -p passwd -c -t 6 -v 3 -o /data/backup/dbinstance -L /data/backup/dbinstance-mydumper.log
- 备份指定的表(或者多表, 多个表之间逗号分割)
mydumper -h localhost -u root -p passwd -B dbanme -T table1,table2 -c -t 6 -v 3 -o /data/backup/dbname -L /data/backup/dbname-mydumper.log
- 带存储过程触发器的备份
mydumper -h localhost -u root -p passwd -B dbanme -G -R -c -t 6 -v 3 -o /data/backup/dbname -L /data/backup/dbname-mydumper.log
恢复数据库
- 常规恢复
myloader - localhost -u root -p passwd -B dbanme -d /data/backup/dbname -o -v 3
- 恢复到指定的数据库,备份的是dbsource,恢复到 dbtarget
myloader - localhost -u root -p passwd -B dbtarget –source-db=dbsource -d /data/backup/dbname -o -v 3
附加
mydumper 原理图
mysql数据库备份工具mydumper使用总结
http://blog.colinspace.com/2021/10/10/mysql数据库备份工具mydumper使用总结/