首页 > 数据库 >MySQL备份工具mydumper下载(RPM方式)安装以及详细使用教程

MySQL备份工具mydumper下载(RPM方式)安装以及详细使用教程

时间:2025-01-12 21:30:37浏览次数:3  
标签:mydumper -- 备份 指定 myloader MySQL RPM 数据库

1、mydumper工具介绍

        mydumper 是一款社区开源的,用于 MySQL 数据库的高性能多线程备份工具。与传统的 mysqldump 相比,mydumper 提供了更快的备份和恢复速度,特别是在处理大型数据库时。它包含两个主要工具:
• mydumper:负责导出一致的 MySQL 数据库备份。
• myloader:读取 mydumper 生成的备份文件,并将其导入到目标数据库中。
以下是 mydumper 的一些主要特点和用法:

  • 多线程备份:支持多线程技术,可以同时备份多个表,充分利用系统资源,提高备份效率。
  • 数据一致性:通过使用GTID和锁机制,确保备份数据的一致性。在备份过程中,它只会在备份的开始和结束时锁定表,而在备份过程中允许其他操作,减少了对生产环境的干扰。
  • 支持压缩:可以在备份时对数据进行压缩,节省存储空间。
  • 灵活的备份选项:提供多种选项以满足不同场景的备份需求,如指定表、排除表、只备份表结构或只备份表数据等。
  • 支持增量备份:可以执行增量备份,减少数据传输量。
  • 数据与建表语句分离:备份产生的文件中,建库、建表、表数据等都分别在不同文件中,便于管理和恢复。
  • 支持守护进程模式:可以以守护进程模式工作,定时快照和连续二进制日志。

2、mydumper工具安装

        官网地址:https://launchpad.net/mydumper
        GitHub 地址:https://github.com/maxbube/mydumper

2.1、下载

   此处以centos7或redhat的x86_64的安装包为例:

wget https://github.com/maxbube/mydumper/releases/download/v0.14.5-3/mydumper-0.14.5-3-zstd.el7.x86_64.rpm

2.2、安装

rpm -ivh mydumper-0.14.5-3-zstd.el7.x86_64.rpm

2.3、验证

验证:mydumper --help

3、mydumper使用说明

3.1、mydumper备份参数说明

参数说明用法
-u, --user指定MySQL用户名mydumper -u root ... 指定使用root用户进行备份
-p, --password指定MySQL用户密码mydumper -p password ... 指定MySQL用户的密码
-h, --host指定MySQL服务器IP地址mydumper -h 192.168.1.1 ... 指定MySQL服务器的IP地址
-P, --port指定MySQL服务器端口号mydumper -P 3306 ... 指定MySQL服务器的端口号为3306
-S, --socket指定MySQL套接字文件路径mydumper -S /tmp/mysql.sock ... 指定MySQL套接字文件路径
-B, --database指定需要备份的数据库mydumper -B dbname ... 指定备份名为dbname的数据库
-T, --tables-list指定需要备份的表列表,用逗号分隔mydumper -T table1,table2 ... 指定备份table1和table2等表
-O, --omit-from-file包含需要排除的数据库列表的文件mydumper -O /path/to/file ... 指定包含需要排除数据库列表的文件
-o, --outputdir指定输出目录mydumper -o /backup/path ... 指定备份文件输出的目录为/backup/path
-c, --compress压缩输出文件mydumper -c ... 启用压缩功能,对输出文件进行压缩
-x, --regex使用正则表达式指定需要备份或排除的数据库和表mydumper --regex 'regex_pattern' ... 使用正则表达式匹配需要备份或排除的数据库和表
-m, --no-schemas只导出表数据,不导出表结构mydumper -m ... 只导出表数据,不包含表结构定义
-d, --no-data只导出表结构,不导出表数据(注意:此参数在mydumper中通常用于恢复时的myloader工具,备份时一般使用-m)-
-t, --threads使用的线程数,默认4mydumper -t 8 ... 使用8个线程进行备份
--trx-consistency-only保证事务一致性,但不锁定表mydumper --trx-consistency-only ... 启用事务一致性备份模式
--complete-insert使用完整的INSERT语句(包含列名)mydumper --complete-insert ... 使用完整的INSERT语句进行备份

         请注意,上述表格中的参数和用法是基于常见的mydumper版本和用法。在实际使用中,可能会根据具体的mydumper版本和MySQL服务器配置有所不同。因此,建议在使用前查阅mydumper的官方文档或帮助信息(通常可以通过mydumper --help命令获取),以确保参数的准确性和可用性。

        另外,关于-d参数,虽然在一些文档和讨论中提到了它用于只导出表结构,但在mydumper的官方文档和常用参数中,更常见的是使用-m参数来表示只导出表数据而不导出表结构。同时,-d参数在myloader恢复工具中通常用于指定导入备份文件的目录。因此,在表格中对于-d参数的说明进行了相应的调整,并指出了它在备份时一般使用-m参数。

3.1.1、mydumper备份使用示例

以下是针对不同使用场景的 mydumper 使用示例:

1. 备份全部数据库

备份所有数据库(包括系统库):

##语法
mydumper -u root -p 'your_password' -P 3306 -h your_host  -o /path/to/backup/

##具体示例
mydumper -u root -p 123456  -h 192.168.3.19 -P 3307 -o  /databackup/mysql8.0
  • 此命令将备份所有数据库到指定的输出目录。
2. 备份全部数据库,包含触发器、事件、存储过程及函数

备份所有数据库,并包含触发器、事件、存储过程和函数:

##语法
mydumper -u root -p 'your_password' -P 3306 -h your_host  -R -G -E -o /path/to/backup/

##具体示例
mydumper -u root -p 123456  -h 192.168.3.19 -P 3307   -R -G -E -o /databackup/mysql8.0
  • 其中,-R 表示包含存储过程和函数,-G 表示包含视图,-E 表示包含事件。
3. 备份指定库

备份指定的数据库(例如 db1 和 db2):

##语法
mydumper -u root -p [password] -h [host] -P [port] -B db1,db2 -o /backup/specified_databases
##具体示例
mydumper -u root -p 123456  -h 192.168.3.19 -P 3307  -B nacos,mysql -o /databackup/mysql8.0
  • -B:指定要备份的数据库,多个数据库用逗号分隔。

4. 使用正则排除系统库

备份所有数据库,但排除系统库(如 information_schemaperformance_schemamysqlsys):

##语法
mydumper -u root -p 'your_password' -P 3306 -h your_host --regex '^(?!(mysql|sys|performance_schema|information_schema))' -o /path/to/backup/

##具体示例
mydumper -u root -p 123456  -h 192.168.3.19 -P 3307 --regex '^(?!(mysql|sys|performance_schema|information_schema))' -o /databackup/mysql8.0
  • 此命令使用正则表达式排除系统数据库(如mysql、sys、performance_schema、information_schema)进行备份。
5. 只备份表结构

备份指定数据库的表结构(不备份数据):

##语法
mydumper -u [username] -p [password] -h [host] -P [port] -B db1 -o /backup/schema_only --no-data

##具体示例
mydumper -u root -p 123456  -h 192.168.3.19 -P 3307 -B ruoyi-vue-pro -o /databackup/mysql8.0  --no-data
  • --no-data:只备份表结构,不备份数据。

6. 只备份表数据

备份指定数据库的表数据(不备份表结构):

##语法
mydumper -u [username] -p [password] -h [host] -P [port] -B db1 -o /backup/data_only --no-schemas

##具体示例
mydumper -u root -p 123456  -h 192.168.3.19 -P 3307  -B nacos -o  /databackup/mysql8.0  --no-schemas
  • --no-schemas:只备份表数据,不备份表结构。

7. 压缩备份某个表

备份指定数据库中的某个表,并压缩备份文件(例如 db1 中的 table1):

##语法
mydumper -u [username] -p [password] -h [host] -P [port] -B db1 -T table1 -o /backup/compressed_table -c


##具体示例
mydumper -u root -p 123456  -h 192.168.3.19 -P 3306  -B zhhw -T zhhw.historydata -o  /databackup/mysql8.0 -c
  • -c:启用压缩,备份文件会被压缩为 .sql.gz 格式。

3.2、myloader还原参数说明

参数说明用法
--directory 或 -d指定备份文件所在的目录myloader --directory=/path/to/backup
--database 或 -B指定要还原的数据库(如果需要还原特定数据库)myloader --database=dbname --directory=/path/to/backup 注意:如果使用了此参数,则只会还原该数据库的内容。
--tables-list指定一个包含要还原表的列表的文件(每行一个表名)myloader --tables-list=/path/to/tables_list.txt --directory=/path/to/backup
--tables 或 -T指定要还原的表(可以指定多个,用逗号分隔;如果与 --database 一起使用,则表名应包含数据库名前缀,但通常不这样做,而是单独使用 -T 参数指定表,同时用 -B 或在配置文件中指定数据库)myloader --tables=db1.table1,db2.table2 --directory=/path/to/backup 或更常见的用法是单独指定数据库和表:myloader --database=dbname --tables=table1,table2 --directory=/path/to/backup(注意:在这种情况下,表名不应包含数据库名前缀)
--user 或 -u指定连接MySQL的用户名myloader --user=root --directory=/path/to/backup
--password 或 -p指定连接MySQL的密码(出于安全考虑,通常不在命令行中直接输入密码,而是提示输入或在配置文件中指定)myloader --user=root --password=yourpassword --directory=/path/to/backup(更安全的方式是:myloader --user=root -p --directory=/path/to/backup,然后按提示输入密码)
--host 或 -h指定MySQL服务器的主机名或IP地址myloader --host=192.168.1.100 --directory=/path/to/backup
--port 或 -P指定MySQL服务器的端口号(默认是3306)myloader --port=3307 --directory=/path/to/backup
--threads 或 -t指定还原时使用的线程数(可以加快还原速度,但也会增加服务器的负载)myloader --threads=4 --directory=/path/to/backup
--overwrite-tables如果表已存在,则覆盖它们(而不是先删除再创建,但这可能导致数据丢失,如果表中有数据且不希望被覆盖,请谨慎使用)myloader --overwrite-tables --directory=/path/to/backup 注意:此参数的具体行为可能因 mydumper 版本而异,建议查阅官方文档以获取准确信息。在某些版本中,可能需要使用 --replace 或其他参数来达到覆盖表的目的。
--ignore-engines指定要忽略的存储引擎(还原时将跳过这些引擎的表)myloader --ignore-engines=CSV,MEMORY --directory=/path/to/backup
--verbose 或 -v显示详细的还原过程信息myloader --verbose --directory=/path/to/backup

  注意:

        上述参数中的某些可能因 mydumper 的版本不同而有所差异。在使用之前,请查阅你所使用的 mydumper 版本的官方文档或帮助信息(通常可以通过 myloader --help 命令获取)。
在生产环境中进行还原操作之前,强烈建议在测试环境中进行充分的测试,以确保还原过程的正确性和数据的完整性。
出于安全考虑,不要在命令行中直接包含敏感信息(如密码)。可以考虑使用配置文件、环境变量或提示输入的方式来提供这些信息。

3.2.1、myloader 还原使用示例

myloader 是 mydumper 的配套工具,用于将 mydumper 备份的数据还原到 MySQL 数据库中。以下是 myloader 的详细使用示例和说明:

1、基本还原命令

还原 mydumper 备份的数据到目标数据库:

##语法
myloader -u [username] -p [password] -h [host] -P [port] -d /backup/directory
  • -u:MySQL 用户名。

  • -p:MySQL 密码。

  • -h:MySQL 主机地址。

  • -P:MySQL 端口号(默认 3306)。

  • -d:指定备份文件所在的目录。

2、还原到指定数据库

将备份数据还原到指定的数据库(例如 new_db):

##语法
myloader -u [username] -p [password] -h [host] -P [port] -d /backup/directory -B new_db


##具体示例
myloader -u root -p 123456  -h 192.168.3.19 -P 3307 -B hwgl  -d /databackup/mysql141 
  • -B:指定目标数据库名称。如果目标数据库不存在,myloader 会自动创建。

3、多线程还原指定数据库

使用多线程加快还原速度(例如 8 个线程):

 ##语法
 myloader -u [username] -p [password] -h [host] -P [port] -B new_db -d /backup/directory -t 8


 ##具体示例
myloader -u root -p 123456  -h 192.168.3.19 -P 3307 -B hwgl -d /databackup/mysql141 -t 8
  • -t:指定线程数(默认 4 个线程)。

4、只还原表结构-指定数据库

只还原表结构,不还原数据:

 ##语法
myloader -u [username] -p [password] -h [host] -P [port] -B new_db -d /backup/directory --no-data

 ##具体示例
myloader -u root -p 123456  -h 192.168.3.19 -P 3307 -B hwgl  -d /databackup/mysql141 --no-data
  • --no-data:只还原表结构,不还原数据。

未完待续

标签:mydumper,--,备份,指定,myloader,MySQL,RPM,数据库
From: https://blog.csdn.net/qingzhumuqingfeng/article/details/144993951

相关文章

  • MySQL不使用子查询的原因
    MySQL不使用子查询的原因及优化案例目录MySQL不使用子查询的原因及优化案例目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EXISTS优化子查询案例3:使用JOIN代替子查询案例4:优化子查询以减少数据量案例5:使用索引覆盖案例6:使用......
  • (免费送源码)计算机毕业设计原创定制:Java+springboot+MySQL springboot 第三方游戏账号
    摘要本论文主要论述了如何使用JAVA语言开发一个springboot第三方游戏账号交易平台,本系统将严格按照软件开发流程进行各个阶段的工作,采用springboot+vue.js相结合框架,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述第三方游戏账号交易平台的当前背景以及系统......
  • (免费送源码)计算机毕业设计原创定制:Java+ssm+MySQL 基于SSM的游戏论坛设计与实现
     摘 要本论文主要论述了如何使用SSM框架开发一个游戏论坛,将严格按照软件开发流程进行各个阶段的工作,采用B/S架构JAVA技术,面向对象编程思想进行项目开发。在引言中,作者将论述游戏论坛的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析设计......
  • (免费送源码)计算机毕业设计原创定制:Java+springboot+MySQL 物流车辆管理系统的设计与实
     摘要由于数据库和数据仓库技术的快速发展,物流车辆管理系统建设越来越向模块化、智能化、自我服务和管理科学化的方向发展。物流车辆管理系统对处理对象和服务对象,自身的系统结构,处理能力,都将适应技术发展的要求发生重大的变化。物流车辆管理系统除了具有共享系统的全部功能......
  • MySQL 16 章——变量、流程控制和游标
    一、变量在MySQL数据库的存储过程和存储函数中,可以使用变量来存储查询或计算的中间结果数据,或者输出最终的结果数据在MySQL数据库中,变量分为系统变量和用户自定义变量(1)系统变量1.1.1系统变量分类变量由系统定义,不是用户定义,属于服务器层面。启动MySQL服务,生成MySQL服务实......
  • 基于PHP的MYSQL注入(2)
    符号拼接由于网站开发者对数据类型或者对sql语句的写法(框架)导致1、数字型(无符号干扰)select*fromuserswhereid=$id;2、字符型(不光是单引号,也可能是双引号或者其他)select*fromuserswhereid='$id';3、搜索型(多符号干扰)select*fromuserswhereidlike'%$......
  • ⭐MySQL的底层原理与架构
    前言了解MySQL的架构和原理对于很多的后续很多的操作会有很大的帮助与理解。并且很多知识都与底层架构相关联。了解MySQL架构通过上面的架构图可以得知,Server层中主要由连接器、查询缓存、解析器/分析器、优化器、执行器几部分组成的,下面将主要描述下这几部分。1、连......
  • 前端必知必会-Node.js连接MySQL
    文章目录Node.jsMySQLMySQL数据库安装MySQL驱动程序创建连接查询数据库总结Node.jsMySQLNode.js可用于数据库应用程序。最流行的数据库之一是MySQL。MySQL数据库为了能够试验代码示例,您应该在计算机上安装MySQL。您可以在https://www.mysql.com/down......
  • MySQL 死锁
    死锁是指两个或两个以上的事务在执行过程中,因争夺锁资源而造成的一种互相等待的现象。1数据库层面解决死锁的两种方式1、解决死锁的问题最简单的方式是不要有等待,将任何的等待都转化为回滚,并且事务重新开始。 这种没有死锁问题的产生。在线上环境中,可能导致并发性能的下降,甚......
  • MySQL sleep 线程过多怎么解决
    1知道sleep线程过多原因首先要知道到底是什么原因导致的sleep线程过多的:程序逻辑问题,导致连接一直不释放;mysql参数的问题,是不是参数配置的不合理,一直不释放连接;mysql语句的问题,数据库查询不够优化,过度耗时。大并发情况问题,导致sleep情况过多;2临时解决s......