Mydumper 多线程备份工具

简介:

Mydumper 是一款针对MySQL和Drizzle的高性能多线程备份和恢复工具。

    主要特性:

    1、轻量级,用C所写

    2、执行速度是MySQLDUMP的10倍左右

    3、事务性表和非事务性表的一致性快照(0.22以上版本)

    4、文件压缩(格式为.gz)

    5、支持导出binlog(这个我测试过,但没有成功,求教,测试版本 0.23)

    6、多线程恢复(0.21版本以上)

    7、守护进程工作方式,定时快照和连续二进制日志(0.50版本以上)

    8、最令人高兴地是:开源(GNU GPLv3)

    安装部分:

    请参考官方文档:http://docs.mydumper.org/compiling.html(这个是0.2的文档)

    安装成功后,会有mydumper(备份)  myload(恢复) 两个工具

    参数可参考: mydumper --help  详细解说:http://docs.mydumper.org/mydumper_usage.html

    例:mydumper  -B monster  -o /tmp/abc/test1  -c  -v 3

    生成三种文件:*schema.sql 结构文件   *.sql 数据文件   .metadata 元数据文件(这个是包含备份时间,该时间的二进制日志日志位置,如:Started dump at: 2012-07-27 19:00:38

SHOW MASTER STATUS:

        Log: mysql-bin.000019

        Pos: 542237180)

     myloader  使用 基本是:

      myloader  --directory /path/to/mydumper/backup 【options】  

    mydumper 部分参数解说:

    个人认为比较实用的参数:

    --threads 备份数据线程的个数,默认为4(ps:并不是线程越多越好,需实际测试time commands)

    --long-query-guard 设置长查询的上限默认是60S,

    --kill-long-queries 如果长查询超过规定时间,默认mydumper会退出,是用该参数,可以直接杀死长查询,来保证备份继续。

    --regex  匹配多个数据库或者数据表

    --rows 将几个表分成几个chunk,可以把一个表分成多个文件,文件的个数是根据表的总行数和rows 个数来分配。

     (ps 该工具不支持字符集设置;没有像myslqdump 类似的选项 --master-info 将change master to 语句写入到sql文件中;该工具一致性做的很好!)

     






本文转自 位鹏飞 51CTO博客,原文链接:http://blog.51cto.com/weipengfei/945509,如需转载请自行联系原作者

目录
相关文章
|
关系型数据库 MySQL Shell
Shell多线程备份数据库的脚本
Shell多线程备份数据库的脚本
1258 0
|
监控 关系型数据库 MySQL
|
5天前
|
Python
python3多线程中使用线程睡眠
本文详细介绍了Python3多线程编程中使用线程睡眠的基本方法和应用场景。通过 `time.sleep()`函数,可以使线程暂停执行一段指定的时间,从而控制线程的执行节奏。通过实际示例演示了如何在多线程中使用线程睡眠来实现计数器和下载器功能。希望本文能帮助您更好地理解和应用Python多线程编程,提高程序的并发能力和执行效率。
34 20
|
11天前
|
安全 Java C#
Unity多线程使用(线程池)
在C#中使用线程池需引用`System.Threading`。创建单个线程时,务必在Unity程序停止前关闭线程(如使用`Thread.Abort()`),否则可能导致崩溃。示例代码展示了如何创建和管理线程,确保在线程中执行任务并在主线程中处理结果。完整代码包括线程池队列、主线程检查及线程安全的操作队列管理,确保多线程操作的稳定性和安全性。
|
2月前
|
NoSQL Redis
单线程传奇Redis,为何引入多线程?
Redis 4.0 引入多线程支持,主要用于后台对象删除、处理阻塞命令和网络 I/O 等操作,以提高并发性和性能。尽管如此,Redis 仍保留单线程执行模型处理客户端请求,确保高效性和简单性。多线程仅用于优化后台任务,如异步删除过期对象和分担读写操作,从而提升整体性能。
79 1
|
3月前
|
数据采集 Java Python
爬取小说资源的Python实践:从单线程到多线程的效率飞跃
本文介绍了一种使用Python从笔趣阁网站爬取小说内容的方法,并通过引入多线程技术大幅提高了下载效率。文章首先概述了环境准备,包括所需安装的库,然后详细描述了爬虫程序的设计与实现过程,包括发送HTTP请求、解析HTML文档、提取章节链接及多线程下载等步骤。最后,强调了性能优化的重要性,并提醒读者遵守相关法律法规。
119 0
|
4月前
|
Java 开发者
在Java多线程编程中,选择合适的线程创建方法至关重要
【10月更文挑战第20天】在Java多线程编程中,选择合适的线程创建方法至关重要。本文通过案例分析,探讨了继承Thread类和实现Runnable接口两种方法的优缺点及适用场景,帮助开发者做出明智的选择。
43 2
|
4月前
|
Java
Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口
【10月更文挑战第20天】《JAVA多线程深度解析:线程的创建之路》介绍了Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口。文章详细讲解了每种方式的实现方法、优缺点及适用场景,帮助读者更好地理解和掌握多线程编程技术,为复杂任务的高效处理奠定基础。
68 2