mysql mydumper_MySQL 之mydumper安装详解

方法二:

安装

1 安装依赖包

yum -y install glib2-devel mysql-devel zlib-devel pcre-devel cmake gcc-c++ git

1

2 下载安装文件

cd /usr/MyWorkSpace/

git clone https://github.com/maxbube/mydumper.git

cd mydumper

//注意下面包含'.'

cmake .

make && make install

[root@mysql82 mydumper]# mydumper -V

mydumper 0.9.5, built against MySQL 5.5.60-MariaDB

mydumper是针对mysql数据库备份的一个轻量级第三方的开源工具,备份方式为逻辑备份。它支持多线程,备份速度远高于原生态的mysqldump以及众多优异特性。因此该工具是DBA们的不二选择。本文主要描述该工具的使用方法并给出示例。

有关mydumper安装参考:mydumper安装及安装故障汇总

1、mydumper的特点

a、多线程逻辑备份,生产的多个备份文件

b、与mysqldump相同,备份时对 MyISAM 表施加FTWRL (FLUSH TABLES WITH READ LOCK), 会阻塞DML 语句

c、保证备份数据的一致性

d、支持文件压缩,支持导出binlog,支持多线程恢复,支持将备份文件切块

e、支持以守护进程模式工作,定时快照和连续二进制日志

2、mydumper语法

mydumper -u [USER] -p [PASSWORD] -h [HOST] -P [PORT] -t [THREADS] -b -c -B [DB] -o [directory]

参数说明

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

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

-o, --outputdir             输出文件的目录

-s, --statement-size        生成插入语句的字节数, 默认 1000000

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

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

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

-x, --regex                 正则表达式: 'db.table'

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

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

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

-l, --long-query-guard      设置长查询时间,默认60秒

--kill-long-queries         kill掉长时间执行的查询

-b, --binlogs               导出binlog

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

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

-L, --logfile               日志文件

-h, --host                  The host to connect to

-u, --user                  Username with privileges to run the dump

-p, --password              User password

-P, --port                  TCP/IP port to connect to

-S, --socket                UNIX domain socket file to use for connection

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

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

-V, --version               Show the program version and exit

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

3、mydumper的工作过程

a、连接目标数据库;

b、通过show processlist来判断是否有长查询,根据参数long-query-guard和kill-long-queries决定退出或杀掉长查询;

c、锁定myisam表,flush tables with read lock;针对innodb table开启事务,start transaction;

d、创建worker子线程,缺省为4个;

e、确定候选表,根据类别分别插入innodb_table,non_innodb_table以及table_schemas链表(表结构);

f、将候选表通过g_async_queue_push加入任务队列(队列最后元素是thread shutdown),由worker子线程从队列中读取表信息并执行数据导出

g、执行unlock tables,处理完myisam表后立即解锁,以减少锁定时间;

h、等待worker退出;

4、备份文件相关信息

a、所有的备份文件在一个目录中,未指定时为当前目录, 且自动生成备份日期时间文件夹,如export-20150703-145806

b、目录中包含一个 metadata 文件,该文件记录了备份时间点的二进制日志文件名,日志的写入位置

c、如果是在从库进行备份,还会记录备份时同步至主库的二进制日志文件及写入位置

d、每个表有两个备份文件:database.table-schema.sql 表结构文件,database.table.sql 表数据文件

e、如果对表文件分片,将生成多个备份数据文件,可以指定行数或指定大小分片

5、常用备份示例:

###备份单个库

# mydumper -u leshami -p pwd -B sakila -o /tmp/bak

###备份所有数据库,全库备份期间除了information_schema与performance_schema之外的库都会被备份

# mydumper -u leshami -p pwd -o /tmp/bak

###备份单表

# mydumper -u leshami -p pwd -B sakila -T actor -o /tmp/bak

###备份多表

# mydumper -u leshami -p pwd -B sakila -T actor,city -o /tmp/bak

###当前目录自动生成备份日期时间文件夹,不指定-o参数及值时,如文件夹为:export-20150703-145806

mydumper -u leshami -p pwd -B sakila -T actor

###不带表结构备份表

# mydumper -u leshami -p pwd -B sakila -T actor -m

###压缩备份及连接使用压缩协议(非本地备份时)

# mydumper -u leshami -p pwd -B sakila -o /tmp/bak -c -C

###备份特定表

# mydumper -u leshami -p pwd -B sakila --regex=actor* -o /tmp/bak

###过滤特定库,如本来不备份mysql及test库

# mydumper -u leshami -p pwd -B sakila --regex '^(?!(mysql|test))' -o /tmp/bak

###基于空表产生表结构文件

# mydumper -u leshami -p pwd -B sakila -T actor -e -o /tmp/bak

##设置长查询的上限,如果存在比这个还长的查询则退出mydumper,也可以设置杀掉这个长查询

#mydumper -u leshami -p pwd -B sakila --long-query-guard 200 --kill-long-queries

###备份时输出详细日志

# mydumper -u leshami -p pwd -B sakila -T actor -v 3 -o /tmp/bak

###导出binlog,使用-b参数,会自动在导出目录生成binlog_snapshot文件夹及binlog

# mydumper -u leshami -p pwd -P 3306 -b -o /tmp/bak

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php7安装mysqli扩展_Ubuntu14版本下无法使用php7.2版本的bcmath扩展

在使用如下命令安装bcmath扩展的时候sudo apt-add-repository ppa:ondrej/phpsudo apt-get updatesudo apt-get install php7.2-bcmath提示如下信息Reading package lists... DoneBuilding dependency tree Reading state information... DoneE: Unable to locate packag…

Gridview一次更新所有记录

通常,我们在做Gridview更新时,都是每一笔单独更新。或是把记录选择之后,导向另外一页去做更新。 下面的Demo是实现一次性更新所有的记录。 视频文档:.wmv;大小:22,062KB;长度:00:17:48 下载地址:http://download.cnblogs.com/insus/ASPDOTNET…

input 0.1无法相加_你真的知道0.1+0.2为何不等于0.3吗?

打开chrome控制台,给一个特别简单的输入如下:0.1 0.2 // 0.30000000000000004 复制代码不知道你有没有吃惊,这么简单的一个计算,无论在js中还是在python中,都不是准确的0.3,这是为什么呢?缘起要…

python图像增强_Python图像的增强处理操作示例【基于ImageEnhance类】

本文实例讲述了Python图像的增强处理操作。分享给大家供大家参考,具体如下: python中PIL模块中有一个叫做ImageEnhance的类,该类专门用于图像的增强处理,不仅可以增强(或减弱)图像的亮度、对比度、色度&…

微软项目技术结构思路 ExtJs/JQuery + Asp.net MVC + Wcf service + Entity Framework

正文: 这一阵子在做一个项目, 客户要求使用ExtJs/ vs2008 sql server 2005, 也是好长时间没有去看新的技术和一些框架; 初步设计是准备使用 ExtJs HTTPHandle方式提供json google上的josnserialization linq to sql, 基本能满足应用(开始也没有查太多资料,不知道linq to sql…

python 二项分布_二项分布的理论基础、应用及Python实践

二项分布是概率统计中非常基础、非常实用的一种分布,可以说它在我们的生活中无所不在。它说明了这样一种现象:在给定的试验次数中,某一结果会发生多少次。比如:这个月有多少天会刮北风?今年有多少天会下雨?…

python网络爬虫_python小知识,基于Python 的网络爬虫技术分析

在现阶段大数据的时代中,想要实现对数据的获取和分析,要先具备足够的数据源,网络爬虫技术就为其数据获取提供了良好的条件,且还能够实现对数据源的目的性采集。在网络爬虫技术应用中,Python 脚本语言的使用十分广泛&am…

阿诗玛的传说|阿诗玛民间故事

是彝族的 阿诗玛的传说 撒尼族阿着底地方,格路日明夫妻耕种山地住着草房。他们有个勇敢的儿子阿黑,又生下一个可爱的小姑娘。 天空闪出一朵花,小姑娘名叫阿诗玛。她的名字像香草,从此美名传四方。不知不觉长到十六岁,就…

maven 整体打包_Spirng boot maven多模块打包不踩坑(示例代码)

本文参考 https://blog.csdn.net/Ser_Bad/article/details/78433340经过实战一次通过。回话不多说,话费不多说,直接上图。项目整体结构:父模块:xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocatio…

ADO.NET中在C/S模式中使用的连接池

前几天同事问我一个问题,一种CS架构的程序,直接把SQL Server作为服务端,每个客户端直接连接数据库操作,如果客户端打开的数量过多时SQL Server的连接数将会特别高,数据库端形成性能瓶颈,这种情况下怎么办&a…

使用mysql制作学生成绩单_【实例讲解】快速制作学生成绩单

本文由网友潇之骥授权原创直发今天有位学校的老师找我给她作学生成绩单,给的数据如图1:(图1)需要的效果如下:(图2)讲解:要实现这种效果,只要用【邮件合并】这个功能就可以轻松搞定。要用好【邮件合并】这个功能&#x…

c语言 判断一个图是否全连通_基于云平台的全链路大规模网络连通性检测系统详解...

虚拟网络排查问题困难,传统的traceroute等工具很难起到太大作用,大部分情况下都需要到宿主机、混合云网关上抓包来troubleshooting,耗时又费力。有些场景中包的传送路径比较长(如跨域、混合云等),可能丢包的地方比较多&#xff0c…

把checkbox复选框转换成单选按钮radio

文章原创,转载请说明文章来自:http://blog.csdn.net/xxd851116/archive/2009/03/16/3994833.aspx 网页中单选按钮的缺陷 :当一组单选按钮选择一项后改组按钮无法撤销选择改组,导致必须选择一项,用户体验差。 解决办法&…

python三大器_Python - 三大器 迭代器,生层器,装饰器

Python - 三大器 迭代器,生层器,装饰器在介绍三大器之前先来了解一下容器和可迭代对象...一. 容器容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中。通常这类数据结构把所有的…

python类的成员函数_Python为类对象动态添加成员函数

Python: 为对象动态添加函数 , 且函数定义 来自一个 str 在 Python 中 , 通常情况下 , 你只能为对象添加一个已经写好的方法 需求 : 传入一个 str 类型的变量 , 其值是一个完整的合法的 Python 函数定义 , 然后为一个对象添 加这个函数 : method_strudef say(self, name) print…

关于重装系统后或打补丁后不能上网的问题的解决

前些日子,换了新机器,装系统,然后下驱动装一些最基本的软件,如QQ,安全卫士,杀毒软件(俺只用免费的,嘿嘿,如德国的小红伞,一般情况就作够用了)。上…

java对接华为推送服务_华为HMS Core 4.0版本即将来袭:包含新推送服务

据官方消息,在12月27日的HUAWEI Developer Groups(简称HDG)大连活动上,华为消费者云服务HMS运营经理透露HMS Core 4.0版本即将上线,由原来的14项增加至24项核心开放功能,近日即将开放新版本众测,不久之后开发者们将会体…

python xml etree_python解析xml文件之xml.etree.cElementTree和xml.etree.ElementTree区别和基本使用...

1、解析速度:ElementTree在 Python 标准库中有两种实现。一种是纯 Python 实现例如 xml.etree.ElementTree ,另外一种是速度快一点的 xml.etree.cElementTree 。你要记住: 尽量使用 C 语言实现的那种,因为它速度更快,而…

CISSP的成长之路(二十一):用户持有凭证

在51CTO安全频道特别策划的CISSP的成长之路系列的上一篇文章《讲解身份验证过程》里,J0ker给大家介绍了用户验证时所依赖的三种验证要素、密码和密码短语及其安全使用原则。作为技术实施难度和成本最低的用户验证方案,基于密码的用户验证方案广泛应用于我们的日常生…

mysql主从同步面试题_面试被问MySQL 主从复制,怎么破?

注意:此处使用的是新创建的账户。# 4.4 启动主从复制1)启动从库 slave 线程:start slave;2)查看从服务器复制功能状态:show slave status\G;返回结果:*************************** 1. row ***************************Slave_IO_St…