关于mydumper的简介和下载请访问:https://launchpad.net/mydumper

简言之,mydumper是多线程逻辑备份,对于表和数据量很大的情况下,建议使用mydumper提高备份效率,比MySQLdumper要快很多。

我为什么要用mydumper?是基于某个需求,比如我需要把某个库下的所有按日期分表的表备份并导入到新实例?如何实现?

table_20170101

table_20170102

......

table_20171231

一共三百多张表开始我去尝试mysqldump,看到参数:-B [table1,table2......table n] ,多么厚颜无耻的说咱支持多个指定表备份,5个以下完全接受,但是我要备份1000个表,你要让我在那列1000个吗?我始终不相信,mysqldump怎么能不支持表名模糊匹配呢?于是我就使用下面的写法:

mysqldump  -uxx -p -B xx  table_* > backup.sql执行没有报错,惊喜,我就说嘛,怎么能不支持表的模糊匹配呢!!当我打开backup.sql文件时,膀胱都气炸了,尼玛直接备份了某个数据库下所有的表了。忽视我的模糊匹配嘛。从此对mysqldump没有好印象了,(当然也可能是我能力有限,还没有找到mysqldump的多表备份方式)。

转投mydumper,当我看到-x参数时,又是一喜!看看人家,写的多么清晰,于是开始使用:

一、mydumper安装:

# yum install glib2-devel mysql-devel zlib-devel pcre-devel

# wget http://launchpad.net/mydumper/0.9/0.9.1/+download/mydumper-0.9.1.tar.gz

# tar zxvf mydumper-0.9.1.tar.gz -C ../software/

# cmake .

# make

# make install二、使用mydumper

1、刚用时报错:

/usr/local/bin/myloader: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory解决方法:

# locate libmysqlclient.so.18

/usr/local/mysql/lib/libmysqlclient.so.18

/usr/local/mysql/lib/libmysqlclient.so.18.1.0

# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf

# ldconfig 2、重要参数介绍:

-B, --database 需要备份的库

-T, --tables-list 需要备份的表,用,分隔

-o, --outputdir 输出目录

-s, --statement-size Attempted size of INSERT statement in bytes, default 1000000

-r, --rows 试图分裂成很多行块表

-c, --compress 压缩输出文件

-e, --build-empty-files 即使表没有数据,还是产生一个空文件

-x, --regex 支持正则表达式

-i, --ignore-engines 忽略的存储引擎,用,分隔

-m, --no-schemas 不导出表结构

-k, --no-locks 不执行临时共享读锁 警告:这将导致不一致的备份

-l, --long-query-guard 长查询,默认60s

--kill-long-queries kill掉长时间执行的查询(instead of aborting)

-b, --binlogs 导出binlog

-D, --daemon 启用守护进程模式

-I, --snapshot-interval dump快照间隔时间,默认60s,需要在daemon模式下

-L, --logfile 日志文件

-h, --host

-u, --user

-p, --password

-P, --port

-S, --socket

-t, --threads 使用的线程数,默认4

-C, --compress-protocol 在mysql连接上使用压缩

-V, --version

-v, --verbose 更多输出, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2

myloader参数介绍:

-d, --directory 导入备份目录

-q, --queries-per-transaction 每次执行的查询数量, 默认1000

-o, --overwrite-tables 如果表存在删除表

-B, --database 需要还原的库

-e, --enable-binlog 启用二进制恢复数据

-h, --host

-u, --user

-p, --password

-P, --port

-S, --socket

-t, --threads 使用的线程数量,默认4

-C, --compress-protocol 连接上使用压缩

-V, --version

-v, --verbose 更多输出, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2

mydumper输出文件介绍:

metadata:元数据 记录备份开始和结束时间,以及binlog日志文件位置。

table data:每个表一个文件

table schemas:表结构文件

binary logs: 启用--binlogs选项后,二进制文件存放在binlog_snapshot目录下

daemon mode:在这个模式下,有五个目录0,1,binlogs,binlog_snapshot,last_dump。

备份目录是0和1,间隔备份,如果mydumper因某种原因失败而仍然有一个好的快照,

当快照完成后,last_dump指向该备份。

3、用例

# 将某个库下日表备份

mydumper -x "new_broker.broker_action_log_*"  -o /data/dbbackup/tmp/  --host='xxxx' --user='xxxx' --password='xxx' --port='3306' --logfile='/data/dbbackup/tmp/mydumper.log'  --threads=6 -v 3

#将备份数据恢复到新数据库broker_biz_log中

myloader  -t 6 -v 3 --host='xxxx' --user='xxxx' --password='xxxx' --port='3306'  -B broker_biz_log  --directory='/data/dbbackup/tmp' 4、使用误区

需求1:备份多个数据库下所有表

【错误案例,有部分库导出失败】

nohup mydumper -x "(test_db.*)|(test.*)|(mysql.*)" -o /data/dbbackup/mydumper/ --host='192.168.1.20' --user='secret' --password='xx' --port='3306' --logfile='/data/dbbackup/mydumper/mydumper.log' --threads=6 -v 3 &【正确的写法】

nohup mydumper -x "(test_db|test|mysql).*" -o /data/dbbackup/mydumper/ --host='192.168.1.20' --user='secret' --password='xx' --port='3306' --logfile='/data/dbbackup/mydumper/mydumper.log' --threads=6 -v 3 &需求2:备份所有数据库下所有表

mydumper -o /data/dbbackup/mydumper/ --host='ip' --user='secret' --password='xx' --port='3306' --logfile='/data/dbbackup/mydumper/mydumper.log' --threads=6 -v 3[myloader]

--将/data/dbbackup/mydumper上的所有库都恢复

【正确的写法】

nohup myloader -t 6 -v 3 -u secret -p xxx -S /tmp/mysql.sock --directory='/data/dbbackup/mydumper' &【值得注意的是: myloader是以.为分隔符来截取库名的,所以如果本身库的名字中包含.的,那么会失败】

mysql 逻辑备份工具_MySQL逻辑备份工具-mydumper相关推荐

  1. mysql 物理备份工具_mysql物理备份工具Xtrabackup安装配置

    mysql物理备份工具Xtrabackup安装配置 1Xtrabackup工具介绍 Xtrabackup是一个对InnoDB做物理数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具 ...

  2. mysql数据库备份工具_MySQL数据库备份工具和六种方法介绍

    关于Mysql备份数据库的方法,烈火网小编总结了目前所有的备份方式,有以下几种:mysqldump.mysqlhotcopy.BACKUP TABLE .SELECT INTO OUTFILE,又或者 ...

  3. mysql 备份 第三方工具_Mysql第三方备份工具Xtrabackup使用说明

    1.Xtrabackup安装 1)yum安装方式: yuminstallhttp://www.percona.com/downloads/percona-release/redhat/0.1-3/pe ...

  4. mysql数据库备份总结_MySQL数据库备份总结

    一个企业的正常运行,数据的完整性是最关键的:所以我们需要在工作中要很熟练的掌握数据的备份与恢复方法:下面是对Mysql数据库备份的三种方法总结,希望对大家会有所帮助 备份开始前的工作环境准备: 1.创 ...

  5. mysql 自动备份发送_MySQL自动备份数据并通过邮箱发送

    实验环境:腾讯云服务器 操作系统:CentOS 7 腾讯云.阿里云默认关闭了25端口,需要采用465端口通过smtp来发送邮件,由于个人博客一般数据量都不大,可以直接备份并通过邮件来把数据直接以附件形 ...

  6. mysql 数据备份方案_MySQL常见备份方案

    MySQL常见备份方案有以下三种: mysqldump + binlog lvm + binlog xtrabackup 本例为方便演示,数据库里面数据为空.下面开始动手 mkdir /opt/bac ...

  7. mysql xtrabackup 保护模式_MySQL Xtrabackup备份原理和实现细节

    备份原理: XtraBackup基于InnoDB的crash-recovery功能.它会复制innodb的data file,由于不锁表,复制出来的数据是不一致的,在恢复的时候使用crash-reco ...

  8. mysql数据库咋还原_mysql数据库备份和还原

    一.数据备份 1.使用mysqldump命令备份 mysqldump命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中. mysqldump命令的工作原理很简单.它先 ...

  9. 阿里云 mysql自动备份数据库_MySQL定时备份数据库(全库备份)

    一.MySQL数据备份 1.1. mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump ...

  10. mysql 工具_MySQL压力测试工具,值得收藏

    一.MySQL自带的压力测试工具--Mysqlslap mysqlslap是mysql自带的基准测试工具,该工具查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新 ...

最新文章

  1. 当身为老师的爸爸上课时......​
  2. 你可以不在BAT,但大厂的眼界不能没有
  3. 这五个超强PPT技巧,从小白到大神的距离只差这一点!
  4. 浅谈c++静态绑定、动态绑定
  5. MySQL数据库(二) 一一 MySQL管理
  6. MacOS如何设置不使用时退出登录用户账号
  7. (转)linux sort 命令详解
  8. C#中取得汉语拼音首字母
  9. EXCEL 数据透视表的制作
  10. Python爬虫实例项目大全
  11. MsDos下的Debug调试器与8080汇编小实验
  12. 点击开始十秒倒计时html,十秒倒计时案例.html
  13. mac无法安装dmg文件,报无可装载系统错误
  14. mac虚拟机改显存_不同mac虚拟机下性能表现对比
  15. 网页设计html怎么做五星红旗,用CSS做各国国旗方法
  16. 2022:股票程序化交易实战2022Q3
  17. Lost connection to MySQL server during query问题
  18. 为什么狗狗听到铃声会叫
  19. Redis管理工具CacheCloud的部署与使用
  20. 十个Python初学者常犯的错误

热门文章

  1. 华为鸿蒙深度研究(100页)
  2. 经典:趣解什么叫网关?
  3. 北京44岁程序员失业,感叹:编程估计没戏了,想去卖煎饼果子点背锅走人~
  4. 写出一手烂代码的 19 条准则!
  5. 最流行6种微服务RPC技术,你一定要知道
  6. GitHub出现大量重复代码:JavaScript最严重
  7. 流量一天一个台阶,谈映客直播服务端架构优化之路
  8. OpenStack,真的要凉了?
  9. mysql基础之mariadb的安装,连接,用户,密码,权限设置语句详解
  10. maven 的 oracle的Missing artifact com.oracle:******:jar:11.2.0.2.0