千家信息网

多线程备份工具mydumper怎么用

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了多线程备份工具mydumper怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。安装点击(此处)折叠或打开依赖安装
千家信息网最后更新 2026年11月01日多线程备份工具mydumper怎么用

这篇文章主要介绍了多线程备份工具mydumper怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

安装

点击(此处)折叠或打开

  1. 依赖安装

  2. debian

  3. apt-get install libglib2.0-dev

  4. apt-get install libmysqlclient-dev

  5. apt-get install libghc-zlib-dev

  6. apt-get install libpcre++-dev

  7. centos

  8. yum install glib2-devel mysql-devel zlib-devel pcre-devel


  9. # wget https://launchpad.net/ubuntu/+archive/primary/+files/mydumper_0.9.1.orig.tar.gz

  10. # tar xzvf mydumper_0.9.1.orig.tar.gz

  11. # cd mydumper-0.9.1/

  12. # cmake .

  13. # make && make


说明

点击(此处)折叠或打开

  1. # mydumper --help


  2. Usage:

  3. mydumper [OPTION...] multi-threaded MySQL dumping


  4. Help Options:

  5. -?, --help Show help options


  6. Application Options:

  7. -B, --database (指定要导出的数据库)


  8. -T, --tables-list (指定要导出的表,多个表逗号分隔,不支持正则表达式)


  9. -o, --outputdir (指定输出目录)


  10. -s, --statement-size (导出的insert语句长度指定,单位字节,默认100wziji)


  11. -r, --rows (即水平拆分表进行存储,单位行数,这个选项会使--chunk-filesize失效)


  12. -F, --chunk-filesize (即水平拆分表进行存储,单位 MB)


  13. -c, --compress (压缩输出文件)


  14. -e, --build-empty-files (空数据的表也生成文件)


  15. -x, --regex (正则表达式 匹配'db.table')


  16. -i, --ignore-engines (设定需要忽略的存储引擎表,多个以逗号分隔)


  17. -m, --no-schemas (不要导出schema库中有数据的表)


  18. -d, --no-data (仅仅导出表结构,不要数据)


  19. -G, --triggers (导出触发器)


  20. -E, --events (导出event)


  21. -R, --routines (导出存储过程)


  22. -k, --no-locks (导出数据过程中不要临时使用读锁). WARNING: This will cause inconsistent backups


  23. --less-locking Minimize locking time on InnoDB tables.


  24. -l, --long-query-guard (定义超过多久的查询为long querY ,默认60,单位 s)


  25. -K, --kill-long-queries (kill掉long query)(instead of aborting)


  26. -D, --daemon (使用守护进程的模式)


  27. -I, --snapshot-interval (dump快照之间的间隔设置,需要带上--daemon参数启动,默认60,单位minutes)


  28. -L, --logfile Log file name to use, by default stdout is used


  29. --tz-utc SET TIME_ZONE='+00:00' at top of dump to allow dumping of TIMESTAMP data when a server has data in different time zones or data is being moved between servers with different time zones, defaults to on use --skip-tz-utc to disable.


  30. --skip-tz-utc


  31. --use-savepoints Use savepoints to reduce metadata locking issues, needs SUPER privilege


  32. --success-on-1146 Not increment error count and Warning instead of Critical in case of table doesn


  33. --lock-all-tables Use LOCK TABLE for all, instead of FTWRL (锁定所有表)


  34. -U, --updated-since Use Update_time to dump only tables updated in the last U days


  35. --trx-consistency-only Transactional consistency only (事务一致)


  36. -t, --threads Number of threads to use, default 4(备份线程数,默认为4)


  37. -C, --compress-protocol Use compression on the MySQL connection(连接压缩)


  38. -v, --verbose Verbosity of output, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2

默认连接参数
-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

测试

点击(此处)折叠或打开

  1. mydumper -u root -p xxx -B db_slave -e -o db_slave_dir

目录文件如下:


其中各文件说明

建库文件 db_slave-schema-create.sql (通用格式dbname-schema-create.sql)

点击(此处)折叠或打开

  1. # cat db_slave-schema-create.sql

  2. CREATE DATABASE `db_slave` /*!40100 DEFAULT CHARACTER SET latin1 */;

建表文件 db_slave.t_check_flag-schema.sql(通用格式dbname.tbname-schema.sql)

点击(此处)折叠或打开

  1. # cat db_slave.t_check_flag-schema.sql

  2. /*!40101 SET NAMES binary*/;

  3. /*!40014 SET FOREIGN_KEY_CHECKS=0*/;


  4. CREATE TABLE `t_check_flag` (

  5. `db_ip` char(16) NOT NULL DEFAULT '',

  6. `check_flag` tinyint(4) DEFAULT '0' COMMENT '1 monitor 0 not '

  7. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

数据文件 db_slave.t_check_flag.sql(通用格式dbname.tbname.sql)

点击(此处)折叠或打开

  1. # cat db_slave.t_check_flag.sql

  2. /*!40101 SET NAMES binary*/;

  3. /*!40014 SET FOREIGN_KEY_CHECKS=0*/;

  4. /*!40103 SET TIME_ZONE='+00:00' */;

  5. INSERT INTO `t_check_flag` VALUES

  6. ("192.168.111.129",1),

  7. ("192.168.111.130",1),

  8. ("192.168.111.26",1);

整体导出信息文件 metadata(这里记录了开始时间,结束时间,以及导出开始时的binlog信息,对于建立从库比较方便)

点击(此处)折叠或打开

  1. # cat metadata

  2. Started dump at: 2016-11-19 13:38:56

  3. SHOW MASTER STATUS:

  4. Log: 2104.014976

  5. Pos: 85965870

  6. GTID:(null)


  7. Finished dump at: 2016-11-19 13:38:56


过程描述
打开general_log可以看到如下日志

点击(此处)折叠或打开

  1. 148901 Connect root@localhost on db_slave

  2. 148901 Query SET SESSION wait_timeout = 2147483

  3. 148901 Query SET SESSION net_write_timeout = 2147483

  4. 148901 Query SHOW PROCESSLIST

  5. 148901 Query FLUSH TABLES WITH READ LOCK

  6. 148901 Query SELECT @@tokudb_version

  7. 148901 Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */

  8. 148901 Query /*!40101 SET NAMES binary*/

  9. 148901 Query SHOW MASTER STATUS

  10. 148901 Query SELECT @@gtid_current_pos

  11. 148901 Query SELECT @@default_master_connection

  12. 148901 Query SHOW SLAVE STATUS

  13. 148902 Connect root@localhost on

  14. 148902 Query SET SESSION wait_timeout = 2147483

  15. 148902 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ

  16. 148902 Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */

  17. 148902 Query /*!40103 SET TIME_ZONE='+00:00' */

  18. 148902 Query /*!40101 SET NAMES binary*/

  19. 148903 Connect root@localhost on

  20. 148903 Query SET SESSION wait_timeout = 2147483

  21. 148903 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ

  22. 148903 Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */

  23. 148903 Query /*!40103 SET TIME_ZONE='+00:00' */

  24. 148903 Query /*!40101 SET NAMES binary*/

  25. 148904 Connect root@localhost on

  26. 148904 Query SET SESSION wait_timeout = 2147483

  27. 148904 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ

  28. 148904 Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */

  29. 148904 Query /*!40103 SET TIME_ZONE='+00:00' */

  30. 148904 Query /*!40101 SET NAMES binary*/

  31. 148905 Connect root@localhost on

  32. 148905 Query SET SESSION wait_timeout = 2147483

  33. 148905 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ

  34. 148905 Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */

  35. 148905 Query /*!40103 SET TIME_ZONE='+00:00' */

  36. 148905 Query /*!40101 SET NAMES binary*/

  37. 148901 Init DB db_slave

  38. 148901 Query SHOW TABLE STATUS

  39. 148901 Query SHOW CREATE DATABASE `db_slave`

  40. 148901 Query UNLOCK TABLES /* FTWRL */

  41. 148902 Query SELECT /*!40001 SQL_NO_CACHE */ * FROM `db_slave`.`t_check_flag`

  42. 148903 Query SELECT /*!40001 SQL_NO_CACHE */ * FROM `db_slave`.`t_master_instance`

  43. 148901 Quit

  44. 148904 Query SHOW CREATE TABLE `db_slave`.`t_check_flag`

  45. 148905 Query SHOW CREATE TABLE `db_slave`.`t_master_instance`

①连接数据库
②判断长查询相关,--long-query-guard和--kill-long-queries
③flush tables with read locks ,备份mysiam表完成会立即unlock tables; 对于innodb表,mydumper·使用single transaction的方式进行备份。因此mysiam表的大小及数量影响着mysiam的备份时间进而影响着业务是否只读。
④通过 -t 参数指定的线程数量进行创建,并进行工作worker子线程
⑤确定当前要导出的表,并把待导出表加入到队列中。
⑥备份完成退出(其中mysiam完成会unlock tables;)

总结:
①可以使用 -t 参数指定线程数,多线程同时备份速度可以提升,但是也依赖于磁盘的IO性能
②导出过程要加读锁,建议在业务低峰期进行。
③在从库备份的时候,metadata中也是记录当前从库已执行到的binlog文件以及位置
④定时任务备份可使用 -v 参数输出相应等级的信息,作为备份日志。
⑤当库过于庞大的时候,建议使用 -c 参数对结果进行压缩。
⑥单表过于庞大的时候,可以使用 -r 或者 -F 参数分解,避免单表备份时间过长(不拆的话就是 one thread 进行导出)

感谢你能够认真阅读完这篇文章,希望小编分享的"多线程备份工具mydumper怎么用"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

备份 文件 线程 参数 数据 单位 时间 篇文章 过程 存储 信息 时候 格式 输出 备份工具 工具 业务 同时 多个 庞大 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州万易互联网科技有限公司 互联网和科技技术 艾特科技互联网 浩特互联网科技 远拓互联网科技 汇久创客互联网科技 哈尔滨新华互联网科技 安控科技rtu产品工业互联网 中国的互联网科技企业的崛起 来此购互联网科技有限公司 世界互联网科技公司市值排名 东莞新华互联网科技学校 翼展科技 首家互联网医院 长沙茂晟互联网科技有限公司 美国互联网科技实力 广东工业互联网大赛深圳学泰科技 黑云互联网科技有限公司 云南省自由互联网科技有限公司 上海互联网科技公司ppt 下一代互联网重大应用科技园 互联网科技网 苏州互联网科技贷款公司 顶级互联网科技成果有哪些 工业互联网科技成果转化 互联网科技包装股份有限公司上市 广东鹅鹅鹅互联网科技有限公司 兰石爱特工业互联网科技分公司 承德科技产业互联网平台 互联网科技创新方面的资料 互联网科技企业文化
0