我的编程空间,编程开发者的网络收藏夹
学习永远不晚

多线程备份工具mydumper怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

多线程备份工具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

目录文件如下:
多线程备份工具mydumper怎么用

其中各文件说明

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

点击(此处)折叠或打开

  1. # cat db_slave-schema-create.sql

  2. CREATE DATABASE `db_slave` ;

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

点击(此处)折叠或打开

  1. # cat db_slave.t_check_flag-schema.sql

  2. ;

  3. ;


  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. ;

  3. ;

  4. ;

  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

  8.         148901 Query    

  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

  17.         148902 Query    

  18.         148902 Query    

  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

  23.         148903 Query    

  24.         148903 Query    

  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

  29.         148904 Query    

  30.         148904 Query    

  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

  35.         148905 Query    

  36.         148905 Query    

  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

  41.         148902 Query    SELECT * FROM `db_slave`.`t_check_flag`

  42.         148903 Query    SELECT * 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怎么用”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

多线程备份工具mydumper怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux远程备份工具Rsync怎么用

小编给大家分享一下Linux远程备份工具Rsync怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!注:下面所有例子中 – - 之间实际上是没有空格
2023-06-16

Linux多线程下载工具myget怎么用

这篇文章主要介绍了Linux多线程下载工具myget怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。安装很方便,wget http://myget.sourceforge
2023-06-13

Java多线程开发工具之CompletableFuture怎么应用

这篇“Java多线程开发工具之CompletableFuture怎么应用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Jav
2023-07-05

Java多线程怎么使用同步工具类CyclicBarrier

本篇内容介绍了“Java多线程怎么使用同步工具类CyclicBarrier”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 CyclicBa
2023-06-25

Java多线程同步工具类CountDownLatch怎么使用

本篇内容主要讲解“Java多线程同步工具类CountDownLatch怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java多线程同步工具类CountDownLatch怎么使用”吧!简介
2023-07-02

Linux怎么使用backup-manager工具备份系统

本篇内容介绍了“Linux怎么使用backup-manager工具备份系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  只有在电脑出了问
2023-06-13

怎么理解Fedora rsync备份镜像工具

怎么理解Fedora rsync备份镜像工具,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。经过长时间学习rsync,于是和大家分享一下,你可能会遇到Fedora
2023-06-16

中小企业怎么选择Linux备份工具

这篇文章将为大家详细讲解有关中小企业怎么选择Linux备份工具,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。很多Linux数据备份产品都在不断增加新的功能,且开始在企业中变得更为主流。现在,多数主要存储管
2023-06-17

Java多线程Semaphore工具的使用详解

Semaphore是一种用于控制线程并发访问数的同步工具。它通过维护一定数量的许可证来限制对共享资源的访问,许可证的数量就是可以同时访问共享资源的线程数目,需要的朋友可以参考下
2023-05-19

python使用多线程备份数据库的步骤

目录一、为什么要用线程池二、线程池练习演示例子1:使用submit方法演示例子2:使用map方法三、线上数据库测试总结:一、为什么要用线程池 1.多线程比单线程运行要快很多,比如在我工作中,每台服务器至少8个库以上,用单线程备份太慢了。 2
2022-06-02

编程热搜

目录