安装

首先去官网https://launchpad.net/mydumper下载对应的版本

rpm -qa|grep 检测下面的包是否有未安装的

glib2-devel zlib-devel pcre-devel openssl-devel cmake

有没安装的用yun -y install 安装

解压压缩包:tar -zxvf mydumper-0.9.1.tar.gz

然后继续安装

cd mydumper-0.9.1

cmake .

make

make install

至此安装完成

进入到 cd /usr/local/bin目录

mydumper --help

这时候出现报错

mydumper: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory

表面看缺少依赖

确定检查:

这时候能清晰看到这个包没有,知道问题,接下来的处理方式就简单了

找到对应的包:find / -name libmysqlclient.so.20

然后拷贝一份 cp /home/it_tool/mysql/lib/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.20

ldconfig

这样就可以解决了

使用

mydumper:多线程备份工具

文件介绍:其生成文件夹一共有四个文件

  • metadata                                                 日志文件
  • db_name-schema-create.sql                  建库文件
  • db_name.tb_name-schema.sql               建表文件
  • db_name.tb_name.sql                             数据文件

基础备份:mydumper -u root -p *** -B dumper_test -o /home/backup/

基础恢复:myloader -u root -p *** -d /home/backup

mydumper参数详解:

-B, --database              要备份的数据库,不指定则备份所有库-T, --tables-list           需要备份的表,多表用逗号隔开-o, --outputdir             备份文件输出的目录-s, --statement-size        生成的 insert 语句的字节数,默认 1000000(这个参数不能太小,不然会报 Row bigger than statement_size for tools.t_serverinfo)-r, --rows                  将表按行分块时,指定的块行数,指定这个选项会关闭 --chunk-filesize        -F, --chunk-filesize        将表按大小分块时,指定的块大小,单位是 MB-c, --compress              压缩输出文件(压缩级别为1-9,可以不指定,也可以指定)-e, --build-empty-files     如果表数据是空,还是产生一个空文件(默认无数据则只有表结构文件)-x, --regex                 支持正则表达式匹配'db.table',如mydumper –regex '^(?!(mysql|test))'-i, --ignore-engines        忽略的存储引擎,用逗号分割-m, --no-schemas            不备份表结构-d, --no-data               不备份表数据-G, --triggers              备份触发器-E, --events                备份事件-R, --routines              备份存储过程和函数-k, --no-locks              不使用临时共享只读锁,使用这个选项会造成数据不一致--less-locking              减少对 InnoDB 表的锁定时间-l, --long-query-guard      设定阻塞备份的长查询超时时间,单位是秒,默认是60秒(超时后默认mydumper将会退出)-K, --kill-long-queries     杀掉长查询 (而不是退出 mydumper)-D, --daemon                启用守护进程模式,守护进程模式以某个间隔不间断对数据库进行备份-I, --snapshot-interval     每个备份快照之间的间隔(以分钟为单位),需要 --daemon 选项,默认为 60-L, --logfile               使用的日志文件名(mydumper所产生的日志), 默认使用标准输出--tz-utc                    设置时区,只有备份应用到不同时区时使用。默认使用 --skip-tz-utc 来关闭该选项--skip-tz-utc               见上--use-savepoints            使用 savepoints 来减少采集 metadata 所造成的锁时间,需要 SUPER 权限--success-on-1146           不增加错误计数,如果表不存在,则警告而不是严重--lock-all-tables           锁住实例上所有表,而不是给实例施加 FTWRL-U, --updated-since         使用 update_time 来备份最近 U 天内有过更新记录的表--trx-consistency-only      Transactional consistency only-h, --host                  连接的主机名-u, --user                  备份所使用的用户-p, --password              密码(不支持交互式输入密码)-P, --port                  端口-S, --socket                使用 socket 方式备份实例(使用不成功,暂时只成功的使用了基于 host 的方式备份)-t, --threads               开启的备份线程数,默认是 4-C, --compress-protocol     压缩与 mysql 通信的数据-V, --version               显示版本号-v, --verbose               输出信息模式, 0 = silent, 1 = errors, 2 = warnings, 3 = info, 默认为 2

myloader参数详解:

-d, --directory                   备份文件的文件夹
-q, --queries-per-transaction     每次事物执行的查询数量,默认是1000
-o, --overwrite-tables            如果要恢复的表存在,则先drop掉该表,使用该参数,需要备份时候要备份表结构
-B, --database                    需要还原的数据库
-e, --enable-binlog               启用还原数据的二进制日志
-h, --host                        主机
-u, --user                        还原的用户
-p, --password                    密码
-P, --port                        端口
-S, --socket                      socket文件
-t, --threads                     还原所使用的线程数,默认是4
-C, --compress-protocol           压缩协议
-V, --version                     显示版本
-v, --verbose                     输出模式, 0 = silent, 1 = errors, 2 = warnings, 3 = info, 默认为2

实操演练

首先,赋予账号只读权限做一个基本的备份

mydumper -h 127.0.0.1 -P 3307 -u mydumper_test -p mydumper_123 -B pt_test  -o /home/backup/pt_test

打开通用日志,可以看到备份的基本操作

注:这里的多个Connect代表了开启多个线程

1.这里可以看到备份账号是先查看线程是否有DDL操作,如果没有则加全局锁(注:加全局锁需要账号有reload权限,否则默认会警告加锁失败,这时候就无法保证数据一致性

2.开始事务

3.检查主从信息,获取当前数据库的状态信息,就是数据库当前正在使用的二进制日志及当前执行二进制日志位置,执行了哪些GTID,设置一些session级别的配置项,如隔离级别等

4.查看表状态,建库语句,表数据,建表语句

5.解除全局锁

特别参数:

--no-locks(可以通过当前时间的备份加上备份开始时间之后的二进制日志来做备份恢复,极特别情况会出现数据不一致)

mydumper --no-locks -h 127.0.0.1 -P 3307 -u mydumper_test -p mydumper_123 -B pt_test  -o /home/backup/pt_test** (mydumper:10719): WARNING **: 15:19:47.371: Executing in no-locks mode, snapshot will notbe consistent

加上--no-lock之后查看通用日志可以发现不加全局锁了

--less-locking

mydumper --less-locking -h 127.0.0.1 -P 3307 -u mydumper_test -p mydumper_123 -B pt_test  -o /home/backup/pt_test

查看通用日志,可以发现与没加参数时接触锁定的时间要早,具体原因还没有研究明白,后续补充

mydumper的安装与使用相关推荐

  1. mydumper备份原理和使用方法

    mydumper介绍 MySQL自身的mysqldump工具支持单线程工作,依次一个个导出多个表,没有一个并行的机,这就使得它无法迅速的备份数据. mydumper作为一个实用工具,能够良好支持多线程 ...

  2. mydumper备份工具介绍与使用

    前言: 前面文章有介绍过 MySQL 系统自带的 mysqldump 备份工具的使用,其实还有一个开源工具 mydumper 同样适用于 MySQL 的逻辑备份.之前一直没有正式体验过,只是听说比 m ...

  3. mysql无法生成备份产生读锁_mydumper 备份原理和使用方法(备份mysql)

    一:我的使用环境:CentOS6.5  + Mysql5.7 MySQL备份工具比较: 1.mysqldump:属于逻辑备份,会存在锁表,但考虑到数据量比较大,锁表的时间会比较长,业务不允许,pass ...

  4. 8.mysql备份恢复

    1.mysql备份方式分类: 2.冷备: /usr/local/mysql/bin/mysqladmin -uroot -ppassword shutdown scp -r /data/mysql/* ...

  5. mydumper 0.6.2 安装,dba的必备备份工具,必须掌握

    新年第一天,祝愿所有的数据库都平平安安! 直接看安装过程,缺少包的自己看readme 安装好了. [root@mysql93 local]# tar -xvf mydumper-0.6.2.tar.g ...

  6. mysql mydumper_MySQL 之mydumper安装详解

    方法二: 安装 1 安装依赖包 yum -y install glib2-devel mysql-devel zlib-devel pcre-devel cmake gcc-c++ git 1 2 下 ...

  7. Linux笔记-centos7替换yum及编译安装mydumper

    首先是替换yum 这里逻辑如下: 1. 清空yum: 2. 替换/etc/yum.repos.d: 3. 重新生成缓存: 详细过程如下: 1. 进入yum源配置文件 cd /etc/yum.repos ...

  8. 【MySQL】【备份】mydumper安装与使用细节

    mydumper 简介: 由percona公司的Max Bubenick与facebook公司的Domas Mituzas共同维护开发,也是个10年历史的工具了, 与同为逻辑备份的mysqldump工 ...

  9. mysql mydumper_采用mydumper对MySQL部分数据库进行热备

    现有2台DB服务器,分别用于A业务与B业务,其中A业务比较重要,需要对A业务的1个DB(TaeOss)进行热备,大概有40G的数据,并用业务B的DB服务器作为备机,服务器分布如下: 10.137.14 ...

最新文章

  1. 小晶粒zsm分子筛合成表征实验报告_Nat. Mater.:区域选择性合成亚纳米金属-分子筛材料...
  2. JAVA vo pojo javabean dto区别
  3. 【零基础学Java】—List集合(三十九)
  4. 【漏洞分析】dedecms有前提前台任意用户密码修改
  5. 计算机专业理论模拟试题A,高职对口招生考试模拟试题计算机专业网络模拟题...
  6. fancyhdr宏包设置latex页眉页脚
  7. 2019传智+黑马程序员web前端开发+项目开发等视频教程
  8. 全国计算机等级考试一级试题免费,全国计算机等级考试一级试题
  9. kappa一致性检验教程_Kappa一致性检验:两种诊断方法的结果是否一致?
  10. win2003修改密码后提示确认用户名及域无误_周知!贵州高考志愿填报系统提示!...
  11. Adobe Photoshop 7.0.1 简体中文版注册码
  12. Youtube视频推荐框架解读及若干算法细节
  13. GIS地图描边特效的实现
  14. 高二退学,她如今是年收50亿“独角兽”掌门人
  15. CC00157.CloudKubernetes——|KuberNetes服务发布.V08|——|service.v04|验证service|
  16. Android实现应用内多语言切换
  17. 如何搭建一个机器人控制系统
  18. 香港服务器跟国内服务器的区别!
  19. 性能调优之三十六计 —— 「取而代之」Echo/Json 篇
  20. lvgl roller(滑动列表控件)

热门文章

  1. 无人值守自动称重系统的组成和结构
  2. MERGE操作学习总结
  3. 【操作系统】进程间的通信——管道
  4. 记一个npm安装问题 Refusing to delete xxx\.bin\xxx.cmd: is outside xxx\webpack and not a link
  5. TiDB大规模删除实践
  6. 微信公众平台开发(92) 多客服(转)
  7. word中使用自动插入题注功能
  8. 解密双十一、618电商大促数据大屏指标实现原理
  9. 自动化运维工具ansible(安装与模块介绍)
  10. 考研数学汤家凤笔记第一章:极限与连续